XenonProject Posted August 8, 2013 Share Posted August 8, 2013 Not sure if this should be here as it is PHP or in SQL board. Can a mod move it if so. Thanks! I'm working on a registration system. I am recieving the following errors: index.php: Notice: Undefined index: username in C:\xampp\htdocs\Xenon\index.php on line 12 Notice: Undefined index: password in C:\xampp\htdocs\Xenon\index.php on line 14 register.php: Notice: Undefined variable: act in C:\xampp\htdocs\Xenon\register.php on line 174 login.php Notice: Undefined variable: act in C:\xampp\htdocs\Xenon\login.php on line 134 And this is my code: index.php <?php include("inc/incfiles/header.inc.php"); ?> <?php //This will start a session session_start(); $username = $_SESSION['username']; $password = $_SESSION['password']; //Check do we have username and password if(!$username && !$password){ echo "Welcome Guest! <br> <a href=login.php>Login</a> | <a href=register.php>Register</a>"; }else{ echo "Welcome ".$username." (<a href=logout.php>Logout</a>)"; } ?> <body> </body> <footer> </footer> </html> register.php: <?php //This function will display the registration form function register_form(){ $date = date('M, D, Y'); echo "<form action='?act=register' method='post'>" ."Username: <input type='text' name='username' size='30'><br>" ."Password: <input type='password' name='password' size='30'><br>" ."Confirm your password: <input type='password' name='password_conf' size='30'><br>" ."Email: <input type='text' name='email' size='30'><br>" ."<input type='hidden' name='date' value='$date'>" ."<input type='submit' value='Register'>" ."</form>"; } //This function will register users data function register(){ //Connecting to database $connect = mysql_connect("localhost", "root", "5vBYpQW8KddyVv3Z"); if(!$connect){ die(mysql_error()); } //Selecting database $select_db = mysql_select_db("xenon", $connect); if(!$select_db){ die(mysql_error()); } //Collecting info $username = $_REQUEST['username']; $password = $_REQUEST['password']; $pass_conf = $_REQUEST['password_conf']; $email = $_REQUEST['email']; $date = $_REQUEST['date']; //Here we will check do we have all inputs filled if(empty($username)){ die("Please enter your username!<br>"); } if(empty($password)){ die("Please enter your password!<br>"); } if(empty($pass_conf)){ die("Please confirm your password!<br>"); } if(empty($email)){ die("Please enter your email!"); } //Let's check if this username is already in use $user_check = mysql_query("SELECT username FROM users WHERE username='$username'"); $do_user_check = mysql_num_rows($user_check); //Now if email is already in use $email_check = mysql_query("SELECT email FROM users WHERE email='$email'"); $do_email_check = mysql_num_rows($email_check); //Now display errors if($do_user_check > 0){ die("Username is already in use!<br>"); } if($do_email_check > 0){ die("Email is already in use!"); } //Now let's check does passwords match if($password != $pass_conf){ die("Passwords don't match!"); } //If everything is okay let's register this user $insert = mysql_query("INSERT INTO users (username, password, email) VALUES ('$username', '$password', '$email')"); if(!$insert){ die("There's little problem: ".mysql_error()); } echo $username.", you are now registered. Thank you!<br><a href=login.php>Login</a> | <a href=index.php>Index</a>"; } switch($act){ default; register_form(); break; case "register"; register(); break; } ?> login.php: <?php session_start(); //This displays your login form function index(){ echo "<form action='?act=login' method='post'>" ."Username: <input type='text' name='username' size='30'><br>" ."Password: <input type='password' name='password' size='30'><br>" ."<input type='submit' value='Login'>" ."</form>"; } //This function will find and checks if your data is correct function login(){ //Collect your info from login form $username = $_REQUEST['username']; $password = $_REQUEST['password']; //Connecting to database $connect = mysql_connect("localhost", "root", "5vBYpQW8KddyVv3Z"); if(!$connect){ die(mysql_error()); } //Selecting database $select_db = mysql_select_db("xenon", $connect); if(!$select_db){ die(mysql_error()); } //Find if entered data is correct $result = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password'"); $row = mysql_fetch_array($result); $id = $row['id']; $select_user = mysql_query("SELECT * FROM users WHERE id='$id'"); $row2 = mysql_fetch_array($select_user); $user = $row2['username']; if($username != $user){ die("Username is wrong!"); } $pass_check = mysql_query("SELECT * FROM users WHERE username='$username' AND id='$id'"); $row3 = mysql_fetch_array($pass_check); $email = $row3['email']; $select_pass = mysql_query("SELECT * FROM users WHERE username='$username' AND id='$id' AND email='$email'"); $row4 = mysql_fetch_array($select_pass); $real_password = $row4['password']; if($password != $real_password){ die("Your password is wrong!"); } //Now if everything is correct let's finish his/her/its login session_register("username", $username); session_register("password", $password); echo "Welcome, ".$username." please continue on our <a href=index.php>Index</a>"; } switch($act){ default; index(); break; case "login"; login(); break; } ?> Quote Link to comment Share on other sites More sharing options...
XenonProject Posted August 8, 2013 Author Share Posted August 8, 2013 If you need any other information I'll be checking this often. Thanks! Quote Link to comment Share on other sites More sharing options...
XenonProject Posted August 8, 2013 Author Share Posted August 8, 2013 Forgot one thing logout.php <?php session_start(); //This function will destroy your session session_destroy(); echo "You are now logged out! <a href=index.php>Index</a> or <a href=login.php>Login</a>"; ?> Quote Link to comment Share on other sites More sharing options...
PaulRyan Posted August 8, 2013 Share Posted August 8, 2013 (edited) The errors are self explanatory, the variables and the indexes are undefined. For index.php $username = isset($_SESSION['username']) ? $_SESSION['username'] : FALSE ; $password = isset($_SESSION['password']) ? $_SESSION['password'] : FALSE ; for both login/register, add the following above the switch statement(going on a limb on this one) $act = isset($_GET['act']) ? $_GET['act'] : FALSE ; For information on the above look up Ternary Operators Edited August 8, 2013 by PaulRyan Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.