Nieuw lid |
|
Beste,
Heb het loginscript van Fangor doorgespit en denk dat het voor mijn site te gebruiken is. Alleen: wanneer ik op de knop klik, ververst de pagina alleen en laat niet zien dat ik ben ingelogd. Ziet iemand iets in de code?
<?php
require("connect.php"); // connectie met database maken en database selecteren
session_start(); // start een sessie of zet een sessie voort
// controleer hier of iemand inlogt - dit moet _voor_ de <HTML>-tag gebeuren gebeuren
if(isset($_POST['login'])) {
if(trim($_POST['naam']) <> "" && trim($_POST['wacht']) <> "") {
// naam en wachtwoord zijn ingevuld. Haal het (versleutelde) wachtwoord en
// het gebruikersniveau dat bij deze gebruikersnaam hoort uit de database op
// en vergelijk dit wachtwoord met het in het formulier opgegeven wachtwoord.
$naam = $_POST['naam'];
$wacht = md5($_POST['wacht']);
$res = mysql_query("SELECT id, pass, level FROM users where name='".$naam."'") or die(mysql_error());
// Als er een resultaat is, oftewel er bestaat een gebruiker met de naam $naam
if(mysql_num_rows($res) > 0) {
$row = mysql_fetch_assoc($res);
// aanname: het wachtwoord in de database is eenmalig gehashed mbv de functie md5()
// vergelijk het opgehaalde wachtwoord met een versleutelde versie van het in het
// formulier opgegeven wachtwoord
if(!strcmp($wacht, $row['pass'])) {
// alle gegevens kloppen
// v1.2 extra functionaliteit, onthouden login
// wil de gebruiker zijn gegevens onthouden ?
if(isset($_POST['memory'])) {
// set cookie (voor 2 maanden) en onthoud het IP
// gebruik hierbij het id van de gebruiker
setcookie("login_cookie", $row['id'].";".$row['pass'], time()+3600*24*31*2, "/");
$ip = $_SERVER['REMOTE_ADDR'];
mysql_query("UPDATE users SET last_ip='".$ip."' WHERE id=".$row['id']) or die(mysql_error());
}
// vul sessievariabelen
$_SESSION['suser'] = $naam; // gebruikersnaam van ingelogd persoon
$_SESSION['slevel'] = $row['level']; // 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>dutchbty.nl | Inloggen Distributor Zone</title>
<link href="stile_bty06.css" rel="stylesheet" type="text/css">
</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 width="750" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="30" height="100%" align="left" valign="top"> </td>
<td align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<?php include ("top_home.php"); ?>
</td>
</tr>
<tr>
<td height="30"> </td>
</tr>
<tr>
<td align="left" valign="top">
<form action="login.php" method="post">
<table class="LoginForm" width="100%">
<tr>
<td width="200"> INLOGGEN OP DZ</td>
<td width="200"> Naam
<input name="naam" type="text" id="naam" size="15"></td>
<td width="200"> Wachtwoord
<input name="wacht" type="password" id="wacht" size="15"></td>
<td width="100"><input name="submit" type="submit" id="submit" value="login"></td>
</tr>
</table>
</form>
<?php
} else {
// de gebruiker is ingelogd - geef een welkomstboodschap oid
// hier kun je tevens kijken of alle sessievariabelen de goede
// waarden hebben (debugging)
?>
Hi <b><?= $_SESSION['suser'] ?></b>,<br />
<a href="voorbeeld.php">voorbeeld pagina</a><br />
<a href="logout.php">uitloggen</a><br />
<?php
}
?>
</body>
</html>
<?php require("connect.php"); // connectie met database maken en database selecteren // controleer hier of iemand inlogt - dit moet _voor_ de <HTML>-tag gebeuren gebeuren if(isset($_POST['login'])) { if(trim($_POST['naam']) <> "" && trim($_POST['wacht']) <> "") { // naam en wachtwoord zijn ingevuld. Haal het (versleutelde) wachtwoord en // het gebruikersniveau dat bij deze gebruikersnaam hoort uit de database op // en vergelijk dit wachtwoord met het in het formulier opgegeven wachtwoord. $naam = $_POST['naam']; $wacht = md5($_POST['wacht']); // Als er een resultaat is, oftewel er bestaat een gebruiker met de naam $naam // aanname: het wachtwoord in de database is eenmalig gehashed mbv de functie md5() // vergelijk het opgehaalde wachtwoord met een versleutelde versie van het in het // formulier opgegeven wachtwoord if(!strcmp($wacht, $row['pass'])) { // alle gegevens kloppen // v1.2 extra functionaliteit, onthouden login // wil de gebruiker zijn gegevens onthouden ? if(isset($_POST['memory'])) { // set cookie (voor 2 maanden) en onthoud het IP // gebruik hierbij het id van de gebruiker setcookie("login_cookie", $row['id'].";".$row['pass'], time()+3600*24*31*2, "/"); $ip = $_SERVER['REMOTE_ADDR']; } // vul sessievariabelen $_SESSION['suser'] = $naam; // gebruikersnaam van ingelogd persoon $_SESSION['slevel'] = $row['level']; // 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>dutchbty.nl | Inloggen Distributor Zone</title> <link href="stile_bty06.css" rel="stylesheet" type="text/css"> </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 width="750" height="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="30" height="100%" align="left" valign="top"> </td> <td align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <?php include ("top_home.php"); ?> </td> </tr> <tr> <td height="30"> </td> </tr> <tr> <td align="left" valign="top"> <form action="login.php" method="post"> <table class="LoginForm" width="100%"> <tr> <td width="200"> INLOGGEN OP DZ</td> <td width="200"> Naam <input name="naam" type="text" id="naam" size="15"></td> <td width="200"> Wachtwoord <input name="wacht" type="password" id="wacht" size="15"></td> <td width="100"><input name="submit" type="submit" id="submit" value="login"></td> </tr> </table> </form> <?php } else { // de gebruiker is ingelogd - geef een welkomstboodschap oid // hier kun je tevens kijken of alle sessievariabelen de goede // waarden hebben (debugging) ?> Hi <b><?= $_SESSION['suser'] ?></b>,<br /> <a href="voorbeeld.php">voorbeeld pagina</a><br /> <a href="logout.php">uitloggen</a><br /> <?php } ?> </body> </html>
|