Login Problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
achtung
beachten
brauche
check
code
dank
datei
gleiche problem
index
jemand
klappen
lese
login
mann
stehen
text
tun
unterscheiden
wissen
zugriff
-
Hi,
ich bastel derzeit an einem Login Systhem, weil ich nichts besseres zu tun habe^^
hier das Login Skript:
<?php $pass=$_POST[\'pass\']; $t_pass=\"irgendwas\"; if ($pass == $t_pass) { session_start(); $_SESSION[\'logged\'] = true; echo \"Sie wurden erfolgreich eingeloggt!<br/>\"; echo \"<a href=\\\"index.php?p=options\\\">Weiter</a>\"; } else { include(\"login_error.php\"); } ?>
Überprüft wird in jeder Datei so, ob man eingeloggt ist:
<?php session_start(); if (!isset($_SESSION[\'logged\']) || !$_SESSION[\'logged\']) { include(\"login_error.php\"); exit; } ?>
(das ist die Datei check.php, die in den geschützen Seiten eifach per include(\"check.php\"); eingebunden wird.
Wieso kann ich jetzt in der index.php nicht unterscheiden, ob ich eingeloggt bin oder nicht? Der merkt das irgendwie nicht. Index.php:
<html> <head> <link rel=\"stylesheet\" href=\"style.css\" type=\"text/css\"> </head> <body> <table> <tr> <td> <a href=\"index.php?p=home\">Home</a> <?php if (!isset($_SESSION[\'logged\']) || !$_SESSION[\'logged\']) { echo \"<a href=\\\"index.php?p=login\\\">Login</a>\"; } else { echo \"<a href=\\\"index.php?p=logout\\\">Logout</a>\"; } ?> </td> </tr> <tr> <td> <?php if(isset($_GET[\'p\'])) { $p=$_GET[\'p\']; include($p.\".php\"); } ?> </td> </tr> </table> </body> </html>
Ich habe das Login-Systhem erstmal nur mit Passwörtern gebaut, nachher erweiter ich es.
Danke!
Yazurah
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du hast in deiner index.php kein session_start() stehen (zumindest nicht in dem Beispiel da oben), dann kann er die Sessionvariable auch nicht finden.
-
Oh Mann. Sowas hätte ich finden müssen... Liegt wohl daran, dass ich erst das Skript alleine geschrieben hab und es danach ohne nachzudenken index.php mit GET eingebunden habe...
Danke.
Yazurah -
Hatte das gleiche Problem einmal
-
Hi,
noch eine Frage dazu:
ich hab jetzt hinzugefügt, dass der auch noch auf die User achtet. Und wenn das richtig ist, dann wird das ausgeführt:
$_SESSION[\'logged\'] = true;
Aber ich brauche auf einer anderen Seite auch noch den Namen, des eingeloggten Users. Daher habe ich dadrunter direkt $_SESSION[\'name\'] = $t_user; gesetzt. Damit wird der eingeloggte User in $_SESSIONS[name\'] eingetragen.
Auf der anderen Seite lese ich es so wieder aus:
$nick=$_SESSIONS[\'name\'];
Wieso gibt der mir nicht aus?
Danke!
Yazurah -
$_SESSION[\'logged\'] = true;
du willst überprüfen ob true ist oder?
jetzt weist du den Wert zu, da du nur ein = hast
Nein! Ich will wissen, welcher User eingeloggt ist!
if ($pass == $t_pass) { session_start(); $_SESSION[\'logged\'] = true; $_SESSION[\'name\'] = $t_user; echo \"Sie wurden erfolgreich eingeloggt!<br/>\"; echo \"<a href=\\\"index.php?p=options\\\">Weiter</a>\"; } else { include(\"login_error.php\"); }
Ich habe hier $_SESSION[\'name\'] = $t_user; hinuzgefügt, um in dieser Sessions zu speichern, WER eingeloggt ist und nicht OB jemand eingeloggt ist. Aber der Wert dieser Variablen wird nicht an die anderen Dateien weitergegeben...
Yazurah -
Wenn du wirklich $nick=$_SESSIONS[\'name\']; geschrieben hast, dann kann er es nicht finden, weil es die Variable $_SESSIONS nicht gibt.
Der Zugriff auf Sessionvariablen erfolgt auch mit $_SESSION[\'name\'], in deinem Fall also $nick=$_SESSION[\'name\'];, dann sollte es gehen. -
Wenn du wirklich $nick=$_SESSIONS[\'name\']; geschrieben hast, dann kann er es nicht finden, weil es die Variable $_SESSIONS nicht gibt.
Der Zugriff auf Sessionvariablen erfolgt auch mit $_SESSION[\'name\'], in deinem Fall also $nick=$_SESSION[\'name\'];, dann sollte es gehen.
Da fragt man sich immer, wieso man die einfachsten Sachen übersieht^^
Danke!
Yazurah -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage