]> git.wh0rd.org - tt-rss.git/blobdiff - register.php
add label_base_index to init params
[tt-rss.git] / register.php
index 3198095a59b795b5deea550d5e3fc99c9be27490..035a2cd8e06bc8ea3b3b9c16e4aff6a797296f17 100644 (file)
@@ -4,7 +4,10 @@
        // 1) templates/register_notice.txt - displayed above the registration form
        // 2) register_expire_do.php - contains user expiration queries when necessary
 
-       $action = $_REQUEST["action"];
+       set_include_path(dirname(__FILE__) ."/include" . PATH_SEPARATOR .
+               get_include_path());
+
+       require_once 'classes/ttrssmailer.php';
 
        require_once "functions.php";
        require_once "sessions.php";
        require_once "config.php";
        require_once "db.php";
 
+       $action = $_REQUEST["action"];
+
        $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
 
-       init_connection($link);
+       if (!init_connection($link)) return;
 
        if ($_REQUEST["format"] == "feed") {
                header("Content-Type: text/xml");
@@ -30,7 +35,7 @@
                        $result = db_query($link, "SELECT COUNT(*) AS cu FROM ttrss_users");
                        $num_users = db_fetch_result($result, 0, "cu");
 
-                       $num_users -= REG_MAX_USERS;
+                       $num_users = REG_MAX_USERS - $num_users;
                        if ($num_users < 0) $num_users = 0;
                        $reg_suffix = "enabled";
                } else {
@@ -69,7 +74,7 @@
        if ($action == "check") {
                header("Content-Type: application/xml");
 
-               $login = trim(db_escape_string($_REQUEST['login']));
+               $login = trim(db_escape_string($link, $_REQUEST['login']));
 
                $result = db_query($link, "SELECT id FROM ttrss_users WHERE
                        LOWER(login) = LOWER('$login')");
@@ -91,7 +96,7 @@
 <title>Create new account</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <link rel="stylesheet" type="text/css" href="utility.css">
-<script type="text/javascript" src="functions.js"></script>
+<script type="text/javascript" src="js/functions.js"></script>
 <script type="text/javascript" src="lib/prototype.js"></script>
 <script type="text/javascript" src="lib/scriptaculous/scriptaculous.js?load=effects,dragdrop,controls"></script>
 </head>
        <table>
        <tr>
        <td><?php echo __('Desired login:') ?></td><td>
-               <input name="login">
+               <input name="login" required>
        </td><td>
                <input type="submit" value="<?php echo __('Check availability') ?>" onclick='return checkUsername()'>
        </td></tr>
-       <td><?php echo __('Email:') ?></td><td>
-               <input name="email">
+       <tr><td><?php echo __('Email:') ?></td><td>
+               <input name="email" type="email" required>
        </td></tr>
-       <td><?php echo __('How much is two plus two:') ?></td><td>
-               <input name="turing_test"></td></tr>
+       <tr><td><?php echo __('How much is two plus two:') ?></td><td>
+               <input name="turing_test" required></td></tr>
        <tr><td colspan="2" align="right">
        <input type="submit" name="sub_btn" value="<?php echo __('Submit registration') ?>"
-                       disabled="true" onclick='return validateRegForm()'>
+                       disabled="disabled" onclick='return validateRegForm()'>
        </td></tr>
        </table>
        </form>
 
-       <?php print "<p><form method=\"GET\" action=\"tt-rss.php\">
+       <?php print "<p><form method=\"GET\" action=\"index.php\">
                                <input type=\"submit\" value=\"".__("Return to Tiny Tiny RSS")."\">
                                </form>"; ?>
 
        <?php } else if ($action == "do_register") { ?>
 
        <?php
-               $login = mb_strtolower(trim(db_escape_string($_REQUEST["login"])));
-               $email = trim(db_escape_string($_REQUEST["email"]));
-               $test = trim(db_escape_string($_REQUEST["turing_test"]));
+               $login = mb_strtolower(trim(db_escape_string($link, $_REQUEST["login"])));
+               $email = trim(db_escape_string($link, $_REQUEST["email"]));
+               $test = trim(db_escape_string($link, $_REQUEST["turing_test"]));
 
                if (!$login || !$email || !$test) {
                        print_error(__("Your registration information is incomplete."));
-                       print "<p><form method=\"GET\" action=\"tt-rss.php\">
+                       print "<p><form method=\"GET\" action=\"index.php\">
                                <input type=\"submit\" value=\"".__("Return to Tiny Tiny RSS")."\">
                                </form>";
                        return;
 
                        if ($is_registered) {
                                print_error(__('Sorry, this username is already taken.'));
-                               print "<p><form method=\"GET\" action=\"tt-rss.php\">
+                               print "<p><form method=\"GET\" action=\"index.php\">
                                <input type=\"submit\" value=\"".__("Return to Tiny Tiny RSS")."\">
                                </form>";
                        } else {
 
                                $password = make_password();
 
-                               $pwd_hash = encrypt_password($password, $login);
+                               $salt = substr(bin2hex(get_random_bytes(125)), 0, 250);
+                               $pwd_hash = encrypt_password($password, $salt, true);
 
                                db_query($link, "INSERT INTO ttrss_users
-                                       (login,pwd_hash,access_level,last_login, email, created)
-                                       VALUES ('$login', '$pwd_hash', 0, null, '$email', NOW())");
+                                       (login,pwd_hash,access_level,last_login, email, created, salt)
+                                       VALUES ('$login', '$pwd_hash', 0, null, '$email', NOW(), '$salt')");
 
                                $result = db_query($link, "SELECT id FROM ttrss_users WHERE
                                        login = '$login' AND pwd_hash = '$pwd_hash'");
 
                                if (db_num_rows($result) != 1) {
                                        print_error(__('Registration failed.'));
-                                       print "<p><form method=\"GET\" action=\"tt-rss.php\">
+                                       print "<p><form method=\"GET\" action=\"index.php\">
                                        <input type=\"submit\" value=\"".__("Return to Tiny Tiny RSS")."\">
                                        </form>";
                                } else {
                                                "\n".
                                                "If that wasn't you, just ignore this message. Thanks.";
 
-                                       $mail = new PHPMailer();
-
-                                       $mail->PluginDir = "lib/phpmailer/";
-                                       $mail->SetLanguage("en", "lib/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 = "lib/phpmailer/";
-                                       $mail->SetLanguage("en", "lib/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 "<p><form method=\"GET\" action=\"tt-rss.php\">
+                                       print "<p><form method=\"GET\" action=\"index.php\">
                                        <input type=\"submit\" value=\"".__("Return to Tiny Tiny RSS")."\">
                                        </form>";
 
 
                        } else {
                                print_error('Plese check the form again, you have failed the robot test.');
-                               print "<p><form method=\"GET\" action=\"tt-rss.php\">
+                               print "<p><form method=\"GET\" action=\"index.php\">
                                <input type=\"submit\" value=\"".__("Return to Tiny Tiny RSS")."\">
                                </form>";
 
 
        <?php print_notice(__('New user registrations are currently closed.')) ?>
 
-       <?php print "<p><form method=\"GET\" action=\"tt-rss.php\">
+       <?php print "<p><form method=\"GET\" action=\"index.php\">
                                <input type=\"submit\" value=\"".__("Return to Tiny Tiny RSS")."\">
                                </form>"; ?>