Jump to content

Registration Problem


XenonProject

Recommended Posts

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;


}

?> 
Link to comment
https://forums.phpfreaks.com/topic/280946-registration-problem/
Share on other sites

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

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.