kostenloser Webspace werbefrei: lima-city


Cookieabfrage dauert zu lange

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    limabone

    Kostenloser Webspace von limabone

    limabone hat kostenlosen Webspace.

    Ich bin mit meinem Loginskript schon fast fertig, nurnoch 1% fehlt noch, und das bereitet mit echt Kopfschmerzen. Ein schönheitsfehler. Bei dem Login werden bei mir zwei Cookies gesendet, user & der md5 wert von pass.
    Nur wenn die Nachricht raus is, dass man eingeloggt ist, wird die Navi rechts erst bei einem reload geladen.
    Bei Lima-city funktioniert das doch auch?! Und es verwendet auch Cookies....
    könnt ihr hier mal Testen, damit ihr es versteht... http://www.the-penguins.com/login.php

    Username : Test
    Passwort: test

    Beitrag zuletzt geändert: 3.12.2009 17:08:03 von limabone
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Zeig mal deinen PHP-Code, nur dann können wir dir helfen.

    LG cookies

    Beitrag zuletzt geändert: 3.12.2009 17:58:45 von cookies
  4. Ich vermute, das liegt daran, dass Cookies erst beim nächsten Seitenaufruf gelesen werden können. Wenn also das Login erfolgt, wird erst später das Cookie gesetzt und erst nach erneutem Klick wieder abgerufen.

    Du könntest folgendes machen:

    1.) Bei Login prüfst Du die Daten und speicherst das Cookie
    2.) Direkt nach dem Prüfen setzt Du ein Flag, dass der Besucher eingeloggt ist, so dass die erste Seite nach dem Login angezeigt wird.
    3.) Bei Folgeseiten kannst Du dann das Cookie wieder abfragen

  5. Autor dieses Themas

    limabone

    Kostenloser Webspace von limabone

    limabone hat kostenlosen Webspace.

    Naja, da liegt das Problem... Ich hab keine neue Seite nach dem Login, sondern nur die alte, aber mit anderen Includes...
    ich habs schon mit einer
    <meta http-equiv="refresh" content="1; URL=javascript:history.back(0)">
    Weiterleitung versucht, die das fesnter einfach neu ladet, geht aber auch ned...
    Die Seite hat verdammt viele Includes, damit alles schön übersichtlich bleibt, also wäre der Quelltext ziemlich lang. Aber wenns nicht anders geht, gebe ich ihn selbstverständlich her.
  6. Mein Vorschlag ist, nach dem Login NICHT weiterzuleiten oder die Seite neuladen lassen, sondern einfach direkt den Inhalt zu parsen

    also z.B. so: (in der index.php)

    $eingeloggt = false;
    
    //ganz am Anfang Cookie Abfrage bei Folgeseiten
    if(isset($_COOKIE['user'])
    {
       // Datenbankabfrage für User passwort
       $ergebnis = mysql_query("SELECT pass FROM usertable WHERE user='".$_COOKIE['user']."'");
       $sqlpass = mysql_result($ergebnis,0);           
       if($_COOKIE['pass'] == $sqlpass) $eingeloggt = true;   // Passwort md5 im Cookie und in DB gespeichert
    }
    
    // Wenn die Logindaten aus dem Formular übermittelt worden
    
    
    if($_POST['aktion'] == "login")
    {
        //Datenbankabfrage
       $ergebnis = mysql_query("SELECT pass FROM usertable WHERE user='".$_POST['user']."'");
       $sqlpass = mysql_result($ergebnis,0);
       if(md5($_POST['pass']) == $sqlpass) $eingeloggt = true;
       @SetCookie ('pass',md5($_POST['pass']);
       @SetCookie('user',$_POST['user']);
    }
    
    //Anzeige, die angemeldete Besucher sehen sollen
    
    if($eingeloggt)
    {
        echo "blabla";
    }
    else echo "bitte einloggen";


    Ist jetzt natürlich nur ein einfaches Beispiel. Aber du musst nicht unbedingt nach dem Login die Seite laden. Ich habe in meiner index-Datei ein include für login in drin, dass in etwas so den LoginZustand prüft. Also entweder das Cookie ausliest oder aber bei Rücksendung des Loginformulars auf die POST Variable achtet und dann jeweils den Status mitteilt. Somit bist Du auch vor dem gesetzten Cookie schon eingeloggt.

    EDIT: Habe mich mit den md5 Werten vertan. Ich würde die Passwörter immer verschlüsselt speichern (sowohl im Cookie als auch in der MySql DB). Bei der Abfrage muss dann das eingegebene Klartext Passwort mit md5 umgewandelt werden.

    EDIT2: Vielleicht solltest Du mal über Sessions nachdenken und das Passwort dort speichern.



    Beitrag zuletzt geändert: 4.12.2009 10:32:50 von rnitsche
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!