X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=register.php;h=d03218fc155b1da3811ee02f1bec73ff30e24c49;hb=65e98f40867862eb345676e23b633b9f52109d30;hp=032d8fbf0228b3b7dc254d4aac98a4a42f083742;hpb=4f7956b3df7a7f87bbf7f70d9902edbd0264b43f;p=tt-rss.git diff --git a/register.php b/register.php index 032d8fbf..d03218fc 100644 --- a/register.php +++ b/register.php @@ -1,44 +1,84 @@ '; + print " + ".htmlspecialchars(SELF_URL_PATH . "/register.php")." + Tiny Tiny RSS registration slots + + "; + + if (ENABLE_REGISTRATION) { + $result = db_query( "SELECT COUNT(*) AS cu FROM ttrss_users"); + $num_users = db_fetch_result($result, 0, "cu"); + + $num_users = REG_MAX_USERS - $num_users; + if ($num_users < 0) $num_users = 0; + $reg_suffix = "enabled"; + } else { + $num_users = 0; + $reg_suffix = "disabled"; + } + + print " + ".htmlspecialchars(SELF_URL_PATH)."/register.php?$num_users"." + "; + + print "$num_users slots are currently available, registration $reg_suffix"; + print "$num_users slots are currently available, registration $reg_suffix"; + + print ""; + + print ""; + + return; + } /* Remove users which didn't login after receiving their registration information */ if (DB_TYPE == "pgsql") { - db_query($link, "DELETE FROM ttrss_users WHERE last_login IS NULL + db_query( "DELETE FROM ttrss_users WHERE last_login IS NULL AND created < NOW() - INTERVAL '1 day' AND access_level = 0"); } else { - db_query($link, "DELETE FROM ttrss_users WHERE last_login IS NULL + db_query( "DELETE FROM ttrss_users WHERE last_login IS NULL AND created < DATE_SUB(NOW(), INTERVAL 1 DAY) AND access_level = 0"); } + if (file_exists("register_expire_do.php")) { + require_once "register_expire_do.php"; + } + if ($action == "check") { header("Content-Type: application/xml"); - $login = trim(db_escape_string($_REQUEST['login'])); + $login = trim(db_escape_string( $_REQUEST['login'])); - $result = db_query($link, "SELECT id FROM ttrss_users WHERE + $result = db_query( "SELECT id FROM ttrss_users WHERE LOWER(login) = LOWER('$login')"); - + $is_registered = db_num_rows($result) > 0; print ""; @@ -55,11 +95,10 @@ Create new account - - - - - + + + + - + - +

+
+
+ print "

+

"; return; } ?> - - - 0) { - $result = db_query($link, "SELECT COUNT(*) AS cu FROM ttrss_users"); + $result = db_query( "SELECT COUNT(*) AS cu FROM ttrss_users"); $num_users = db_fetch_result($result, 0, "cu"); } ?> - + + + + + + + + +

- - -

-
- - +
- +
- +
+
-
+
- " - disabled="true" onclick='return validateRegForm()'> +
- - - -

- -
+ +
"; ?> + + + + Please fill in the form.
"; - print "

Return to registration form

"; + print_error(__("Your registration information is incomplete.")); + print "

+ +
"; return; } - + if ($test == "four" || $test == "4") { - - $result = db_query($link, "SELECT id FROM ttrss_users WHERE + + $result = db_query( "SELECT id FROM ttrss_users WHERE login = '$login'"); - + $is_registered = db_num_rows($result) > 0; - + if ($is_registered) { print_error(__('Sorry, this username is already taken.')); - print "

+ print "

"; } else { - + $password = make_password(); - - $pwd_hash = encrypt_password($password, $login); - - db_query($link, "INSERT INTO ttrss_users - (login,pwd_hash,access_level,last_login, email, created) - VALUES ('$login', '$pwd_hash', 0, null, '$email', NOW())"); - - $result = db_query($link, "SELECT id FROM ttrss_users WHERE + + $salt = substr(bin2hex(get_random_bytes(125)), 0, 250); + $pwd_hash = encrypt_password($password, $salt, true); + + db_query( "INSERT INTO ttrss_users + (login,pwd_hash,access_level,last_login, email, created, salt) + VALUES ('$login', '$pwd_hash', 0, null, '$email', NOW(), '$salt')"); + + $result = db_query( "SELECT id FROM ttrss_users WHERE login = '$login' AND pwd_hash = '$pwd_hash'"); - + if (db_num_rows($result) != 1) { print_error(__('Registration failed.')); - print "

+ print "

"; } else { - + $new_uid = db_fetch_result($result, 0, "id"); - - initialize_user($link, $new_uid); - + + initialize_user( $new_uid); + $reg_text = "Hi!\n". "\n". "You are receiving this message, because you (or somebody else) have opened\n". @@ -257,95 +307,60 @@ "it will be deleted in 24 hours.\n". "\n". "If that wasn't you, just ignore this message. Thanks."; - - $mail = new PHPMailer(); - - $mail->PluginDir = "phpmailer/"; - $mail->SetLanguage("en", "phpmailer/language/"); - - $mail->CharSet = "UTF-8"; - - $mail->From = DIGEST_FROM_ADDRESS; - $mail->FromName = DIGEST_FROM_NAME; - $mail->AddAddress($email); - - if (DIGEST_SMTP_HOST) { - $mail->Host = DIGEST_SMTP_HOST; - $mail->Mailer = "smtp"; - $mail->Username = DIGEST_SMTP_LOGIN; - $mail->Password = DIGEST_SMTP_PASSWORD; - } - - // $mail->IsHTML(true); - $mail->Subject = "Registration information for Tiny Tiny RSS"; - $mail->Body = $reg_text; - // $mail->AltBody = $digest_text; - - $rc = $mail->Send(); - + + $mail = new ttrssMailer(); + $mail->IsHTML(false); + $rc = $mail->quickMail($email, "", "Registration information for Tiny Tiny RSS", $reg_text, false); + if (!$rc) print_error($mail->ErrorInfo); - + + unset($reg_text); + unset($mail); + unset($rc); $reg_text = "Hi!\n". "\n". "New user had registered at your Tiny Tiny RSS installation.\n". "\n". "Login: $login\n". "Email: $email\n"; - - $mail = new PHPMailer(); - - $mail->PluginDir = "phpmailer/"; - $mail->SetLanguage("en", "phpmailer/language/"); - - $mail->CharSet = "UTF-8"; - - $mail->From = DIGEST_FROM_ADDRESS; - $mail->FromName = DIGEST_FROM_NAME; - $mail->AddAddress(REG_NOTIFY_ADDRESS); - - if (DIGEST_SMTP_HOST) { - $mail->Host = DIGEST_SMTP_HOST; - $mail->Mailer = "smtp"; - $mail->Username = DIGEST_SMTP_LOGIN; - $mail->Password = DIGEST_SMTP_PASSWORD; - } - - // $mail->IsHTML(true); - $mail->Subject = "Registration notice for Tiny Tiny RSS"; - $mail->Body = $reg_text; - // $mail->AltBody = $digest_text; - - $rc = $mail->Send(); - + + + $mail = new ttrssMailer(); + $mail->IsHTML(false); + $rc = $mail->quickMail(REG_NOTIFY_ADDRESS, "", "Registration notice for Tiny Tiny RSS", $reg_text, false); + if (!$rc) print_error($mail->ErrorInfo); + print_notice(__("Account created successfully.")); - - print "

+ + print "

"; - + } - + } - + } else { print_error('Plese check the form again, you have failed the robot test.'); - print "

+ print "

"; - + } } ?> - + -
+
"; ?> - + + +