Het script werkt niet naar behoren (zelf gemaakt (A))..

<?
session_start();
include("config.php");
if($_SESSION['naam'] == "" AND $_SESSION['status'] == "") {
if($_COOKIE['naam'] == "" AND $_COOKIE['wachtwoord'] == "" AND $_COOKIE['email'] == "") {
if(isset($_GET['login'])) {
if($_POST['naam'] != "" AND $_POST['wachtwoord'] != "") {
$sql = "SELECT * FROM gebruikers WHERE naam='".$_POST['naam']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
$rij = mysql_fetch_object($resultaat);
$dbpass = htmlspecialchars($rij->wachtwoord);
$status = htmlspecialchars($rij->status);
$email = htmlspecialchars($rij->email);
$pass = md5($_POST['wachtwoord']);
if($dbpass == $pass) {

$_SESSION['naam'] = $_POST['naam'];
$_SESSION['status'] = $status;
if($_POST['blijven'] == "1") {
setcookie("naam", $_POST['naam'], mktime(18, 30, 0, 5, 12, 2100));
setcookie("wachtwoord", $pass, mktime(18, 30, 0, 5, 12, 2100));
setcookie("email", $email, mktime(18, 30, 0, 5, 12, 2100));
}
}else{
echo "<font color='red'><b>Je wachtwoord en/of naam is incorrect!</b></font>";
}
}else{
echo "<font color='red'><b>Je bent een veld vergeten in te vullen!</b></font>";
}

}else{
?>
<html>
<head>
<title>Inloggen</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h2 align="center">Inloggen</h2>

<form method="post" action="<? echo $_SERVER['PHPSELF']; ?>?login">
<table>
<tr>
<td>Naam:</td><td><input type="text" name="naam"></td>
</tr>
<tr>
<td>Wachtwoord:</td><td><input type="password" name="wachtwoord"></td>
</tr>
<tr>
<td></td><td><input type="checkbox" name="blijven" value="1"> Ingelogd blijven</td>
</tr>
<tr>
<td></td><td><input type="submit" value="Inloggen"></td>
</tr>
</table>
</form>

</body>
</html>
<?
}
}else{
$sql = "SELECT * FROM gebruikers WHERE naam='".$_COOKIE['naam']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
$rij = mysql_fetch_object($resultaat);
$dbnaam = htmlspecialchars($rij->naam);
$dbstatus = htmlspecialchars($rij->status);
$dbpass = htmlspecialchars($rij->wachtwoord);

$pass = md5($_COOKIE['wachtwoord']);
$naam = $_COOKIE['naam'];
$email = $_COOKIE['email'];
if($dbpass == $pass AND $dbnaam == $naam) {
$_SESSION['naam'] = $dbnaam;
$_SESSION['status'] = $dbstatus;
?>
Je sessie is opnieuw aangemaakt! Je bent nu weer ingelogd
<?
}else{
echo "<font color='red'><b>Eén van je cookies klopt niet met wat in de db staat!</b></font>";
}
}
}else{
?>
Je bent al ingelogd..
<?
}
?>

probleem zit em in de cookies..
Eén van je cookies klopt niet met wat in de db staat!

maar de cookies kloppen, en de db klopt :@...

wtf gaat fout :S... zonder ingelogd blijven gaat allus wel goed...

De cookies blijven ook niet bewaart..
Browser dicht, is cookie weg.. :@...
Probleem cookeis weg opgelost door mktime() weg te halen...

Andere probleem stil exsists...
ik doe ze meestal in dit formaat:

<?php

setcookie("value", $value, time() + 604800);

?>

blijft een week geldig... en werkt perfect... ook al is dit niet ideaal voor jou... probeer het eens, dan weet je ong waar het wel en niet aan ligt...

en heb je wel in je index.php een script staan dat als er cookies gevonden worden, dat er dan ook weer sessions aangemaakt worden? (hoeft niet persè, maar wel als je controleert op sessions of iemand is ingelogt of niet)
Problem solved :)..

als iets al md5 is dan moet je het niet nog es md5'en domdomdomd... :P..

de cookeis werd gezet als een md5, en hij haalt het ook als md5 uti db, dus dan moet het zijn
$dbpass == $cookiepass
en niet $dbpass == md5($cookiepass)

domdomdomd :)
Dat weten we jorik, dat jij dat bent :P
Nah..
Maarja je weet het zelf ook, dus zo DOM ben je nou ook wel weer niet :P
Doe bedoel ik maar...

greedyxl gefelici met je (bijna:P) 500 posts!!...

Ik ga het script nog ff afmaken en op phphulp posten (als ik erachter ben hoe dat moet :P)

Reageren