-4

I recently tried a lo-gin system and after connecting to the database and everything still its not working, all the value that fall within $_SESSION['somevalue'] are giving errors that are something like this:

Notice: Undefined index: submit in C:\wamp\www\demo.php on line 82

same is the case every time $_SESSION is used, the table tz_members is created and is working perfectly. Any help will be highly appreciated. here is my code

<?php

define('INCLUDE_CHECK',true);

require 'connect.php';
require 'functions.php';
// Those two files can be included only if INCLUDE_CHECK is defined

session_start();
session_name('tzLogin');
// Starting the session

session_set_cookie_params(2*7*24*60*60);
// Making the cookie live for 2 weeks

session_start();

if($_SESSION['id'] && !isset($_COOKIE['tzRemember']) && !$_SESSION['rememberMe'])
{
    // If you are logged in, but you don't have the tzRemember cookie (browser restart)
    // and you have not checked the rememberMe checkbox:

    $_SESSION = array();
    session_destroy();

    // Destroy the session
}


if(isset($_GET['logoff']))
{
    $_SESSION = array();
    session_destroy();

    header("Location: demo.php");
    exit;
}

if($_POST['submit']=='Login')
{
    // Checking whether the Login form has been submitted

    $err = array();
    // Will hold our errors


    if(!$_POST['username'] || !$_POST['password'])
        $err[] = 'All the fields must be filled in!';

    if(!count($err))
    {
        $_POST['username'] = mysql_real_escape_string($_POST['username']);
        $_POST['password'] = mysql_real_escape_string($_POST['password']);
        $_POST['rememberMe'] = (int)$_POST['rememberMe'];

        // Escaping all input data

        $row = mysql_fetch_assoc(mysql_query("SELECT id,usr FROM tz_members WHERE usr='{$_POST['username']}' AND pass='".md5($_POST['password'])."'"));

        if($row['usr'])
        {
            // If everything is OK login

            $_SESSION['usr']=$row['usr'];
            $_SESSION['id'] = $row['id'];
            $_SESSION['rememberMe'] = $_POST['rememberMe'];

            // Store some data in the session

            setcookie('tzRemember',$_POST['rememberMe']);
        }
        else $err[]='Wrong username and/or password!';
    }

    if($err)
    $_SESSION['msg']['login-err'] = implode('<br />',$err);
    // Save the error messages in the session

    header("Location: demo.php");
    exit;
}
else if($_POST['submit']=='Register')
{
    // If the Register form has been submitted

    $err = array();

    if(strlen($_POST['username'])<4 || strlen($_POST['username'])>32)
    {
        $err[]='Your username must be between 3 and 32 characters!';
    }

    if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['username']))
    {
        $err[]='Your username contains invalid characters!';
    }

    if(!checkEmail($_POST['email']))
    {
        $err[]='Your email is not valid!';
    }

    if(!count($err))
    {
        // If there are no errors

        $pass = substr(md5($_SERVER['REMOTE_ADDR'].microtime().rand(1,100000)),0,6);
        // Generate a random password

        $_POST['email'] = mysql_real_escape_string($_POST['email']);
        $_POST['username'] = mysql_real_escape_string($_POST['username']);
        // Escape the input data


        mysql_query("   INSERT INTO tz_members(usr,pass,email,regIP,dt)
                        VALUES(

                            '".$_POST['username']."',
                            '".md5($pass)."',
                            '".$_POST['email']."',
                            '".$_SERVER['REMOTE_ADDR']."',
                            NOW()

                        )");

        if(mysql_affected_rows($link)==1)
        {
            send_mail(  'demo-test@tutorialzine.com',
                        $_POST['email'],
                        'Registration System Demo - Your New Password',
                        'Your password is: '.$pass);

            $_SESSION['msg']['reg-success']='We sent you an email with your new password!';
        }
        else $err[]='This username is already taken!';
    }

    if(count($err))
    {
        $_SESSION['msg']['reg-err'] = implode('<br />',$err);
    }   

    header("Location: demo.php");
    exit;
}

$script = '';

if($_SESSION['msg'])
{
    // The script below shows the sliding panel on page load

    $script = '
    <script type="text/javascript">

        $(function(){

            $("div#panel").show();
            $("#toggle a").toggle();
        });

    </script>';

}
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>A Cool Login System With PHP MySQL &amp jQuery | Tutorialzine demo</title>

    <link rel="stylesheet" type="text/css" href="demo.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="login_panel/css/slide.css" media="screen" />

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

    <!-- PNG FIX for IE6 -->
    <!-- http://24ways.org/2007/supersleight-transparent-png-in-ie6 -->
    <!--[if lte IE 6]>
        <script type="text/javascript" src="login_panel/js/pngfix/supersleight-min.js"></script>
    <![endif]-->

    <script src="login_panel/js/slide.js" type="text/javascript"></script>

    <?php echo $script; ?>
