Jeg har skam lavet lidt matriale til dig... har ikke testet det... men har været lidt stresset den her uge..
Brug det som udgangspunkt måske.. har prøvet og lavet det så effektivt som muligt.. men stadig simpelt (Svær sammensætning)
Config:
<?php
session_start();
$arr_levelstart=array( 1=>'level1.php',
2=>'level2.php',
3=>'level3.php');
function userLevel($username)
{
openmysql();
$sql = mysql_query("SELECT level FROM foo WHERE brugernavn = '$username' LIMIT 1");
closemysql();
return mysql_result($sql,0,0);
}
function checkLogin($level = null)
{
if(!isset($_SESSION["brugernavn"]) || !isset($_SESSION["password"]))
{
header("Location: login.php");
exit();
}
$brugernavn = $_SESSION["brugernavn"];
$password = $_SESSION["password"];
if(userLevel($brugernavn) < $level) // tjekker om bruger har adgang
{
header("location: index.php"); // Hvis ikke, sender vi ham til medlems forsiden
exit();
}
openymsql();
$sql = mysql_query("SELECT id FROM foo WHERE brugernavn = '$brugernavn' AND password = '$password' LIMIT 1");
closemysql();
if(mysql_num_rows($sql) <= 0)
{
header("Location: login.php");
exit();
}
}
function validateLogin($brugernavn, $password)
{
openmysql();
$sql = mysql_query("SELECT id FROM foo WHERE brugernavn = '$brugernavn' AND password = '$password' LIMIT 1");
closemysql();
if(mysql_num_rows($sql) > 0)
return true;
else
return false;
}
?>
Login.php
<?php
require("config.php");
$error = null;
if(isset($_GET["login_action"]))
{
$brugernavn = $_POST["brugernavn"];
$password = $_POST["password"];
if(validateLogin($brugernavn, $password))
{
$userlevel = userLevel($brugernavn);
$_SESSION["brugernavn"] = $brugernavn;
$_SESSION["password"]= $password;
header('Location:'.$arr_levelstart[$level]);
}
else
$error = "<i>Forkert brugernavn/password</i>";
}
if(isset($_SESSION["brugernavn"]) && isset($_SESSION["password"]))
{
unset($_SESSION);
}
?><!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=iso-8859-1" />
<title>Login</title>
</head>
<body>
<?=$error?>
<form action="?login_action=true" method="POST">
Brugernavn: <input type="text" name="brugernavn" /><br />
Password: <input type="password" name="password" /><br />
<input type="submit" value="Login" />
</form>
</body>
</html>
index.php
<?php
require("config.php");
checkLogin();
?><!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=iso-8859-1" />
<title>Alle medlemmers side :)</title>
</head>
<body>
<h2>Denne side vil alle medlemmer kunne se</h2>
<h2>Dit level er <?=userLevel($_SESSION['brugernavn'])?></h2>
</body>
</html>
level1.php
<?php
require("config.php");
checkLogin(1);
?><!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=iso-8859-1" />
<title>Level 1</title>
</head>
<body>
<h2>Velkommen til level 1, dit level er <?=userLevel($_SESSION['brugernavn'])?></h2>
<a href="index.php">Gå til siden for alle</a>
</body>
</html>
level2.php
<?php
require("config.php");
checkLogin(2);
?><!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=iso-8859-1" />
<title>Level 1</title>
</head>
<body>
<h2>Velkommen til level 2, dit level er <?=userLevel($_SESSION['brugernavn'])?></h2>
<a href="index.php">Gå til siden for alle</a>
</body>
</html>
level3.php
<?php
require("config.php");
checkLogin(3);
?><!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=iso-8859-1" />
<title>Level 1</title>
</head>
<body>
<h2>Velkommen til level 3, dit level er <?=userLevel($_SESSION['brugernavn'])?></h2>
<a href="index.php">Gå til siden for alle</a>
</body>
</html>
Håber du eller andre kan bruge det til noget... som sagt, det er ikke testet :)
Mysql database
id -> auto_increment - primary
brugernavn -> varchar(30)
password -> varchar (32) mener jeg :) så kan du også kryptere med md5
level -> varchar (10)