Satorus: Cookies funktionieren nicht =(

Ich habe folgendes Problem:

Ich will ein eigenes Loginscript coden und mit cookies machen, dass man nur 3 Versuche hat.Hier der Code:

<?php
    if(empty($_POST['kennwort'])) {
        echo "Bitte geben sie einen Benutzernamen ein";
    }
    if("11" == ($_POST['kennwort'])) {
        echo "JAAA";
    }
    else {
 echo "Passwort Falsch !";
        error_reporting(E_ALL);
        if(isset($_COOKIE['pass1'])) {
         if(isset($_COOKIE['pass2'])) {
        if(isset($_COOKIE['pass3'])) {
                Header("Location: /html/admin/index.php");
        } else {
              setcookie("pass3", "falsch");
         echo "<br>Keine Versuche mehr !";
    }

} else {
                setcookie("pass2", "falsch");
     echo "<br>Noch 1 Versuch !";
      }

} else {
              setcookie("pass1", "falsch");
        echo "<br>Noch 2 Versuche !";
    }
    }
?>

Wenn ich mich mit den Richtigen Daten ( hier das passwort 11) einlogge erstellt er trozdem ein Cookie ...

Bitte helft mir ! ;)

  1. Hello,

    wie willst Du dein "Login" denn später verwalten, wenn es erfolgreich war?

    Ich würde Dir empfehlen, dafür eine Session zu starten. Die Session als solches hat noch nichts mit dem "Login" zu tun, ist aber Träger der Wiedererkennung des Clients.

    In der DB-Tabelle, in der Du dann die Nutzerdten führst, kannst Du auch vermerken, wieviele erfolglose  Anmeldeversuche ein User seit X Minuten vorgenommen hat.

    Wie man soetwas aufbauen könnte, findest Du z.B. hier:

    http://forum.de.selfhtml.org/archiv/2008/4/t170126/#m1111727

    Ein harzliches Glückauf

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Ich würde Dir empfehlen, dafür eine Session zu starten. Die Session als solches hat noch nichts mit dem "Login" zu tun, ist aber Träger der Wiedererkennung des Clients.

      In der DB-Tabelle, in der Du dann die Nutzerdten führst, kannst Du auch vermerken, wieviele erfolglose  Anmeldeversuche ein User seit X Minuten vorgenommen hat.

      Wie man soetwas aufbauen könnte, findest Du z.B. hier:

      http://forum.de.selfhtml.org/archiv/2008/4/t170126/#m1111727

      Danke für deinen schnellen Post! :)

      Sieht ja ganz nett aus ...
      Aber leider hab ich keine ahnung von My SQL Datenbanken =(

      ... Das müsste ich ja eh mal lernen aber im Moment such ich ne andere Möglichkeit für den Login ...

      THX @ Tom ;)

      1. Hello,

        Sieht ja ganz nett aus ...
        Aber leider hab ich keine ahnung von My SQL Datenbanken =(

        dann fang einfach an:

        Starte eine Session.
        Fordere den User zur Authentifikation auf.
        Vergleiche seine Daten mit denen, die Du für ihn gespeichert hast, z.B. in einer Textdatei mit einem serialisierten Array oder einer CSV-Datei.

        Wenn das "Login" nicht stimmt, zähle in Deiner Session den Zähler hoch oder füge einen Eintrag in einem Subarray der Session hinzu.

        Besser wäre es aber, diese Einträge in der Userverwaltung vorzunehmen, also dort, wo Du Name und Passwort speicherst, denn da hast Du sie dann zentral für alle User. Außerdem sind diese Daten (fehlerhafter Versuch) ja auch an den User gebunden und nicht an seine Sessions... :-)

        Welche Daten müste denn so eine Userverwaltung halten können?

        - Username
         - Passwort
         - user-flag (0 für User darf sich einloggen, 1 = User ist eingelogged, 2 bis n = Sperrgrund)
         - last_login
         - last_request
         - login_failed[]
         - login_session

        Da kannst Du jetzt ein serialisiertes Array daraus machen:

        $_userdata = array();                           ## leeres Array für alle User anlegen

        $_userdata[$username] = array();                ## leeres Subarray für $username anlegen
          $_userdata[$username]['password']  = $password; ## Password für $username festlegen
          $_userdata[$username]['flag']      = 0;         ## User ist nicht gesperrt und nicht angemeldet
          $_userdata[$username]['lastlogin'] = 0;         ## Letzter Login war um ...
          $_userdata[$username]['lastrequest'] = 0;       ## Letzter Request war um ...
          $_userdata[$username]['loginfailed'] = array(); ## kein fehlerhaftes Login bisher

        Dazu musst Du Dir nun nur ein paar kleine Funktionen schreiben, die die Datei auslesen, auswerten, updaten und wieder wegschreiben.

        Bis etwa fünfhundert User kann man damit sehr gut leben.

        Ein harzliches Glückauf

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de