</head>

<body>

<!-- Panel -->
<div id="toppanel">
    <div id="panel">
        <div class="content clearfix">
            <div class="left">
                <h1>The Sliding jQuery Panel</h1>
                <h2>A register/login solution</h2>      
                <p class="grey">You are free to use this login and registration system in you sites!</p>
                <h2>A Big Thanks</h2>
                <p class="grey">This tutorial was built on top of <a href="http://web-kreation.com/index.php/tutorials/nice-clean-sliding-login-panel-built-with-jquery" title="Go to site">Web-Kreation</a>'s amazing sliding panel.</p>
            </div>


            <?php

            if(!$_SESSION['id']):

            ?>

            <div class="left">
                <!-- Login Form -->
                <form class="clearfix" action="" method="post">
                    <h1>Member Login</h1>

                    <?php

                        if($_SESSION['msg']['login-err'])
                        {
                            echo '<div class="err">'.$_SESSION['msg']['login-err'].'</div>';
                            unset($_SESSION['msg']['login-err']);
                        }
                    ?>

                    <label class="grey" for="username">Username:</label>
                    <input class="field" type="text" name="username" id="username" value="" size="23" />
                    <label class="grey" for="password">Password:</label>
                    <input class="field" type="password" name="password" id="password" size="23" />
                    <label><input name="rememberMe" id="rememberMe" type="checkbox" checked="checked" value="1" /> &nbsp;Remember me</label>
                    <div class="clear"></div>
                    <input type="submit" name="submit" value="Login" class="bt_login" />
                </form>
            </div>
            <div class="left right">            
                <!-- Register Form -->
                <form action="" method="post">
                    <h1>Not a member yet? Sign Up!</h1>     

                    <?php

                        if($_SESSION['msg']['reg-err'])
                        {
                            echo '<div class="err">'.$_SESSION['msg']['reg-err'].'</div>';
                            unset($_SESSION['msg']['reg-err']);
                        }

                        if($_SESSION['msg']['reg-success'])
                        {
                            echo '<div class="success">'.$_SESSION['msg']['reg-success'].'</div>';
                            unset($_SESSION['msg']['reg-success']);
                        }
                    ?>

                    <label class="grey" for="username">Username:</label>
                    <input class="field" type="text" name="username" id="username" value="" size="23" />
                    <label class="grey" for="email">Email:</label>
                    <input class="field" type="text" name="email" id="email" size="23" />
                    <label>A password will be e-mailed to you.</label>
                    <input type="submit" name="submit" value="Register" class="bt_register" />
                </form>
            </div>

            <?php

            else:

            ?>

            <div class="left">

            <h1>Members panel</h1>

            <p>You can put member-only data here</p>
            <a href="registered.php">View a special member page</a>
            <p>- or -</p>
            <a href="?logoff">Log off</a>

            </div>

            <div class="left right">
            </div>

            <?php
            endif;
            ?>
        </div>
    </div> <!-- /login -->  

    <!-- The tab on top --> 
    <div class="tab">
        <ul class="login">
            <li class="left">&nbsp;</li>
            <li>Hello <?php echo $_SESSION['usr'] ? $_SESSION['usr'] : 'Guest';?>!</li>
            <li class="sep">|</li>
            <li id="toggle">
                <a id="open" class="open" href="#"><?php echo $_SESSION['id']?'Open Panel':'Log In | Register';?></a>
                <a id="close" style="display: none;" class="close" href="#">Close Panel</a>         
            </li>
            <li class="right">&nbsp;</li>
        </ul> 
    </div> <!-- / top -->

</div> <!--panel -->

<div class="pageContent">
    <div id="main">
      <div class="container">
        <h1>A Cool Login System</h1>
        <h2>Easy registration management with PHP &amp; jQuery</h2>
        </div>

        <div class="container">

          <p>This is a simple example site demonstrating the <a href="http://tutorialzine.com/2009/10/cool-login-system-php-jquery/">Cool Login System tutorial</a> on <strong>Tutorialzine</strong>. You can start by clicking the <strong>Log In | Register</strong> button above.  After registration, an email will be sent to you with your new password.</p>
          <p><a href="registered.php" target="_blank">View a test page</a>, only accessible by <strong>registered users</strong>.</p>
          <p>The sliding jQuery panel, used in this example, was developed by  <a href="http://web-kreation.com/index.php/tutorials/nice-clean-sliding-login-panel-built-with-jquery" title="Go to site">Web-Kreation</a>.</p>
          <p>You are free to build upon this code and use it in your own sites.</p>
          <div class="clear"></div>
        </div>

      <div class="container tutorial-info">
      This is a tutorial zine demo. 

