ERLEDIGT
JA
JA
ANTWORTEN
11
11
ZUGRIFFE
258
258
EMPFEHLEN
-
Auf der Suche nach einem Login-Skript bin ich auf diese Lösung gestoßen:
http://www.html.de/tutorials/11487-p...-sessions.html
Funktioniert soweit reibungslos, allerdings habe ich auch das Problem, das dort jemand auf Seite 2 beschreibt: Wenn ich das Passwort eingebe und auf "Login" klicke, klappt es. Wenn ich das Passwort eingebe und ENTER drücke, sagt er mir, das Passwort wäre falsch bzw. in FF, dass die Session ungültig ist.
Wie kann das sein?
Grüße,
Kerstin
-
Moin Kerstin,
das Problem liegt hier:Code :1
if($_POST['Login']
$_POST['Login'] ist der Submit-Button, dieser wird idR. nur übermittelt, wenn er angeklickt wurde. Beim ENTER wird er daher nicht mitgesendet.
Lösung:
mache hieraus:
Folgendes:Code :1
if($_POST['Login'] && $_POST['passwort'] == $Zugangspasswort)
Code :1
if(isset($_POST['passwort']) && $_POST['passwort'] == $Zugangspasswort)
-
Danke für die Antwort.
Wenn ich das so mache und das Passwort abschickt, meckert er über das ; in session_start(); und zwar in folgendem Code (login1.php):
PHP-Code:include"config.php"; // config.php wird eingefügt
$Zugangspasswort = $passwort; // $passwort wurde in config.php bestimmt
if(isset($_POST['passwort']) && $_POST['passwort'] == $Zugangspasswort
// Login ist der Submitbutton vom Formular und passwort das Feld vom Formular
{
session_start();
$_SESSION['passwort'] = $Zugangspasswort;
// Hier geben wir der Sessionen den Zugangsschlüssel.
}
-
Der Interpreter meckert nicht über das ";" sondern eigentlich über die fehlende runde (rechte) Klammer der If Prozedur.
grußMeine Wenigkeit auf Deviantart
-
Ok, das klappt nun.
Wenn ich mich einlogge, kommt "Session-ID ungültig ..." (aus der admin.php). Wenn ich dem Link zum erneuten Versuchen folge und mich nochmal einlogge, klappt es. Wenngleich zwischen Login-Seite und Zielseite ganz kurz eine Zwischenseite mit Fehlermeldung zu sehen ist. Letztendlich landet man dann aber auf der Zielseite.
Nachzuvollziehen hier: http://www.schmellenkamp.de/onlinere...cher/login.php
-
Habe leider immer noch das Problem mit der ungültigen Session-ID.
-
Moin Kerstin,
hast du mal nen Passwort für ein Testlogin parat, denn ohne kann man das schlecht testen dort.
Ich vermute mal, dass du bereits irgendwo vor einem session_start() eine Ausgabe hast, was verhindert, dass der Session-Cookie gesetzt werden kann.
Die Lösung wäre da, dass du in allen beteiligten Skripten als allererstes ein ob_start() notierst.
-
Klar. Das pw ist simmern.
-
Kannst du mal in der login.php und in der login1.php das error_reporting aktivieren.
Ich bleibe immer noch bei meiner Vermutung aus meinem vorangegangenen Posting...der Session-Cookie kann nicht gesetzt werden(bzw. wird nicht gesetzt)...er wird erst in der admin.php gesetzt, so scheint es.
-
Die login1.php beginnt mit
Im html-Bereich steht:PHP-Code:include"config.php"; // config.php wird eingefügt
$Zugangspasswort = $passwort; // $passwort wurde in config.php bestimmt
if(isset($_POST['passwort']) && $_POST['passwort'] == $Zugangspasswort)
// Login ist der Submitbutton vom Formular und passwort das Feld vom Formular
{
session_start();
$_SESSION['passwort'] = $Zugangspasswort;
// Hier geben wir der Sessionen den Zugangsschlüssel.
}
Die admin.php beginnt mitPHP-Code:if($_SESSION['passwort'] == $Zugangspasswort) // Hier prüft es die obig-registrierte Session.
{
echo"Sie sind erfolgreich eingeloggt! Sie werden zur Administration weitergeleitet.<script>top.location.href='admin.php?site=main'</script><br/>";
// Nun eine Rückgabe, für die die JS deaktiviert haben:
echo'Falls Sie nicht automatisch weitergeleitet werden, klicken Sie <a href="admin.php">hier</a>';
}
else
{
// Und hier die Meldung, wenn es nicht gültig ist
echo 'Sie sind nicht befugt, diese Seite anzusehen. Möglicherweise ist das eingegeben Passwort falsch.<br>';
echo 'Bitte loggen Sie sich <a href="login.php">hier</a> erneut ein.';
}
Im html-Bereich steht:PHP-Code:session_start();
Dann kommt die Textausgabe (also das, was der Leser angezeigt bekommen soll) und dannPHP-Code:include"config.php"; // config.php wird eingefügt
$Zugangspasswort = $passwort; // $passwort wurde in config.php bestimmt
if($_SESSION['passwort'] == $Zugangspasswort)
{
PHP-Code:}
else
{
echo'Ihre Session ist nicht gültig. Loggen Sie sich <a href="login.php">hier</a> erneut ein.';
}
-
Und was steht in der "config.php"?
Ein simples Leerzeichen, welches vor dem session_start() ausgegeben wird, verhindert bereits das Senden des Cookies....und wenn ich mir den Quelltext anschaue, sehe eich, dass dieser mit einer leeren Zeile beginnt.
Dies könnte ein Indiz sein, dass da bereits vorher etwas ausgegeben wird.
Prüfe mal, ob alle PHP-Skripte(inklusive config.php) mit <?php beginnen...davor darf nichts stehen, kein Leerzeichen, kein Zeilenumbruch, ...rein garnichts.
-
Ähnliche Themen
-
Login klappt nicht
Von LarsB im Forum PHPAntworten: 2Letzter Beitrag: 09.04.10, 10:01 -
Flash Login klappt nicht
Von Rico2000 im Forum Flash PlattformAntworten: 0Letzter Beitrag: 01.07.08, 16:00 -
Login klappt nicht!
Von ToWeR im Forum PHPAntworten: 7Letzter Beitrag: 07.04.04, 22:46 -
Login klappt nicht
Von jbo im Forum PHPAntworten: 13Letzter Beitrag: 21.12.03, 11:16 -
Login Überprüfung klappt nicht
Von badi im Forum PHPAntworten: 4Letzter Beitrag: 02.02.03, 23:51





Zitieren

Die habe ich auch in keiner der anderen php-Dateien gefunden.
Login






[PHP][Snippet] Array zu XML konvertieren