Scripts

Login System met Mysql

Ik heb veel over PHP geleerd en wilde dus een login system maken want dat leek me wel vet om dat is te doen Dit is mijn eeste script dus ik hoop dat jullie ermee blij zijn en vertel de fouten die ik heb gemaakt dan kan ik het weer verbeteren en dan weet ik meer :) De login if/else statements zijn weg als je al ingelogd bent

login-system-met-mysql
index.php
[code]
<?php include('options.php'); ?>

<!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><?php echo $title ?></title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="container">
	<center>
    <h1>Login</h1>
        <form action="login.php" method="post">
            <p>Username: <input name="username" type="text" size="25" maxlength="25" /></p>
            <p>Password: <input name="password" type="password" size="25" maxlength="25" /></p>
            <p><input name="submit" type="submit" value="Log in" /></p>
			<a href='register.php'>Register Account</a>
        </form>
    </center>
</div>
</body>
</html>
[/code]

login.php
[code]
<?php include('options.php'); ?>
<!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><?php echo $title ?></title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="container">

<?php
session_start();

$username = $_POST['username'];
$password = sha1($_POST['password']);

if($username && $password)
{
	$connect = mysql_connect('localhost', 'root', '') or die ('Couldn\'t Connect');
	mysql_select_db("website") or die ("Couldn\'t Find your database !");
	
	$query = sprintf("SELECT id, username, password, nickname, date, email FROM users WHERE `username`='%s' AND `password`='%s'",
	mysql_real_escape_string($username),
	mysql_real_escape_string($password));
	
	$rows = mysql_query($query);

	$numrows = mysql_num_rows($rows); 

	if($numrows)
	{
		while($row = mysql_fetch_assoc($rows))
		{
			$dbusername = $row['username'];
			$dbpassword = $row['password'];
			$dbnickname = $row['nickname'];
			$dbdate = $row['date'];
			$dbemail = $row['email'];
		}
		
			echo("<p>Welcome back $dbusername !</p> <p>as nickname: $dbnickname</p><p>Account Registered at: $dbdate</p>");
			echo("<p>Your Email address: $dbemail</p>");
			echo("<a href='logout.php'>Logout</a>");
			
		$_SESSION['username']=$dbusername;
	}
	else
		die("Username or Password is wrong!");
}
?>
</div>
</body>
</html>
[/code]
logout.php
[code]
<?php
session_start();
unset($_SESSION['username']);

echo ("You have been successfully logged out! You will be redirected to the main page");
header('Location: http://localhost/');
?>
[/code]

options.php
[code]
<?php
$title = "Login System";
?>
[/code]

register.php
[code]
<?php include('options.php'); ?>
<!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><?php echo $title ?>/title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="container">
    
<?php 
if(get_magic_quotes_gpc()) {
	$_GET = strip_slashes_deep($_GET);
	$_POST = strip_slashes_deep($_POST);
}

function strip_slashes_deep($data) {
	if(is_array($data)) {
		foreach ($data as $key => $value) {
			$data[$key] = strip_slashes_deep($value);
		}
		return $data;
	}
	else
	{
	return stripslashes($data);
	}
}

$submit = $_POST['submit'];
$nickname = $_POST['nickname'];
$username = $_POST['username'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
$date = date("Y-m-d");

if(strlen($username) > 25 || strlen($nickname) > 25)
{
	echo "Maximum Limit for Username and Nickname is 25 characters!";
}


if ($submit)
{
	if ($nickname&&$username&&$password&&$password2)
	{
		if($password == $password2)
		{
			if(strlen($username) > 25 || strlen($nickname) > 25)
			{
				echo "Username and Nickname maximum is 25 characters";
			}
			else
			{
				if(strlen($password) > 25 || strlen($password) < 6)
				{
				echo "Password must be between 6 - 25 characters!";
				}
				else
				{
				//encrypt password
				$password = sha1($password);
				$password2 = sha1($password2);
				
				//Register the user!
				$connection = mysql_connect('localhost', 'root', '') or die ("Could not connect to the database server!");
				mysql_select_db("website", $connection) or die ("Could not connect to the database");
				
				$register = sprintf("INSERT INTO users VALUES('', '%s', '%s', '%s', '%s')",
				mysql_real_escape_string($username),
				mysql_real_escape_string($password),
				mysql_real_escape_string($nickname),
				mysql_real_escape_string($date));
				
				mysql_query($register);
				
				die("Successfully registered please <a href='index.php'>Log in</a>!");
				}
			}
		}
		else
			echo "Password does not match!";
	}
	else
		echo "Please fill in all fields!";
}
?>
<center>
	<h1>Register</h1>

    <form action="register.php" method="post" id="register">
        <fieldset>
            <p>Username: <input name="username" type="text" value="<?php echo $username; ?>" size="25" maxlength="25" /></p>
            <p>Password: <input name="password" type="password" size="25" maxlength="25" /></p>
            <p>Repeat Password: <input name="password2" type="password" size="25" maxlength="25" /></p>
            <p>Nick Name: <input name="nickname" type="text" value="<?php echo $nickname; ?>" size="25" maxlength="25" /></p>
            <input name="submit" type="submit" value="Register" />
        </fieldset>
    </form>
</center>
</div>
</body>
</html>
[/code]

style.css
[code]
@charset "utf-8";
/* CSS Document */

#container {
width:800px;
height:800px;
margin:0 auto;
}

#register {
width:350px;
height:500px;
}
[/code]


SQL voor de database

[code]
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(30) NOT NULL,
  `password` varchar(50) NOT NULL,
  `nickname` varchar(30) NOT NULL,
  `date` date NOT NULL,
  `email` varchar(200) NOT NULL,
  `status` int(5) NOT NULL DEFAULT '0',
  `online` int(1) NOT NULL,
  `LastIP` varchar(20) NOT NULL,
  `registerIP` varchar(20) NOT NULL,
  PRIMARY KEY (`id`,`username`)
) ENGINE=MyISAM AUTO_INCREMENT=46 DEFAULT CHARSET=latin1;
[/code]

Reacties

0
Nog geen reacties.