View the

 <a href="http://tutorialzine.com/2009/10/cool-login-system-php-jquery/" target="_blank">original tutorial</a>, or download the 

 <a href="demo.zip">source files</a>.    </div>
    </div>
</div>

</body>
</html>

I know the entire code is not required here and it has made my question look real messy, but I thought just in case if somebody needs it.

Shankar Narayana Damodaran
  • 68,075
  • 43
  • 96
  • 126
CAO
  • 129
  • 1
  • 11
  • What is the error your getting? did you tried echo username and password? – DonOfDen Aug 05 '13 at 08:08
  • 1
    why are u calling session_start(); twice? – SoWhat Aug 05 '13 at 08:09
  • Undefined index: submit in C:\wamp\www\demo.php on line 39 the errors are something like this – CAO Aug 05 '13 at 08:12
  • @Somesh: Even if I use session_start(); only once the error are the same – CAO Aug 05 '13 at 08:18
  • 1
    There are so many things wrong/bad here: the use of deprecated functions `mysql_`, the use of md5 to hash the password, the regex could be simplified and much more... Since this is **not** your script you don't even know how to debug it. I would say: you either learn the language if you don't know it (including "how to debug") or complain at the author of the script or hire a developer. – HamZa Aug 05 '13 at 08:19
  • @TomPHP: As I have mentioned in my question the error says that, Undefined index: for any value that is coming within $_SESSION[''], it says the same for id,usr,pass and everything, what is wrong with the session? Has it got something to do with localhost, cos this is not yet online. – CAO Aug 05 '13 at 08:22
  • @HamZa: Yes this is not my script, web development is not my cup of tea, I am a C++ API Developer, I am trying to create my site so that's why I used this script anyways thanks for your suggestion. – CAO Aug 05 '13 at 08:24
  • C’mon! The error message is telling you the problem. That’s the *point* of error messages! Use them, don’t ignore them! – Martin Bean Aug 05 '13 at 08:27
  • Creating a website dealing with users passwords, you have a responsibility to handle those passwords securely, seeing how dangerously you are handling these scares the hell out of me. There are plenty of tutorials out there showing how to set up an effective hash/salt password system, if you find a recent one it should also avoid using the `mysql` db functions. – bendataclear Aug 05 '13 at 08:29
  • @CAO I see, well if you are a C++ dev then it should be easy for you to grasp the language. Note that there is a huge problem on the net: a lot of tutorials/scripts with really bad (or obsolete) practice. Unfortunately newbies aren't aware of them (even I didn't). Those tutorials should be nuked from orbit ... – HamZa Aug 05 '13 at 08:31
  • Exactly I just forgot the rule that nothing is free, actually I got this script for free, so what I guess I will do is use the front end of the same script and then will develop the backend myself – CAO Aug 05 '13 at 08:35
  • @CAO trust me, even some paid scripts are crap. It's just difficult to get the right one. I personally learned a lot from reading, especially here on SO. – HamZa Aug 05 '13 at 08:39
  • @HamZa: Yes you are right, actually I need a site for web applications of the software that we are developing so that it can be accessed from anywhere, now that company wants the software to be private, so we can't outsource this website, therefore here I am, far away from my specialty trying to do the unknown – CAO Aug 05 '13 at 08:42

1 Answers1

0

you aren't targetting the php field when the browser is sending the form content.

<form class="clearfix" action="" method="post">

this should be replaced into

<form class="clearfix" action="demo.php" method="post">

And if possible, please use mysqli-functions for queries since mysql-functions are deprecated.

KarelG
  • 5,176
  • 4
  • 33
  • 49
  • If you leave the action empty it will just target the same file. I would expect that error will still persist – HamZa Aug 05 '13 at 08:23
  • 2
    I found the error at last and that too myself actually the problem is with this if($_POST['submit']){...} whereas it should be this if(isset($_POST['submit'])){ if($_POST['submit']){ .. } } Anyways thanks a lot for your time guys – CAO Aug 05 '13 at 08:54