Mangafreak1995
Neues Mitglied
Hallo php/html-Com,
ich habe mir ein relativ kleines Script geschrieben zum Einloggen und gleichzeitiges Usermenu (wenn eingeloggt dann Usermenu, wenn nicht Login-Form) mit Fehlerausgabe. Wenn ich mich einlogge funktioniert alles(Cookies werden gesetzt, und Datenbank kriegt die korrekte CookieID). Wechsel ich die Seite und wieder auf eine der Seiten mit meinen Menu wird dort wieder das Login-Formular angezeigt. Wenn ich die Seite nur neulade bleib ich durch $_POST eingeloggt. Ich verstehe noch nicht ganz wo der Fehler steckt. Vielleicht seht ihr einen.
Ein weiteres Problem ist. Die Fehlerausgabe funktioniert nicht(dh. auch wenn ein Fehler sein müsste wird dieser nicht ausgegeben)
Ich hoffe ihr könnt bei meinen beiden Problemen den Fehler entdecken.
MfG Mangafreak1995
ich habe mir ein relativ kleines Script geschrieben zum Einloggen und gleichzeitiges Usermenu (wenn eingeloggt dann Usermenu, wenn nicht Login-Form) mit Fehlerausgabe. Wenn ich mich einlogge funktioniert alles(Cookies werden gesetzt, und Datenbank kriegt die korrekte CookieID). Wechsel ich die Seite und wieder auf eine der Seiten mit meinen Menu wird dort wieder das Login-Formular angezeigt. Wenn ich die Seite nur neulade bleib ich durch $_POST eingeloggt. Ich verstehe noch nicht ganz wo der Fehler steckt. Vielleicht seht ihr einen.
Ein weiteres Problem ist. Die Fehlerausgabe funktioniert nicht(dh. auch wenn ein Fehler sein müsste wird dieser nicht ausgegeben)
Ich hoffe ihr könnt bei meinen beiden Problemen den Fehler entdecken.
PHP:
$user = "";
$fail = 0;
$usermsg = "";
/*
0 : kein Fehler
1 : User, Email existiert nicht
2 : Passwort falsch
3 : keine Cookies aktiviert
*/
if(isset($p2)) // $p2 wird von der vorigen Seite mit übergeben, das sind die POST-Werte
{
$row = mysql_fetch_array(mysql_query("SELECT count(userid), userid FROM users WHERE username = '$p2[user]' OR email = '$p2[user]'", $db));
if($row[0] == 1)
{
$hashpass = hash('sha256', $p2['pass']);
$row = mysql_fetch_array(mysql_query("SELECT password, username, userid FROM users WHERE userid = '" . $row[1] . "'", $db));
if($hashpass == $row[0])
{
$time = time();
if(setcookie('userid', $row[2], $time+60*60*24*7*2))
{
$cookievalue = hash('sha256' ,$time . $row[1] . $row[2]);
setcookie('passid', $cookievalue, $time+60*60*24*7*2);
mysql_query("UPDATE users SET cookie = '$cookievalue' WHERE userid = '" . $row[2] . "'", $db);
$user = $row[1];
}
else
{
$fail = 3;
}
}
else
{
$fail = 2;
}
}
else
{
$fail = 1;
}
}
else
{
$user_id = htmlentities($_COOKIE['userid']);
$cook_id = htmlentities($_COOKIE['passid']);
$row = mysql_fetch_array(mysql_query("SELECT cookie, username FROM user WHERE userid =\"$user_id\"", $db));
if($row[0] == $cook_id)
{
$user = $row[1];
}
}
if(strlen($user) > 0)
{/* Usermenu */}
else
{
$usermsg = '<form action="#" method="post" name="login"><p>'; // Login-Form mit Fehlerausgabe
if(fail == 1) $usermsg .= '<span style="color:red">Username oder Email existiert nicht !</span>';
$usermsg .= 'Username: <input type="text" name="username" size="35" /><br />';
if(fail == 2) $usermsg .= '<span style="color:red">Passwort ist falsch !</span>';
$usermsg .= 'Password: <input type="password" name="passwort" size="35" /><br />';
if(fail == 3) $usermsg .= '<span style="color:red">Cookies sind deaktiviert !</span>';
$usermsg .= '<input type="submit" value="Login"/>';
$usermsg .= '</p></form>';
}
?>
MfG Mangafreak1995