| Autor | Nachricht |
|---|---|
|
Verfasst am: 31.08.2005 [22:09]
|
|
|
FradeljukA
Themenersteller
Dabei seit: 05.03.2002
Beiträge: 66
|
Hallo, ich will ein Login Script für meine schreiben, bekomme es aber nicht hin, das die Zeit des letzten Besuchs korrekt ausgegeben wird. Da wäre hier mein Login-Script, wo ich Username und Passwort mit der DB abgleiche und ggf. die Cookies setze: [b]login.php[/b:4b10295438] [code:1:4b10295438]<?php # Session starten session_start (); # Datenbankverbindung herstellen require ("_dbconnect.php"); # Logindaten überprüfen q_select = "SELECT * FROM members WHERE uname = '"._REQUEST[uname]."' AND passwd = password('"._REQUEST[passwd]."')"; res = mysql_query (q_select); # Username und Passwort richtig ? if (mysql_num_rows (res) > 0) { msv_id = session_id(); cookie = md5(time()); # Anmeldedaten in Cookie speichern setcookie("remember_user",_REQUEST["uname"],time()+10368000,"/"); setcookie("remember_cookie",cookie,time()+10368000,"/"); # Userdaten aktualisieren q_update = "UPDATE members SET cookie = '".cookie."', lastvisit = NOW(), ip = '"._SERVER['REMOTE_ADDR']."', session = '".msv_id."' WHERE uname = '"._REQUEST[uname]."' AND passwd = password('"._REQUEST[passwd]."')"; res = mysql_query(q_update) OR DIE (mysql_error()); header ("Location: HTTP_REFERER"); } else { login_error = "Username oder Passwort falsch!"; backtoroot="http://".SERVER_NAME."/index.php"; header ("Location: backtoroot?fehler=".login_error); } ?>[/code:1:4b10295438] Und mein Checkuser-Skript, welches ganz oben in der Index eingebunden ist und immer prüft, ob der User eingeloggt ist etc: [b]checkuser.php[/b:4b10295438] [code:1:4b10295438]<?php // Neue Session starten session_start (); // Datenbankverbindung herstellen require ("inc/_dbconnect.php"); // Prüfen ob Cookies gesetzt wurde if (isset (_COOKIE["remember_user"]) && isset (_COOKIE["remember_cookie"])) { // Userdaten auslesen sql_select = "SELECT * FROM members WHERE uname = '"._COOKIE["remember_user"]."' AND cookie = '"._COOKIE[remember_cookie]."'"; result_select = mysql_query(sql_select); // Cookie in Datenbank? if (mysql_num_rows(result_select) > 0) { userdaten = mysql_fetch_array(result_select); msv_id = session_id(); cookie = md5(time()); // Login Daten zuweisen _SESSION["user_id"] = userdaten["ID"]; _SESSION["user_nachname"] = userdaten["NAME"]; _SESSION["user_vorname"] = userdaten["VNAME"]; _SESSION["user_nickname"] = userdaten["UNAME"]; _SESSION["session_id"] = userdaten["SESSION"]; _SESSION["user_isadmin"] = userdaten["ADMIN"]; _SESSION["user_lastvisit"] = userdaten["LASTVISIT"]; // Cookies verlängern setcookie("remember_user",userdaten["UNAME"],time()+10368000,"/"); setcookie("remember_cookie",cookie,time()+10368000,"/"); // Userdaten aktualisieren sql_update = "UPDATE members SET COOKIE = '".cookie."', LASTVISIT = NOW(), SESSION = '".msv_id."', IP = '".REMOTE_ADDR."' WHERE UNAME = '".userdaten[UNAME]."' AND PASSWD = '".userdaten[PASSWD]."'"; mysql_query(sql_update); } } ?>[/code:1:4b10295438] Meine datetime-Spalte in der Datenbank sieht so aus: Feld+Typ+Null+Standard LASTVISIT+datetime+Ja+0000-00-00 00:00:00 Wenn ich nach dem Einloggen mit dem Formular einen Break setze (in dem Fall das Auslesen der Userdaten im checkuser.php auskommentieren) [code:1:4b10295438]#sql_select = "SELECT * FROM members WHERE uname = '"._COOKIE["remember_user"]."' AND cookie = '"._COOKIE[remember_cookie]."'"; #result_select = mysql_query(sql_select);[/code:1:4b10295438] wird in die Datenbank der korrekte Zeitwert geschrieben: 2005-08-31 21:57:35 Tue ich das nicht, und die checkuser.php greift unmittelbar nach dem Login, wir der Wert mit: 0000-00-00 00:00:00 überschrieben. Bei der Ausgabe auf der Startseite mit Umwandlung durch date() kommt dann das: 01.01.1970 01:33:25 Uhr raus.... Ich bin echt schon voll verzweifelt, weil ich schon seit 3 oder 4 Wochen da dran sitze und einfach den Fehler nicht finden kann! Ich hoffe einer von Euch kann mir helfen! Danke im Vorraus... |
|
Verfasst am: 01.09.2005 [19:38]
|
|
|
schaelle
Dabei seit: 12.12.2004
Beiträge: 204
|
Es gibt eine Seite, da brauchst du das alles gar nicht <a rel='nofollow' href='outbound.php?url=http://www.accessprotect.com/' target='_blank'>Accessprotect</a> |
|
Verfasst am: 02.09.2005 [09:48]
|
|
|
christian
Dabei seit: 21.11.2004
Beiträge: 509
|
@ Schaelle: Es geht nicht um den Login an und für sich, sondern um die Mitteilung an den User nach dem Motto: "Ciao und herzlich willkommen, Du warst am 11.11.2001 zu letzen mal hier". DAS funkt nicht. Einen Login erstellen ist relativ einfach, zumal Du in jeder Scriptsammlung so etwas findest oder, wenn Du Webspace auf einem Apache-server hast, .htaccess benutzen kannst. Falls Du eine gute Website kennst, trag sie ein bei http://www.yomada.net. Damit auch andere davon profitieren können.
|
|
Verfasst am: 02.09.2005 [21:17]
|
|
|
schaelle
Dabei seit: 12.12.2004
Beiträge: 204
|
Oh, da hab ich wohl was falsch verstanden. Aber auf SFW gibts ein Script mit Cookies dafür. Habe glaube mal so was gesehen |
|
Verfasst am: 03.09.2005 [15:47]
|
|
|
FradeljukA
Themenersteller
Dabei seit: 05.03.2002
Beiträge: 66
|
Genau DAS ist mein Problem. Login, Logout, Cookies alles funktioniert, nur die Zeit des letzten Login ist immer falsch....;( Hat denn keiner ein Idee, was ich falsch mache??? |
|
Verfasst am: 04.09.2005 [19:22]
|
|
|
schaelle
Dabei seit: 12.12.2004
Beiträge: 204
|
nö tut mir leid aber ich kenn mich da leider nicht so gut aus.......... |