tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
11
ZUGRIFFE
258
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Kaeschdin Kaeschdin ist offline Mitglied Gold
    Registriert seit
    Jan 2002
    Beiträge
    145
    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
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    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:
    Code :
    1
    
    if($_POST['Login'] && $_POST['passwort'] == $Zugangspasswort)
    Folgendes:
    Code :
    1
    
    if(isset($_POST['passwort']) && $_POST['passwort'] == $Zugangspasswort)
     

  3. #3
    Kaeschdin Kaeschdin ist offline Mitglied Gold
    Registriert seit
    Jan 2002
    Beiträge
    145
    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.

     

  4. #4
    Avatar von hubbl
    hubbl hubbl ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    221
    Der Interpreter meckert nicht über das ";" sondern eigentlich über die fehlende runde (rechte) Klammer der If Prozedur.

    gruß
     
    Meine Wenigkeit auf Deviantart

  5. #5
    Kaeschdin Kaeschdin ist offline Mitglied Gold
    Registriert seit
    Jan 2002
    Beiträge
    145
    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
     

  6. #6
    Kaeschdin Kaeschdin ist offline Mitglied Gold
    Registriert seit
    Jan 2002
    Beiträge
    145
    Habe leider immer noch das Problem mit der ungültigen Session-ID.
     

  7. #7
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    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.
     

  8. #8
    Kaeschdin Kaeschdin ist offline Mitglied Gold
    Registriert seit
    Jan 2002
    Beiträge
    145
    Klar. Das pw ist simmern.
     

  9. #9
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    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.
     

  10. #10
    Kaeschdin Kaeschdin ist offline Mitglied Gold
    Registriert seit
    Jan 2002
    Beiträge
    145
    Zitat Zitat von Sven Mintel Beitrag anzeigen
    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.
    Die login1.php beginnt mit

    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.

    Im html-Bereich steht:

    PHP-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.';

    Die admin.php beginnt mit

    PHP-Code:
    session_start(); 
    Im html-Bereich steht:

    PHP-Code:
    include"config.php"// config.php wird eingefügt
    $Zugangspasswort $passwort// $passwort wurde in config.php bestimmt
    if($_SESSION['passwort'] == $Zugangspasswort)

    Dann kommt die Textausgabe (also das, was der Leser angezeigt bekommen soll) und dann

    PHP-Code:
    }
    else
    {
    echo
    'Ihre Session ist nicht gültig. Loggen Sie sich <a href="login.php">hier</a> erneut ein.';

     

  11. #11
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    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.
     

  12. #12
    Kaeschdin Kaeschdin ist offline Mitglied Gold
    Registriert seit
    Jan 2002
    Beiträge
    145
    Zitat Zitat von Sven Mintel Beitrag anzeigen
    Und was steht in der "config.php"?
    Nur

    PHP-Code:
    $passwort "simmern"
    Ohne Leerzeichen/-zeile Die habe ich auch in keiner der anderen php-Dateien gefunden.

    Aber irgendwie verhält sich der Login-Prozess jetzt anders. Hmm. Kommt zwar immer noch die Session-ID-Warnung, aber keine Fehlerseite mehr zwischendurch.
     

Ähnliche Themen

  1. Login klappt nicht
    Von LarsB im Forum PHP
    Antworten: 2
    Letzter Beitrag: 09.04.10, 10:01
  2. Flash Login klappt nicht
    Von Rico2000 im Forum Flash Plattform
    Antworten: 0
    Letzter Beitrag: 01.07.08, 16:00
  3. Login klappt nicht!
    Von ToWeR im Forum PHP
    Antworten: 7
    Letzter Beitrag: 07.04.04, 22:46
  4. Login klappt nicht
    Von jbo im Forum PHP
    Antworten: 13
    Letzter Beitrag: 21.12.03, 11:16
  5. Login Überprüfung klappt nicht
    Von badi im Forum PHP
    Antworten: 4
    Letzter Beitrag: 02.02.03, 23:51