+ Reply to Thread
Results 1 to 8 of 8

Thread: Help with PHP register script

  1. #1
    robloxiawizz91 is offline x10Hosting Member robloxiawizz91 is an unknown quantity at this point
    Join Date
    Jun 2011
    Posts
    4

    Help with PHP register script

    Since 2 weeks ago, none of my members could sign up. I have the MySQL database set up, this script is Jpmaster77's and here is the script:
    PHP Code:
    <?
    /**
     * Register.php
     * 
     * Displays the registration form if the user needs to sign-up,
     * or lets the user know, if he's already logged in, that he
     * can't register another name.
     *
     * Written by: Jpmaster77 a.k.a. The Grandmaster of C++ (GMC)
     * Last Updated: August 19, 2004
     */
    include("include/session.php");
    ?>

    <html>
    <title>Brickerz / Register</title>
    <body bgcolor=#bbddee>

    <?
    /**
     * The user is already logged in, not allowed to register.
     */
    if($session->logged_in){
       echo 
    "<h1>Registered</h1>";
       echo 
    "<p>We're sorry <b>$session->username</b>, but you've already registered. "
           
    ."<a href=\"index.php\">Main</a>.</p>";
    }
    /**
     * The user has submitted the registration form and the
     * results have been processed.
     */
    else if(isset($_SESSION['regsuccess'])){
       
    /* Registration was successful */
       
    if($_SESSION['regsuccess']){
          echo 
    "<h1>Registered!</h1>";
          echo 
    "<p>Thank you <b>".$_SESSION['reguname']."</b>, your information has been added to the database, "
              
    ."you may now <a href=\"index.php\">log in</a>.</p>";
       }
       
    /* Registration failed */
       
    else{
          echo 
    "<h1>Registration Failed</h1>";
          echo 
    "<p>We're sorry, but an error has occurred and your registration for the username <b>".$_SESSION['reguname']."</b>, "
              
    ."could not be completed.<br>Please try again at a later time.</p>";
       }
       unset(
    $_SESSION['regsuccess']);
       unset(
    $_SESSION['reguname']);
    }
    /**
     * The user has not filled out the registration form yet.
     * Below is the page with the sign-up form, the names
     * of the input fields are important and should not
     * be changed.
     */
    else{
    ?>

    <h1>Register</h1>
    <?
    if($form->num_errors 0){
       echo 
    "<td><font size=\"2\" color=\"#ff0000\">".$form->num_errors." error(s) found</font></td>";
    }
    ?>
    <form action="process.php" method="POST">
    <table align="left" border="0" cellspacing="0" cellpadding="3">
    <tr><td>Username:</td><td><input type="text" name="user" maxlength="30" value="<? echo $form->value("user"); ?>"></td><td><? echo $form->error("user"); ?></td></tr>
    <tr><td>Password:</td><td><input type="password" name="pass" maxlength="30" value="<? echo $form->value("pass"); ?>"></td><td><? echo $form->error("pass"); ?></td></tr>
    <tr><td>Email:</td><td><input type="text" name="email" maxlength="50" value="<? echo $form->value("email"); ?>"></td><td><? echo $form->error("email"); ?></td></tr>
    <tr><td colspan="2" align="right">
    <input type="hidden" name="subjoin" value="1">
    <input type="submit" value="Join!"></td></tr>
    <tr><td colspan="2" align="left"><a href="index.php">Back to Main</a></td></tr>
    </table>
    </form>

    <?
    }
    ?>

    </body>
    </html>

  2. #2
    essellar's Avatar
    essellar is offline Community Advocate essellar has a spectacular aura about
    Join Date
    Feb 2010
    Location
    Toronto, Ontario, CA
    Posts
    1,153

    Re: Help with PHP register script

    That script doesn't do much of anything by itself -- it's just the UI (user interface) for the registration. The actual user registration happens in the process.php script (which is the action for the registration form) and in include/session.php (which controls the user login variables held in the PHP $_SESSION variables). We would need to see those scripts in order to help you find out where things are going wrong.
    Last edited by essellar; 07-22-2011 at 03:24 PM. Reason: fixed BBCode
    “Beware of bugs in the above code; I have only proved it correct, not tried it.” --Donald Knuth
    "It was as if its architects were given a perfectly good hammer and gleefully replied, 'neat! With this hammer, we can build a tool that can pound in nails.'" -- Alex Papadimoulis (on TheDailyWTF.com)

  3. #3
    robloxiawizz91 is offline x10Hosting Member robloxiawizz91 is an unknown quantity at this point
    Join Date
    Jun 2011
    Posts
    4

    Re: Help with PHP register script

    Of course, of course.
    process.php
    PHP Code:
    <?
    /**
     * Process.php
     * 
     * The Process class is meant to simplify the task of processing
     * user submitted forms, redirecting the user to the correct
     * pages if errors are found, or if form is successful, either
     * way. Also handles the logout procedure.
     *
     * Written by: Jpmaster77 a.k.a. The Grandmaster of C++ (GMC)
     * Last Updated: August 19, 2004
     */
    include("include/session.php");

    class 
    Process
    {
       
    /* Class constructor */
       
    function Process(){
          global 
    $session;
          
    /* User submitted login form */
          
    if(isset($_POST['sublogin'])){
             
    $this->procLogin();
          }
          
    /* User submitted registration form */
          
    else if(isset($_POST['subjoin'])){
             
    $this->procRegister();
          }
          
    /* User submitted forgot password form */
          
    else if(isset($_POST['subforgot'])){
             
    $this->procForgotPass();
          }
          
    /* User submitted edit account form */
          
    else if(isset($_POST['subedit'])){
             
    $this->procEditAccount();
          }
          
    /**
           * The only other reason user should be directed here
           * is if he wants to logout, which means user is
           * logged in currently.
           */
          
    else if($session->logged_in){
             
    $this->procLogout();
          }
          
    /**
           * Should not get here, which means user is viewing this page
           * by mistake and therefore is redirected.
           */
           
    else{
              
    header("Location: index.php");
           }
       }

       
    /**
        * procLogin - Processes the user submitted login form, if errors
        * are found, the user is redirected to correct the information,
        * if not, the user is effectively logged in to the system.
        */
       
    function procLogin(){
          global 
    $session$form;
          
    /* Login attempt */
          
    $retval $session->login($_POST['user'], $_POST['pass'], isset($_POST['remember']));
          
          
    /* Login successful */
          
    if($retval){
             
    header("Location: ".$session->referrer);
          }
          
    /* Login failed */
          
    else{
             
    $_SESSION['value_array'] = $_POST;
             
    $_SESSION['error_array'] = $form->getErrorArray();
             
    header("Location: ".$session->referrer);
          }
       }
       
       
    /**
        * procLogout - Simply attempts to log the user out of the system
        * given that there is no logout form to process.
        */
       
    function procLogout(){
          global 
    $session;
          
    $retval $session->logout();
          
    header("Location: index.php");
       }
       
       
    /**
        * procRegister - Processes the user submitted registration form,
        * if errors are found, the user is redirected to correct the
        * information, if not, the user is effectively registered with
        * the system and an email is (optionally) sent to the newly
        * created user.
        */
       
    function procRegister(){
          global 
    $session$form;
          
    /* Convert username to all lowercase (by option) */
          
    if(ALL_LOWERCASE){
             
    $_POST['user'] = strtolower($_POST['user']);
          }
          
    /* Registration attempt */
          
    $retval $session->register($_POST['user'], $_POST['pass'], $_POST['email']);
          
          
    /* Registration Successful */
          
    if($retval == 0){
             
    $_SESSION['reguname'] = $_POST['user'];
             
    $_SESSION['regsuccess'] = true;
             
    header("Location: ".$session->referrer);
          }
          
    /* Error found with form */
          
    else if($retval == 1){
             
    $_SESSION['value_array'] = $_POST;
             
    $_SESSION['error_array'] = $form->getErrorArray();
             
    header("Location: ".$session->referrer);
          }
          
    /* Registration attempt failed */
          
    else if($retval == 2){
             
    $_SESSION['reguname'] = $_POST['user'];
             
    $_SESSION['regsuccess'] = false;
             
    header("Location: ".$session->referrer);
          }
       }
       
       
    /**
        * procForgotPass - Validates the given username then if
        * everything is fine, a new password is generated and
        * emailed to the address the user gave on sign up.
        */
       
    function procForgotPass(){
          global 
    $database$session$mailer$form;
          
    /* Username error checking */
          
    $subuser $_POST['user'];
          
    $field "user";  //Use field name for username
          
    if(!$subuser || strlen($subuser trim($subuser)) == 0){
             
    $form->setError($field"* Username not entered<br>");
          }
          else{
             
    /* Make sure username is in database */
             
    $subuser stripslashes($subuser);
             if(
    strlen($subuser) < || strlen($subuser) > 30 ||
                !
    eregi("^([0-9a-z])+$"$subuser) ||
                (!
    $database->usernameTaken($subuser))){
                
    $form->setError($field"* Username does not exist<br>");
             }
          }
          
          
    /* Errors exist, have user correct them */
          
    if($form->num_errors 0){
             
    $_SESSION['value_array'] = $_POST;
             
    $_SESSION['error_array'] = $form->getErrorArray();
          }
          
    /* Generate new password and email it to user */
          
    else{
             
    /* Generate new password */
             
    $newpass $session->generateRandStr(8);
             
             
    /* Get email of user */
             
    $usrinf $database->getUserInfo($subuser);
             
    $email  $usrinf['email'];
             
             
    /* Attempt to send the email with new password */
             
    if($mailer->sendNewPass($subuser,$email,$newpass)){
                
    /* Email sent, update database */
                
    $database->updateUserField($subuser"password"md5($newpass));
                
    $_SESSION['forgotpass'] = true;
             }
             
    /* Email failure, do not change password */
             
    else{
                
    $_SESSION['forgotpass'] = false;
             }
          }
          
          
    header("Location: ".$session->referrer);
       }
       
       
    /**
        * procEditAccount - Attempts to edit the user's account
        * information, including the password, which must be verified
        * before a change is made.
        */
       
    function procEditAccount(){
          global 
    $session$form;
          
    /* Account edit attempt */
          
    $retval $session->editAccount($_POST['curpass'], $_POST['newpass'], $_POST['email']);

          
    /* Account edit successful */
          
    if($retval){
             
    $_SESSION['useredit'] = true;
             
    header("Location: ".$session->referrer);
          }
          
    /* Error found with form */
          
    else{
             
    $_SESSION['value_array'] = $_POST;
             
    $_SESSION['error_array'] = $form->getErrorArray();
             
    header("Location: ".$session->referrer);
          }
       }
    };

    /* Initialize process */
    $process = new Process;

    ?>


    ---------- Post added at 08:36 PM ---------- Previous post was at 08:34 PM ----------

    session.php

    PHP Code:
    <?
    /**
     * Session.php
     * 
     * The Session class is meant to simplify the task of keeping
     * track of logged in users and also guests.
     *
     * Written by: Jpmaster77 a.k.a. The Grandmaster of C++ (GMC)
     * Last Updated: August 19, 2004
     */
    include("database.php");
    include(
    "mailer.php");
    include(
    "form.php");

    class 
    Session
    {
       var 
    $username;     //Username given on sign-up
       
    var $userid;       //Random value generated on current login
       
    var $userlevel;    //The level to which the user pertains
       
    var $time;         //Time user was last active (page loaded)
       
    var $logged_in;    //True if user is logged in, false otherwise
       
    var $userinfo = array();  //The array holding all user info
       
    var $url;          //The page url current being viewed
       
    var $referrer;     //Last recorded site page viewed
       
    var $brickz 0;
       
    /**
        * Note: referrer should really only be considered the actual
        * page referrer in process.php, any other time it may be
        * inaccurate.
        */

       /* Class constructor */
       
    function Session(){
          
    $this->time time();
          
    $this->startSession();
       }

       
    /**

  4. #4
    robloxiawizz91 is offline x10Hosting Member robloxiawizz91 is an unknown quantity at this point
    Join Date
    Jun 2011
    Posts
    4

    Re: Help with PHP register script

    other part of session.php

    PHP Code:
        startSession Performs all the actions necessary to 
        
    initialize this session objectTries to determine if the
        
    the user has logged in already, and sets the variables 
        
    accordinglyAlso takes advantage of this page load to
        
    update the active visitors tables.
        */
       function 
    startSession(){
          global 
    $database;  //The database connection
          
    session_start();   //Tell PHP to start the session

          /* Determine if user is logged in */
          
    $this->logged_in $this->checkLogin();

          
    /**
           * Set guest value to users not logged in, and update
           * active guests table accordingly.
           */
          
    if(!$this->logged_in){
             
    $this->username $_SESSION['username'] = GUEST_NAME;
             
    $this->userlevel GUEST_LEVEL;
             
    $database->addActiveGuest($_SERVER['REMOTE_ADDR'], $this->time);
          }
          
    /* Update users last active timestamp */
          
    else{
             
    $database->addActiveUser($this->username$this->time);
          }
          
          
    /* Remove inactive visitors from database */
          
    $database->removeInactiveUsers();
          
    $database->removeInactiveGuests();
          
          
    /* Set referrer page */
          
    if(isset($_SESSION['url'])){
             
    $this->referrer $_SESSION['url'];
          }else{
             
    $this->referrer "/";
          }

          
    /* Set current url */
          
    $this->url $_SESSION['url'] = $_SERVER['PHP_SELF'];
       }

       
    /**
        * checkLogin - Checks if the user has already previously
        * logged in, and a session with the user has already been
        * established. Also checks to see if user has been remembered.
        * If so, the database is queried to make sure of the user's 
        * authenticity. Returns true if the user has logged in.
        */
       
    function checkLogin(){
          global 
    $database;  //The database connection
          /* Check if user has been remembered */
          
    if(isset($_COOKIE['cookname']) && isset($_COOKIE['cookid'])){
             
    $this->username $_SESSION['username'] = $_COOKIE['cookname'];
             
    $this->userid   $_SESSION['userid']   = $_COOKIE['cookid'];
          }

          
    /* Username and userid have been set and not guest */
          
    if(isset($_SESSION['username']) && isset($_SESSION['userid']) &&
             
    $_SESSION['username'] != GUEST_NAME){
             
    /* Confirm that username and userid are valid */
             
    if($database->confirmUserID($_SESSION['username'], $_SESSION['userid']) != 0){
                
    /* Variables are incorrect, user not logged in */
                
    unset($_SESSION['username']);
                unset(
    $_SESSION['userid']);
                return 
    false;
             }

             
    /* User is logged in, set class variables */
             
    $this->userinfo  $database->getUserInfo($_SESSION['username']);
             
    $this->username  $this->userinfo['username'];
             
    $this->userid    $this->userinfo['userid'];
             
    $this->userlevel $this->userinfo['userlevel'];
             return 
    true;
          }
          
    /* User not logged in */
          
    else{
             return 
    false;
          }
       }

       
    /**
        * login - The user has submitted his username and password
        * through the login form, this function checks the authenticity
        * of that information in the database and creates the session.
        * Effectively logging in the user if all goes well.
        */
       
    function login($subuser$subpass$subremember){
          global 
    $database$form;  //The database and form object

          /* Username error checking */
          
    $field "user";  //Use field name for username
          
    if(!$subuser || strlen($subuser trim($subuser)) == 0){
             
    $form->setError($field"* Username not entered");
          }
          else{
             
    /* Check if username is not alphanumeric */
             
    if(!eregi("^([0-9a-z])*$"$subuser)){
                
    $form->setError($field"* Username not alphanumeric");
             }
          }

          
    /* Password error checking */
          
    $field "pass";  //Use field name for password
          
    if(!$subpass){
             
    $form->setError($field"* Password not entered");
          }
          
          
    /* Return if form errors exist */
          
    if($form->num_errors 0){
             return 
    false;
          }

          
    /* Checks that username is in database and password is correct */
          
    $subuser stripslashes($subuser);
          
    $result $database->confirmUserPass($subusermd5($subpass));

          
    /* Check error codes */
          
    if($result == 1){
             
    $field "user";
             
    $form->setError($field"* Username not found");
          }
          else if(
    $result == 2){
             
    $field "pass";
             
    $form->setError($field"* Invalid password");
          }
          
          
    /* Return if form errors exist */
          
    if($form->num_errors 0){
             return 
    false;
          }

          
    /* Username and password correct, register session variables */
          
    $this->userinfo  $database->getUserInfo($subuser);
          
    $this->username  $_SESSION['username'] = $this->userinfo['username'];
          
    $this->userid    $_SESSION['userid']   = $this->generateRandID();
          
    $this->userlevel $this->userinfo['userlevel'];
          
          
    /* Insert userid into database and update active users table */
          
    $database->updateUserField($this->username"userid"$this->userid);
          
    $database->addActiveUser($this->username$this->time);
          
    $database->removeActiveGuest($_SERVER['REMOTE_ADDR']);

          
    /**
           * This is the cool part: the user has requested that we remember that
           * he's logged in, so we set two cookies. One to hold his username,
           * and one to hold his random value userid. It expires by the time
           * specified in constants.php. Now, next time he comes to our site, we will
           * log him in automatically, but only if he didn't log out before he left.
           */
          
    if($subremember){
             
    setcookie("cookname"$this->usernametime()+COOKIE_EXPIRECOOKIE_PATH);
             
    setcookie("cookid",   $this->userid,   time()+COOKIE_EXPIRECOOKIE_PATH);
          }

          
    /* Login completed successfully */
          
    return true;
       }

       
    /**
        * logout - Gets called when the user wants to be logged out of the
        * website. It deletes any cookies that were stored on the users
        * computer as a result of him wanting to be remembered, and also
        * unsets session variables and demotes his user level to guest.
        */
       
    function logout(){
          global 
    $database;  //The database connection
          /**
           * Delete cookies - the time must be in the past,
           * so just negate what you added when creating the
           * cookie.
           */
          
    if(isset($_COOKIE['cookname']) && isset($_COOKIE['cookid'])){
             
    setcookie("cookname"""time()-COOKIE_EXPIRECOOKIE_PATH);
             
    setcookie("cookid",   ""time()-COOKIE_EXPIRECOOKIE_PATH);
          } 

  5. #5
    robloxiawizz91 is offline x10Hosting Member robloxiawizz91 is an unknown quantity at this point
    Join Date
    Jun 2011
    Posts
    4

    Re: Help with PHP register script

    Other part of session.php


    PHP Code:
          /* Unset PHP session variables */
          
    unset($_SESSION['username']);
          unset(
    $_SESSION['userid']);

          
    /* Reflect fact that user has logged out */
          
    $this->logged_in false;
          
          
    /**
           * Remove from active users table and add to
           * active guests tables.
           */
          
    $database->removeActiveUser($this->username);
          
    $database->addActiveGuest($_SERVER['REMOTE_ADDR'], $this->time);
          
          
    /* Set user level to guest */
          
    $this->username  GUEST_NAME;
          
    $this->userlevel GUEST_LEVEL;
       }

       
    /**
        * register - Gets called when the user has just submitted the
        * registration form. Determines if there were any errors with
        * the entry fields, if so, it records the errors and returns
        * 1. If no errors were found, it registers the new user and
        * returns 0. Returns 2 if registration failed.
        */
       
    function register($subuser$subpass$subemail){
          global 
    $database$form$mailer;  //The database, form and mailer object
          
          /* Username error checking */
          
    $field "user";  //Use field name for username
          
    if(!$subuser || strlen($subuser trim($subuser)) == 0){
             
    $form->setError($field"* Username not entered");
          }
          else{
             
    /* Spruce up username, check length */
             
    $subuser stripslashes($subuser);
             if(
    strlen($subuser) < 5){
                
    $form->setError($field"* Username below 5 characters");
             }
             else if(
    strlen($subuser) > 30){
                
    $form->setError($field"* Username above 30 characters");
             }
             
    /* Check if username is not alphanumeric */
             
    else if(!eregi("^([0-9a-z])+$"$subuser)){
                
    $form->setError($field"* Username not alphanumeric");
             }
             
    /* Check if username is reserved */
             
    else if(strcasecmp($subuserGUEST_NAME) == 0){
                
    $form->setError($field"* Username reserved word");
             }
             
    /* Check if username is already in use */
             
    else if($database->usernameTaken($subuser)){
                
    $form->setError($field"* Username already in use");
             }
             
    /* Check if username is banned */
             
    else if($database->usernameBanned($subuser)){
                
    $form->setError($field"* Username banned");
             }
          }

          
    /* Password error checking */
          
    $field "pass";  //Use field name for password
          
    if(!$subpass){
             
    $form->setError($field"* Password not entered");
          }
          else{
             
    /* Spruce up password and check length*/
             
    $subpass stripslashes($subpass);
             if(
    strlen($subpass) < 4){
                
    $form->setError($field"* Password too short");
             }
             
    /* Check if password is not alphanumeric */
             
    else if(!eregi("^([0-9a-z])+$", ($subpass trim($subpass)))){
                
    $form->setError($field"* Password not alphanumeric");
             }
             
    /**
              * Note: I trimmed the password only after I checked the length
              * because if you fill the password field up with spaces
              * it looks like a lot more characters than 4, so it looks
              * kind of stupid to report "password too short".
              */
          
    }
          
          
    /* Email error checking */
          
    $field "email";  //Use field name for email
          
    if(!$subemail || strlen($subemail trim($subemail)) == 0){
             
    $form->setError($field"* Email not entered");
          }
          else{
             
    /* Check if valid email address */
             
    $regex "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*"
                     
    ."@[a-z0-9-]+(\.[a-z0-9-]{1,})*"
                     
    ."\.([a-z]{2,}){1}$";
             if(!
    eregi($regex,$subemail)){
                
    $form->setError($field"* Email invalid");
             }
             
    $subemail stripslashes($subemail);
          }

          
    /* Errors exist, have user correct them */
          
    if($form->num_errors 0){
             return 
    1;  //Errors with form
          
    }
          
    /* No errors, add the new account to the */
          
    else{
             if(
    $database->addNewUser($subusermd5($subpass), $subemail)){
                if(
    EMAIL_WELCOME){
                   
    $mailer->sendWelcome($subuser,$subemail,$subpass);
                }
                return 
    0;  //New user added succesfully
             
    }else{
                return 
    2;  //Registration attempt failed
             
    }
          }
       }
       
       
    /**
        * editAccount - Attempts to edit the user's account information
        * including the password, which it first makes sure is correct
        * if entered, if so and the new password is in the right
        * format, the change is made. All other fields are changed
        * automatically.
        */
       
    function editAccount($subcurpass$subnewpass$subemail){
          global 
    $database$form;  //The database and form object
          /* New password entered */
          
    if($subnewpass){
             
    /* Current Password error checking */
             
    $field "curpass";  //Use field name for current password
             
    if(!$subcurpass){
                
    $form->setError($field"* Current Password not entered");
             }
             else{
                
    /* Check if password too short or is not alphanumeric */
                
    $subcurpass stripslashes($subcurpass);
                if(
    strlen($subcurpass) < ||
                   !
    eregi("^([0-9a-z])+$", ($subcurpass trim($subcurpass)))){
                   
    $form->setError($field"* Current Password incorrect");
                }
                
    /* Password entered is incorrect */
                
    if($database->confirmUserPass($this->username,md5($subcurpass)) != 0){
                   
    $form->setError($field"* Current Password incorrect");
                }
             }
             
             
    /* New Password error checking */
             
    $field "newpass";  //Use field name for new password
             /* Spruce up password and check length*/
             
    $subpass stripslashes($subnewpass);
             if(
    strlen($subnewpass) < 4){
                
    $form->setError($field"* New Password too short");
             }
             
    /* Check if password is not alphanumeric */
             
    else if(!eregi("^([0-9a-z])+$", ($subnewpass trim($subnewpass)))){
                
    $form->setError($field"* New Password not alphanumeric");
             }
          }
          
    /* Change password attempted */
          
    else if($subcurpass){
             
    /* New Password error reporting */
             
    $field "newpass";  //Use field name for new password
             
    $form->setError($field"* New Password not entered");
          }
          
          
    /* Email error checking */
          
    $field "email";  //Use field name for email
          
    if($subemail && strlen($subemail trim($subemail)) > 0){
             
    /* Check if valid email address */
             
    $regex "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*"
                     
    ."@[a-z0-9-]+(\.[a-z0-9-]{1,})*"
                     
    ."\.([a-z]{2,}){1}$";
             if(!
    eregi($regex,$subemail)){
                
    $form->setError($field"* Email invalid");
             }
             
    $subemail stripslashes($subemail);
          }
          
          
    /* Errors exist, have user correct them */
          
    if($form->num_errors 0){
             return 
    false;  //Errors with form
          
    }
          
          
    /* Update password since there were no errors */
          
    if($subcurpass && $subnewpass){
             
    $database->updateUserField($this->username,"password",md5($subnewpass));
          }
          
          
    /* Change Email */
          
    if($subemail){
             
    $database->updateUserField($this->username,"email",$subemail);
          }
          
          
    /* Success! */
          
    return true;
       }
       
       
    /**
        * isAdmin - Returns true if currently logged in user is
        * an administrator, false otherwise.
        */
       
    function isAdmin(){
          return (
    $this->userlevel == ADMIN_LEVEL ||
                  
    $this->username  == ADMIN_NAME);
       }
       
       
    /**
        * generateRandID - Generates a string made up of randomized
        * letters (lower and upper case) and digits and returns
        * the md5 hash of it to be used as a userid.
        */
       
    function generateRandID(){
          return 
    md5($this->generateRandStr(16));
       }
       
       
    /**
        * generateRandStr - Generates a string made up of randomized
        * letters (lower and upper case) and digits, the length
        * is a specified parameter.
        */
       
    function generateRandStr($length){
          
    $randstr "";
          for(
    $i=0$i<$length$i++){
             
    $randnum mt_rand(0,61);
             if(
    $randnum 10){
                
    $randstr .= chr($randnum+48);
             }else if(
    $randnum 36){
                
    $randstr .= chr($randnum+55);
             }else{
                
    $randstr .= chr($randnum+61);
             }
    ?> 

  6. #6
    misson is offline x10 Spammer misson is a jewel in the rough
    Join Date
    Mar 2008
    Location
    Libertatia
    Posts
    2,506

    Re: Help with PHP register script

    If they're already members, why do they need to register?

    That's a fair bit of code to wade through, especially as we don't know how it's not behaving as you expect. When asking for help, describe what you expect to happen and what actually happens, including any error messages. As much as possible, cut out extraneous code from code samples.

    To find out for yourself what code is doing, install a PHP debugging extension (such as XDebug) on your development server (you should always have a separate server for development; install something like XAMPP if you don't have one yet) and use an interactive debugger to step through the code.

    The posted code has a number of security issues. It uses MD5 to hash passwords, which is considered broken by security professionals and runs entirely too quickly. It doesn't use salt to prevent rainbow table attacks. (You can upgrade the password hashing scheme without impacting existing users relatively easily.) It handles forgotten passwords by e-mailing a new password, rather than sending a link to a time-limited password reset form with a nonce to validate the request.
    Be sure to read all pages linked in this post; they have further information that should prove useful. When asking for help, make sure you follow Eric Raymond's and Jon Skeet's guidelines for prompt, accurate responses. Please answer any questions I ask; they're not rhetorical (probably). Any posted code is intended as illustrative example, rather than a solution to your problem to be copied without alteration. Study it to learn how to write your own solution.
    Misson, not Mission.

  7. #7
    callumacrae's Avatar
    callumacrae is offline not alex mac callumacrae is just really nice
    Join Date
    Dec 2007
    Location
    Wellesbourne, England
    Posts
    5,162

    Re: Help with PHP register script

    Code:
    echo "<td><font size=\"2\" color=\"#ff0000\">".$form->num_errors." error(s) found</font></td>";
    I feel sick

    You should not be using tables for layouts. Use tables for tables only. http://shouldiusetablesforlayout.com/

    <font> is deprecated and has been for many years. You should use CSS for styling your page (which should then be put in an external style sheet, too)
    I can customise your phpBB board. Send me a PM.
    lynxphp - info, tutorials and scripts
    "A forum post should be like a skirt; long enough to cover the subject but short enough to keep things interesting."

  8. #8
    callumacrae's Avatar
    callumacrae is offline not alex mac callumacrae is just really nice
    Join Date
    Dec 2007
    Location
    Wellesbourne, England
    Posts
    5,162

    Re: Help with PHP register script

    Code:
    echo "<td><font size=\"2\" color=\"#ff0000\">".$form->num_errors." error(s) found</font></td>";
    I feel sick

    You should not be using tables for layouts. Use tables for tables only. http://shouldiusetablesforlayout.com/

    <font> is deprecated and has been for many years. You should use CSS for styling your page (which should then be put in an external style sheet, too)
    I can customise your phpBB board. Send me a PM.
    lynxphp - info, tutorials and scripts
    "A forum post should be like a skirt; long enough to cover the subject but short enough to keep things interesting."

+ Reply to Thread

Similar Threads

  1. Replies: 1
    Last Post: 07-01-2011, 01:10 PM
  2. [PHP] Script terminating in middle of script for no reason
    By jkmaster9918 in forum Programming Help
    Replies: 2
    Last Post: 04-09-2010, 05:08 PM
  3. Log in/register script
    By tweaky in forum Programming Help
    Replies: 7
    Last Post: 12-26-2009, 12:33 PM
  4. Help with my login/register script
    By callumacrae in forum Programming Help
    Replies: 4
    Last Post: 05-27-2008, 04:45 AM
  5. Need login/register script
    By callumacrae in forum The Marketplace
    Replies: 4
    Last Post: 05-09-2008, 02:46 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
x10hosting free hosting for the masses
dedicated servers