Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 13 of 13
  1. #1
    New Coder
    Join Date
    Feb 2010
    Posts
    21
    Thanks
    3
    Thanked 0 Times in 0 Posts

    Registration problem

    I made registration/login script from this tutorial:
    http://evolt.org/node/60384
    Everything else is work ok but registration dont work. I mean I registered Admin but other members cant register. This is the error I get after register:
    Code:
    Registration Failed
    We're sorry, but an error has occurred and your registration for the username testtest, could not be completed.
    Please try again at a later time.
    I hope you help me.

    This is code of my changed file - improved only theme. Register.php:

    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");
    ?>
        <link rel="stylesheet" href="default.css" type="text/css" media="screen">
        <div id="header">
        
        </div>
        
    <html>
    <title>Registration Page</title>
    <body>

    <?
    /**
     * 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=\"main.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=\"main.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="center" 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="main_forum.php">Back to Main</a></td></tr>
    </table>
    </form>

    <?
    }
    ?>

    </body>
    </html>
    And this is original:

    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>Registration Page</title>
    <body>

    <?
    /**
     * 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=\"main.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=\"main.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="main.php">Back to Main</a></td></tr>
    </table>
    </form>

    <?
    }
    ?>

    </body>
    </html>

  • #2
    UE Antagonizer Fumigator's Avatar
    Join Date
    Dec 2005
    Location
    Utah, USA, Northwestern hemisphere, Earth, Solar System, Milky Way Galaxy, Alpha Quadrant
    Posts
    7,691
    Thanks
    42
    Thanked 637 Times in 625 Posts
    The error is (apparently) in process.php.

  • #3
    Senior Coder
    Join Date
    May 2005
    Posts
    2,137
    Thanks
    96
    Thanked 72 Times in 72 Posts
    Still seeing anything in this, as fum says, must be in process.php

    It might be limiting registering to 1 account only.
    Rowsdower! has accused me of having mental problems, and the administrator allowed it. What a great forum huh?

  • #4
    New Coder
    Join Date
    Feb 2010
    Posts
    21
    Thanks
    3
    Thanked 0 Times in 0 Posts
    Heres 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: main_forum.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: main_forum.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;

    ?>

  • #5
    New Coder
    Join Date
    Feb 2010
    Posts
    21
    Thanks
    3
    Thanked 0 Times in 0 Posts
    Pls help me. I was in about 6 forums before and noone is going to help me.

  • #6
    God Emperor Fou-Lu's Avatar
    Join Date
    Sep 2002
    Location
    Saskatoon, Saskatchewan
    Posts
    16,987
    Thanks
    4
    Thanked 2,660 Times in 2,629 Posts
    Alter the procRegister to the following and post the results:
    PHP Code:
      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']); 
          
    $aError error_get_last();
          
    printf("Return value: %d; errors: %s<br />\n"$retVal, &$aError['message']);
          
    /* 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); 
          } 
       } 
    It that return value is anything but 0, then there is a problem with $session. If its 0, I'd expect its an issue with sessions not being started.
    PHP Code:
    header('HTTP/1.1 420 Enhance Your Calm'); 

  • #7
    New Coder
    Join Date
    Feb 2010
    Posts
    21
    Thanks
    3
    Thanked 0 Times in 0 Posts
    Hmm. I replaced the codes and still nothing. If this help heres the session.php code:
    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
       /**
        * 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();
       }

       
    /**
        * startSession - Performs all the actions necessary to 
        * initialize this session object. Tries to determine if the
        * the user has logged in already, and sets the variables 
        * accordingly. Also 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);
          }

          
    /* 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);
             }
          }
          return 
    $randstr;
       }
    };


    /**
     * Initialize session object - This must be initialized before
     * the form object because the form uses session variables,
     * which cannot be accessed unless the session has started.
     */
    $session = new Session;

    /* Initialize form object */
    $form = new Form;

    ?>

  • #8
    God Emperor Fou-Lu's Avatar
    Join Date
    Sep 2002
    Location
    Saskatoon, Saskatchewan
    Posts
    16,987
    Thanks
    4
    Thanked 2,660 Times in 2,629 Posts
    While it will be helpful, if the alteration to the procRegister method produces no output, then the error exists between the constructor and this method.
    Its possible an error exists with Session::startSession preventing the call to the procRegister to ever occur. I presume you've checked you're error logs?
    PHP Code:
    header('HTTP/1.1 420 Enhance Your Calm'); 

  • #9
    New Coder
    Join Date
    Feb 2010
    Posts
    21
    Thanks
    3
    Thanked 0 Times in 0 Posts
    Well Im kinda beginer in PHP and not exacly know how to do it. Well I think I check them.

  • #10
    God Emperor Fou-Lu's Avatar
    Join Date
    Sep 2002
    Location
    Saskatoon, Saskatchewan
    Posts
    16,987
    Thanks
    4
    Thanked 2,660 Times in 2,629 Posts
    At the top of you're session.php page and process.php add the following lines:
    PHP Code:
    ini_set('display_errors'1);
    error_reporting(E_ALL); 
    Resubmit the form and copy the errors. They should display at the top of the page now.
    PHP Code:
    header('HTTP/1.1 420 Enhance Your Calm'); 

  • #11
    New Coder
    Join Date
    Feb 2010
    Posts
    21
    Thanks
    3
    Thanked 0 Times in 0 Posts
    Ok nothing is showing. You can see it for yourself. Heres site
    ---
    Those codes you give are placed in those files.
    Last edited by SFOwner; 02-18-2010 at 09:58 PM.

  • #12
    God Emperor Fou-Lu's Avatar
    Join Date
    Sep 2002
    Location
    Saskatoon, Saskatchewan
    Posts
    16,987
    Thanks
    4
    Thanked 2,660 Times in 2,629 Posts
    Can't view, work filter blocks it as a proxy.
    Change this again, kinda forgot that if you redirect it you'll never see the output from the $session->register call. I'll just take over the user error, though I suppose the other option is to just comment out the header lines. If it redirects even with the original printf in there, you've got output buffering enabled by default.
    PHP Code:
      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']);  
          
    $aError error_get_last(); 
          
    $form->setError('user'sprintf("Return value: %d; errors: %s"$retVal, &$aError['message'])); 
          
    /* 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);  
          }  
       } 
    Assuming it works how I expect, that should put the return result in the user text field.

    This code is quite antiquated though, you may want to consider either finding a new system or writing one of you're own.
    PHP Code:
    header('HTTP/1.1 420 Enhance Your Calm'); 

  • #13
    New Coder
    Join Date
    Feb 2010
    Posts
    21
    Thanks
    3
    Thanked 0 Times in 0 Posts
    Ok I found the problem
    There was a table in database users that got this problem. Well now I got other problem. Of course registration works but members can register with the same email.

    PS: I choose this tutorial becose there is function that after sign in/login instead of login form theres user panel. In other tutorials there wasnt explain how do that:/
    Last edited by SFOwner; 02-17-2010 at 06:24 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
    •