Results 1 to 4 of 4

Thread: PHP member system help?

  1. #1
    Join Date
    Feb 2008
    Posts
    25
    Thanks
    1
    Thanked 0 Times in 0 Posts

    Default PHP member system help?

    Hello, I had the following script so there is like a member registration and stuff like that, but when I put the login for on the index page, it screws up bigtime.

    Here is the code for the index page:
    PHP Code:
    <?php
    /* Include Files *********************/
    session_start(); 
    include(
    "database.php");
    include(
    "login.php");
    /*************************************/
    ?>
    <?php 
    function displayLogin(){
       global 
    $logged_in;
       if(
    $logged_in){
          echo 
    "<div>Thank you, <b>$_SESSION[username]</b>, you have been successfully logged in. <a href=\"logout.php\">Logout</a> <a href="members.php" rel="gb_page_center[500500]">Member Center</a></div>";
       }
       else{
          echo 
    "<form action="" method="post">
    <table align="
    left" border="0" cellspacing="0" cellpadding="3">
    <tr><td>Username:</td><td><input type="
    text" name="user" maxlength="30"></td></tr>
    <tr><td>Password:</td><td><input type="
    password" name="pass" maxlength="30"></td></tr>
    <tr><td colspan="
    2" align="left"><input type="checkbox" name="remember">
    <font size="
    2">Remember me next time</td></tr>
    <tr><td colspan="
    2" align="right"><input type="submit" name="sublogin" value="Login"></td></tr>
    <tr><td colspan="
    2" align="left"><a href="register.php">Join</a></td></tr>
    </table>
    </form>"

    ?>
    The following is my database.php
    PHP Code:
    <?php

    /**
     * Connect to the mysql database.
     */
    $conn mysql_connect("localhost""**********************""****************") or die(mysql_error());
    mysql_select_db('a6220188_users'$conn) or die(mysql_error());

    ?>
    And this is the login.php
    PHP Code:
    <?php

    /**
     * Checks whether or not the given username is in the
     * database, if so it checks if the given password is
     * the same password in the database for that user.
     * If the user doesn't exist or if the passwords don't
     * match up, it returns an error code (1 or 2). 
     * On success it returns 0.
     */
    function confirmUser($username$password){
       global 
    $conn;
       
    /* Add slashes if necessary (for query) */
       
    if(!get_magic_quotes_gpc()) {
        
    $username addslashes($username);
       }

       
    /* Verify that user is in database */
       
    $q "select password from users where username = '$username'";
       
    $result mysql_query($q,$conn);
       if(!
    $result || (mysql_numrows($result) < 1)){
          return 
    1//Indicates username failure
       
    }

       
    /* Retrieve password from result, strip slashes */
       
    $dbarray mysql_fetch_array($result);
       
    $dbarray['password']  = stripslashes($dbarray['password']);
       
    $password stripslashes($password);

       
    /* Validate that password is correct */
       
    if($password == $dbarray['password']){
          return 
    0//Success! Username and password confirmed
       
    }
       else{
          return 
    2//Indicates password failure
       
    }
    }

    /**
     * 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(){
       
    /* Check if user has been remembered */
       
    if(isset($_COOKIE['cookname']) && isset($_COOKIE['cookpass'])){
          
    $_SESSION['username'] = $_COOKIE['cookname'];
          
    $_SESSION['password'] = $_COOKIE['cookpass'];
       }

       
    /* Username and password have been set */
       
    if(isset($_SESSION['username']) && isset($_SESSION['password'])){
          
    /* Confirm that username and password are valid */
          
    if(confirmUser($_SESSION['username'], $_SESSION['password']) != 0){
             
    /* Variables are incorrect, user not logged in */
             
    unset($_SESSION['username']);
             unset(
    $_SESSION['password']);
             return 
    false;
          }
          return 
    true;
       }
       
    /* User not logged in */
       
    else{
          return 
    false;
       }
    }

    /**
     * Determines whether or not to display the login
     * form or to show the user that he is logged in
     * based on if the session variables are set.
     */
    function displayLogin(){
       global 
    $logged_in;
       if(
    $logged_in){
          echo 
    "<h1>Logged In!</h1>";
          echo 
    "<div>Welcome <b>$_SESSION[username]</b>, you are logged in. <a href=\"logout.php\">Logout</a></div>";
       }
       else{
    ?>
    <style type="text/css">
    body {
    background-color="black";
    color="white";
    }
    a:hover:visited {
    color="red";
    text-decoration: none;
    }
    div {
    margin-left: 30%;
    margin-right: 15%;
    }
    h1 {
    margin-left: 5%;
    }
    </style>
    <div>
    <h1>Login</h1>
    <form action="" method="post">
    <table align="left" border="0" cellspacing="0" cellpadding="3">
    <tr><td>Username:</td><td><input type="text" name="user" maxlength="30"></td></tr>
    <tr><td>Password:</td><td><input type="password" name="pass" maxlength="30"></td></tr>
    <tr><td colspan="2" align="left"><input type="checkbox" name="remember">
    <font size="2">Remember me next time</td></tr>
    <tr><td colspan="2" align="right"><input type="submit" name="sublogin" value="Login"></td></tr>
    <tr><td colspan="2" align="left"><a href="register.php">Join</a></td></tr>
    </table>
    </form>
    </div>
    <?php
       
    }
    }


    /**
     * Checks to see if the user has submitted his
     * username and password through the login form,
     * if so, checks authenticity in database and
     * creates session.
     */
    if(isset($_POST['sublogin'])){
       
    /* Check that all fields were typed in */
       
    if(!$_POST['user'] || !$_POST['pass']){
          die(
    'You didn\'t fill in a required field.');
       }
       
    /* Spruce up username, check length */
       
    $_POST['user'] = trim($_POST['user']);
       if(
    strlen($_POST['user']) > 30){
          die(
    "Sorry, the username is longer than 30 characters, please shorten it.");
       }

       
    /* Checks that username is in database and password is correct */
       
    $md5pass md5($_POST['pass']);
       
    $result confirmUser($_POST['user'], $md5pass);

       
    /* Check error codes */
       
    if($result == 1){
          die(
    'That username doesn\'t exist in our database.');
       }
       else if(
    $result == 2){
          die(
    'Incorrect password, please try again.');
       }

       
    /* Username and password correct, register session variables */
       
    $_POST['user'] = stripslashes($_POST['user']);
       
    $_SESSION['username'] = $_POST['user'];
       
    $_SESSION['password'] = $md5pass;

       
    /**
        * 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 md5 encrypted password. We set them both to
        * expire in 100 days. Now, next time he comes to our site, we will
        * log him in automatically.
        */
       
    if(isset($_POST['remember'])){
          
    setcookie("cookname"$_SESSION['username'], time()+60*60*24*100"/");
          
    setcookie("cookpass"$_SESSION['password'], time()+60*60*24*100"/");
       }

       
    /* Quick self-redirect to avoid resending data on refresh */
       
    echo "<meta http-equiv=\"Refresh\" content=\"0;url=$HTTP_SERVER_VARS[PHP_SELF]\">";
       return;
    }

    /* Sets the value of the logged_in variable, which can be used in your code */
    $logged_in checkLogin();

    ?>
    Every time I preview my index page, it sais:
    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/a6220188/public_html/membertest/index.html on line 142
    Any help please?

    Edit: Removed mysql username and password for security reasons.
    Last edited by tech_support; 05-02-2008 at 10:22 AM.

  2. #2
    Join Date
    Jul 2006
    Location
    just north of Boston, MA
    Posts
    1,806
    Thanks
    13
    Thanked 72 Times in 72 Posts

    Default

    looking at that page I cannot see the problem... could you post like 5 lines before and 5 lines after like 142? so like lines 135 - 150 or so?


    as a side note, if you want to redirect someone, you can also use the php header tag and avoid any residual html code

    echo "<meta http-equiv=\"Refresh\" content=\"0;url=$HTTP_SERVER_VARS[PHP_SELF]\">";
    PHP Code:
    header("Location: {$_SERVER[PHP_SELF]}"); 

  3. #3
    Join Date
    Jun 2007
    Posts
    543
    Thanks
    3
    Thanked 78 Times in 78 Posts
    Blog Entries
    1

    Default

    try this:
    PHP Code:
    <?php
    /* Include Files *********************/
    session_start(); 
    include(
    "database.php");
    include(
    "login.php");
    /*************************************/
    ?>
    <?php 
    function displayLogin(){
       global 
    $logged_in;
       if(
    $logged_in){
          echo 
    '<div>Thank you, <b>$_SESSION[username]</b>, you have been successfully logged in. <a href="logout.php">Logout</a> <a href="members.php" rel="gb_page_center[500, 500]">Member Center</a></div>';
       }
       else{
          echo 
    '<form action="" method="post">
    <table align="left" border="0" cellspacing="0" cellpadding="3">
    <tr><td>Username:</td><td><input type="text" name="user" maxlength="30"></td></tr>
    <tr><td>Password:</td><td><input type="password" name="pass" maxlength="30"></td></tr>
    <tr><td colspan="2" align="left"><input type="checkbox" name="remember">
    <font size="2">Remember me next time</td></tr>
    <tr><td colspan="2" align="right"><input type="submit" name="sublogin" value="Login"></td></tr>
    <tr><td colspan="2" align="left"><a href="register.php">Join</a></td></tr>
    </table>
    </form>'
    ;

    ?>
    [Jasme Library (Javascript Motion Effects)] My Site
    /\/\@§†ê® §©®¡þ† /\/\@|{ê®
    There are 10 kinds of people in the world, those that understand binary and those that don't.

  4. #4
    Join Date
    May 2008
    Posts
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default plz help

    I used this code exactly

    but when i ran it this erroe apear

    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\phase one\admin\database.php:2) in C:\xampp\htdocs\phase one\admin\login.php on line 147



    plz help me to know what is the wrong

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •