Onbekend |
|
Dit is het login script van fangorn (aangepast).
Alleen de login onthouden doet het niet.
Hier word de cookie geset:
<? if(isset($_POST['memory'])) {
setcookie("login_cookie", $row['id'].";".$row['wachtwoord'], time()+3600*24*31*2, "/");
$ip = $_SERVER['REMOTE_ADDR'];
mysql_query("UPDATE members SET last_ip='".$ip."' WHERE id=".$row['id']) or die(mysql_error());
} ?>
<? if(isset($_POST['memory'])) { setcookie("login_cookie", $row['id'].";".$row['wachtwoord'], time()+3600*24*31*2, "/"); $ip = $_SERVER['REMOTE_ADDR']; } ?>
<?php
ob_start();
include 'config.php';
session_start();
// als iemand is ingelogd
if(isset($_POST['verzenden'])) {
if(trim($_POST['nickname']) <> "" && trim($_POST['wachtwoord']) <> "") {
$nickname = $_POST['nickname'];
$wachtwoord = md5($_POST['wachtwoord']);
$res = mysql_query("SELECT id, wachtwoord, permissions FROM members where nickname='".$nickname."'") or die(mysql_error());
if(mysql_num_rows($res) > 0) {
$row = mysql_fetch_assoc($res);
if(!strcmp($wachtwoord, $row['wachtwoord'])) {
if(isset($_POST['memory'])) {
setcookie("login_cookie", $row['id'].";".$row['wachtwoord'], time()+3600*24*31*2, "/");
$ip = $_SERVER['REMOTE_ADDR'];
mysql_query("UPDATE members SET last_ip='".$ip."' WHERE id=".$row['id']) or die(mysql_error());
}
// vul sessievariabelen
$_SESSION['suser'] = $nickname; // gebruikersnaam van ingelogd persoon
$_SESSION['slevel'] = $row['permissions']; // bijbehorende gebruikersniveau
$_SESSION['stime'] = time(); // de huidige tijd
$_SESSION['smaxidle'] = 60 * 60; // het aantal seconden inactiviteit
} else {
// wachtwoorden komen niet overeen, breek de sessie weer af
$_SESSION = array();
session_destroy();
}
// geef de resultaten van deze query weer vrij
unset($row);
mysql_free_result($res);
}
// ververs, of de gebruikersnaam/wachtwoord combinatie nou klopt of niet, de pagina
header("Location: login.php");
}
}
?>
<html>
<head>
<title>sessies · login</title>
</head>
<body>
<?php
// als de (een willekeurige) sessievariabele suser in het sessie-array nog geen waarde heeft
// (dus als iemand nog niet is ingelogd)
if(!isset($_SESSION['suser'])) {
?>
<table border="0" bordercolor="#000000" cellspacing="0" cellpadding="0">
<form method="post" action="login.php" name="login">
<tr><td><font color="#666666"><b>Login</b></font></td></tr>
<tr><td width="150">Nickname</td><td width="250"> <input type="text" name="nickname" size="15"></td></tr>
<tr><td width="150">Password</td><td width="250"> <input type="password" name="wachtwoord" size="15"></td></tr>
<tr> <tr><td width="150">Remember login?</td><td width="250"><input type="checkbox" name="memory" value="memory"><tr><td></td>
<td bordercolor="#FFFFFF"><input type="submit" name="verzenden" value="verzenden"></td></tr>
</form>
</table>
<?php
} else {
// de gebruiker is ingelogd
?>
<?php
if(($_SESSION['slevel'] & 'Admin') == 'Admin') {
header("Location: admin.php");
}
if(($_SESSION['slevel'] & 'Member') == 'Member') {
header("Location: member.php");
}
?>
<?php
}
?>
</body>
</html>
<?php
ob_end_flush();
?>
<?php include 'config.php'; // als iemand is ingelogd if(isset($_POST['verzenden'])) { if(trim($_POST['nickname']) <> "" && trim($_POST['wachtwoord']) <> "") { $nickname = $_POST['nickname']; $wachtwoord = md5($_POST['wachtwoord']); if(!strcmp($wachtwoord, $row['wachtwoord'])) { if(isset($_POST['memory'])) { setcookie("login_cookie", $row['id'].";".$row['wachtwoord'], time()+3600*24*31*2, "/"); $ip = $_SERVER['REMOTE_ADDR']; } // vul sessievariabelen $_SESSION['suser'] = $nickname; // gebruikersnaam van ingelogd persoon $_SESSION['slevel'] = $row['permissions']; // bijbehorende gebruikersniveau $_SESSION['stime'] = time(); // de huidige tijd $_SESSION['smaxidle'] = 60 * 60; // het aantal seconden inactiviteit } else { // wachtwoorden komen niet overeen, breek de sessie weer af } // geef de resultaten van deze query weer vrij } // ververs, of de gebruikersnaam/wachtwoord combinatie nou klopt of niet, de pagina header("Location: login.php"); } } ?> <html> <head> <title>sessies · login</title> </head> <body> <?php // als de (een willekeurige) sessievariabele suser in het sessie-array nog geen waarde heeft // (dus als iemand nog niet is ingelogd) if(!isset($_SESSION['suser'])) { ?> <table border="0" bordercolor="#000000" cellspacing="0" cellpadding="0"> <form method="post" action="login.php" name="login"> <tr><td><font color="#666666"><b>Login</b></font></td></tr> <tr><td width="150">Nickname</td><td width="250"> <input type="text" name="nickname" size="15"></td></tr> <tr><td width="150">Password</td><td width="250"> <input type="password" name="wachtwoord" size="15"></td></tr> <tr> <tr><td width="150">Remember login?</td><td width="250"><input type="checkbox" name="memory" value="memory"><tr><td></td> <td bordercolor="#FFFFFF"><input type="submit" name="verzenden" value="verzenden"></td></tr> </form> </table> <?php } else { // de gebruiker is ingelogd ?> <?php if(($_SESSION['slevel'] & 'Admin') == 'Admin') { header("Location: admin.php"); } if(($_SESSION['slevel'] & 'Member') == 'Member') { header("Location: member.php"); } ?> <?php } ?> </body> </html> <?php ?>
|