Automatisches LogIn

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Automatisches LogIn

    Wie realisiere ich es, dass sobald ein User eine bestimmte Seite betritt, er automatisch eingeloggt wird (wie in jedem Forum üblich).
    Dazu habe ich beim LogIn einfach Cookies gesetzt, Name und Passwort, was auch funktioniert.
    Auf der Seite habe ich dann zuerst geprüft, ob eine Session für den User besteht, falls nicht wollte ich die Cookies einlesen und nach einer Überprüfung ob Name und Passwort richtig ist den User mit session_register wieder einloggen.
    Wie mache ich das genau?
    Komme mit den Cookies nicht zurecht.

  • #2
    Mein Problem ist eigentlich nur, dass ich die Infos aus dem Cookie nicht wieder ausgelesen bekomme.

    Kommentar


    • #3
      Erwähne am Besten immer, was du schon versucht hast. Ich hab jetzt keine Ahnung, wobei ich dir helfen soll.

      Auslesen idR. mit $HTTP_COOKIE_VARS

      Kommentar


      • #4
        Das Setzen des Cockie beim normalen Login:
        PHP-Code:
        $zeit time() + 86400*14;
        setcookie ("JTVUsername"$username$zeit);
        setcookie ("JTVPwd"$passwort$zeit); 
        Das Auslesen des Cookie:
        PHP-Code:
        session_start();

        if ((!
        session_is_registered('username'))and(isset($HTTP_COOKIE_VARS["JTVUsername"])) and (isset($HTTP_COOKIE_VARS["JTVPwd"]))) {
         include(
        'config.inc.php');
         
        $link mysql_connect($sqlhost,$sqluser,$sqlpass);
         
        mysql_select_db($database,$link);
         
        $result mysql_query("SELECT pwd,nickname FROM user WHERE nickname = '$HTTP_COOKIE_VARS["JTVUsername"]' and pwd = '$HTTP_COOKIE_VARS["JTVPwd"]' ",$link);
         
        mysql_close($link);
         if (
        $row mysql_fetch_array($result)) {
          
        header ("Location:verify.php?username=".$HTTP_COOKIE_VARS["JTVUsername"]."&passwort=".$HTTP_COOKIE_VARS["JTVPwd"]);
                            }

        Das war mein Versuch! Nur das Auslesen funktioniert halt nicht. Die Variablenübergabe soll später natürlich über unsichtbare Inputfelder geschehen.
        Zuletzt geändert von Tpercon; 07.09.2002, 10:26.

        Kommentar


        • #5
          Da ich nicht so der Cookieliebhaber bin, hab ich da nicht DIE erfahrung.

          Aber man kann mehrere Daten in ein Cookie speichern und dementsprechend solltest du bei der Abfrage nicht auf den Namen des Cookies verweisen, sondern auf dessen Inhalt. Ob das jetzt mit nem Array[1], [2], [3] geht, oder wie, hab ich jetzt nicht im Kopf. Das müsstest du mal nachlesen.

          Kommentar


          • #6
            Es wid ja auch nur 1 Cockie erstellt mit beiden Infos drin!

            Kommentar


            • #7
              Ähm, hast du nicht ein Cookie mit Namen "JTVUsername" und eins namens "JTVPwd" ???

              Vielleicht noch mal zur Sicherheit ein Blick ins Manual: setcookie()

              Kommentar


              • #8
                Das habe ich zuerst ja auch gedacht!
                Als ich es dann wie oben ausprobiert habe, stellte sich heraus, dass ein Coockie mit beiden Infos drinnen erstellt wird.
                Mein Problem hat sich wahrscheinlich auch erledigt, zumindest bekomme ich den Coockie jetzt doch ausgelesen.

                Gruß

                Kommentar


                • #9
                  Hmm, das ist ja die Hauptsache.

                  Aber Poste bitte trotzdem nochmal den Code, das ich das nachvollziehen kann.

                  Kommentar


                  • #10
                    Die Infos für's Cookie werden wie oben gesetzt!
                    Oder meinst du den Code vom Einlesen?

                    Kommentar


                    • #11
                      So sieht mein Code beim Einlesen aus:
                      PHP-Code:
                      <?php
                      session_start
                      ();

                      if ((!
                      session_is_registered('username'))and(isset($HTTP_COOKIE_VARS['JTVUsername'])) and (isset($HTTP_COOKIE_VARS['JTVPwd']))) {
                       include(
                      'config.inc.php');
                       
                      $link mysql_connect($sqlhost,$sqluser,$sqlpass);
                       
                      mysql_select_db($database,$link);
                       
                      $query "SELECT pwd,nickname FROM user WHERE nickname = '$HTTP_COOKIE_VARS[JTVUsername]' and pwd = '$HTTP_COOKIE_VARS[JTVPwd]' ";
                       
                      $result mysql_query($query,$link);
                       
                      mysql_close($link);
                       if (
                      $row mysql_fetch_array($result)) {
                        
                      header ("Location:verify.php?username=".$HTTP_COOKIE_VARS['JTVUsername']."&passwort=".$HTTP_COOKIE_VARS['JTVPwd']);                    }
                                                                                      }
                      ?>
                      Leider funktioniert nur die Weiterleitung! nicht, kann's mir aber nicht erklären. Findet jemand einen Fehler? Oder wie kann ich sonst die Variablen übergeben?
                      Zuletzt geändert von Tpercon; 08.09.2002, 19:02.

                      Kommentar


                      • #12
                        Grundsätzlich zu erwähnen: Welche Fehlermedung

                        Also, was bekommst du ausgegeben?

                        Kommentar


                        • #13
                          OK, hab mich vielleicht was falsch ausgedrückt! Es kommt keine Fehlermeldung, nur scheinbar wird die Weiterleitung nicht ausgeführt!
                          Die Coockieinfos sind aber richtig und eine printanweisung an dieser Stelle wird auch ausgeführt!
                          Daher muß die Weiterleitung falsch sein. Ich bekomme nämlich keine Rückmeldung von der verify.php! Habs gerade nochmal getestet, es liegt definitiv an der Weiterleitung!

                          Kommentar


                          • #14
                            Kommentier die Zeile mit dem Header mal auch und schreib statt dessen mal ein Echo:
                            PHP-Code:
                            echo "Location:verify.php?username=".$HTTP_COOKIE_VARS['JTVUsername']."&passwort=".$HTTP_COOKIE_VARS['JTVPwd']; 

                            Kommentar


                            • #15
                              Ich sagte ja, das funktioniert!
                              Es muß an dem header Befehl liegen!

                              Kommentar

                              Lädt...
                              X