Automatische Anmeldung bei Rückkehr durch Cookies
Tron
- php
Hi,
ich versuche durch cookies ein Automatisches Anmelden bei Rückkehr zu realisieren, wenn in einer Datenbank auto_login=1 ist, der User noch nicht angemeldet ist, und wenn das cookie auf dem Rechner existiert:
session_start();
if(!session_is_registered('user')) {
if($result["auto_login"]="1") {
if(isset($auto_login)) {
//Das cookie heisst aut_login
$user = $auto_login;
include('connect.inc.php');
$get = mysql_query("select * from user_table where username='".$user."'");
$result = mysql_fetch_array($get);
$groupid = $result["groupid"];
session_register('groupid');
session_register('user');
setcookie("auto_login","$user");
}
}
}
Aber es funktioniert einfach nicht, und hier ist der QWueltext, wo das cookie gesetzt wird:
session_start();
$user = $_POST["user"];
$passwort = $_POST["passwort"];
if ((!isset($user)) || (!isset($passwort))) {
die("Ungültiger Login, bitte loggen sie sich erneut ein.");
}
include('connect.inc.php');
$get = mysql_query("select * from user_table where username='".$user."'");
if(!$get) {
die("Ungütiger Username");
}
$result = mysql_fetch_array($get);
if($result["userpasswort"]<>$passwort) {
die("Ungültiges Passwort");
}
$groupid = $result["groupid"];
session_register('groupid');
session_register('user');
if($result["auto_login"]="1") {
setcookie("auto_login","$user","0");
}
kann mir jemand sagen was mein Fehler ist?
mfg
Tron
Hallo,
ich habe keinen Fehler gefunden. Das ist bei dieser Art der Quelltext-Formatierung auch müßig. Leerzeilen, Kommentare, und eine andere Art der Klammersetzung sorgen für Übersicht:
function muster($a, $b)
{
if (!is_array($a))
{
return false;
}
...
}
Zum Thema: sessin_registered() sollte man nicht mehr benutzen. Du kannst die zu sichernden Wert direkt in das $_SESSION[] -Array schreiben. Am Ende des Scripts (oder bei Abbruch) wird das Array automatisch in der Sessiondatei gesichert - vorausgesetzt natürlich, dass Du eine Session gesartet hast.
Versuch mal folgendes:
1. Besuch der Seite
Der User gibt Passwort und Login an
Es wird in der Datenbank gesucht, ob es die Kombination gibt.
Wenn eine Sessionnummer eingetragen ist in der Datenbank, wird diese verwendet. Der User erhält einen zusätzlichen Cookie (Dauercookie). Der Wert wird eingetragen in der Datenbank
2. User kommt wieder und liefert der Dauercookie ab. in $_COOKIE[] steht der nun unter dem Namen drin. Nachschauen in der Datenbank, ob es einen soclehn Eintrag gibt. Session starten mit der eingetragenen Sessionnumer. Und das Relogin hat geklappt.
Grüße
Chris (C)