Anfängerfehler bei Session/Cookie ?!

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16



    Habs geändert, allerdings mit gleichem Ergebnis.

    Comment


    • #17
      und die cookietest.php

      Comment


      • #18
        Die cookietest.php gibt bloß den Inhalt des Cookie aus, mehr nicht. Das funktioniert aber auch.

        Comment


        • #19
          wenn das cookie nicht vorhanden ist, dann kommt man auf das anmeldeformular.
          die daten werden an anmeldung geschickt, ausgewertet ... aber keine session-variablen gesetzt. dann können sie auf varcheck auch nicht zu sehen sein.
          PHP Code:
          setcookie("BerichteCookie"$cookievaluetime()+30*24*60*60);
          $_SESSION["login"] = $_POST[login];
          $_SESSION["passwort"] = $_POST[passwort]; 
          und dann muss in anmeldung.php auch ein session_start();
          Last edited by graf; 20-03-2003, 17:08.

          Comment


          • #20
            Also darf ich session variablen nur gleich nach schreiben des cookies oder im selben script festlegen ? Ansonsten klappt das nicht...

            Danke für Deine Geduld

            Comment


            • #21
              du musst sie halt erstmal setzen, wo ist grundsätzlich egal ....
              und bei dir wurde nur nach dem cookie gefragt und dann auf die nächste seite ...
              die nächste seite sollte dann ne sessionvariable ausgeben?
              dann muss sie aber auch dann gesetzt werden werden, wenn das cookie da ist, weil:

              $_SESSION[...] != $_COOKIE[..]

              Comment


              • #22
                Also ich habe da immer noch Probleme, ich habe die Änderungen die Du vorgeschlagen hast eingebaut und es klappt immer noch nicht. Auf der Anmeldung.php (vorher HTML) kann ich mir die $_SESSION["login"] und die $_SESSION["passwort"] ausgeben lassen. Wenn das Cookie existiert sollen diese Variablen ja gefüllt werden, wenn nicht dann kommt die Anmeldemaske. Auf der Seite sind die Variablen gefüllt, das hat aber auch schon vorher geklappt. wenn ich jetzt weiterleite auf varcheck, dann können sie aber plötzlich nicht mehr ausgegeben werden.

                Gruß
                timsen

                Comment


                • #23
                  zeig nochmal die "neuen" dateien

                  Comment


                  • #24
                    Hier bitte.
                    Attached Files

                    Comment


                    • #25
                      in anmeldung2.php fehlt immer noch
                      session_start();
                      ansonsten seh ich keine probleme

                      Comment


                      • #26
                        Hallo graf,

                        ich hab das ganze neu programmiert und das haut auch geklappt.
                        Jetzt habe ich aber ein anderes Problem, ich hab versucht den Trick mit den PW verschlüsseln aus diesem Forum bei mir einzubauen. Ich bekomme jetzt immer ein Parse Error (Zeile 89) und finde den Fehler nicht.
                        Da Zeile 89 meine letzte ist und das eigentlich nicht sein kann, hab ich mal den ganzen Code gepostet. Alles nach Zeile 50 müßte so stimmen, da ich es nicht verändert habe und es vorher funktioniert hat.

                        PHP Code:
                        <?php
                            session_start
                        ();
                            
                            
                        //Cookie auslesen
                            
                        if(isset($BerichteCookie)) {
                                
                                
                        $data $HTTP_COOKIE_VARS['BerichteCookie'];
                              
                        $data explode("|",$data);
                              
                              
                        //Variablen zur Hashgenerierung
                              
                        $secret "lilafitscheriegruenmitgelbblauenlalatupfen";
                                
                        $user_agent $_SERVER['HTTP_USER_AGENT'];
                              
                        $login $data[0];
                              
                        $hashdat $data[1];
                              
                              
                        $name "login.txt";
                              
                        $datatxt file($name);      
                              
                              
                        //Vergleich des Hash aus dem Cookie mit dem Servergenerierten Hash
                              
                        foreach ($datatxt as $line)
                              {
                                  
                        $ar explode("|"trim($line));
                                    
                        $logindat $ar[0];
                                    
                        $passwortdat $ar[1];
                                  
                        $hash md5($login.$passwortdat.$user_agent.$secret);
                                  if (
                        $login == $logindat && $hash == $hashdat) {
                                      
                        $passwort passwortdat;
                                      
                        $hash md5($login.$passwort.$user_agent.$secret);
                                      
                        $cookievalue $login '|' $hash;
                                        
                        setcookie("BerichteCookie"$cookievaluetime()+30*24*60*60);
                                        
                                            
                                        
                        // Logeintrag schreiben
                                        
                        $fp fopen("log.txt","a");
                                       if (
                        $fp) {
                                         
                        $zeitstempel date("d.m.y \u\m H:i:s");
                                         
                        $ipadresse $HTTP_SERVER_VARS ['REMOTE_ADDR']; 
                                         
                        flock($fp,2);
                                         
                        $nl chr(13) . chr(10);
                                         
                        fputs ($fp,"$zeitstempel|$ipadresse|$login|$nl");
                                         
                        flock($fp,3);
                                         
                        fclose($fp);
                                       } else {
                                         echo 
                        "Logdatei konnte nicht gespeichert werden.";                                   
                                       }
                                       
                        header('Location: cookietest.php');
                                        exit();
                                  }      
                            } 
                                      
                            
                        $name "login.txt";
                            
                        $data file($name);

                                
                            foreach (
                        $data as $line)
                            {
                                
                        $ar explode("|"trim($line));
                                
                        $logindat $ar[0];
                                
                        $passwortdat $ar[1];
                                
                            
                                
                        //Vergleich der Logindaten
                                
                        if ($login == $logindat && $passwort == $passwortdat) {
                                    
                        $hash md5($login.$passwort.$user_agent.$secret);
                                    
                        $cookievalue $login '|' $hash;
                                    
                        setcookie("BerichteCookie"$cookievaluetime()+30*24*60*60);
                                    
                                    
                        // Logeintrag schreiben
                                    
                        $fp fopen("log.txt","a");
                                   if (
                        $fp) {
                                     
                        $zeitstempel date("d.m.y \u\m H:i:s");
                                     
                        $ipadresse $HTTP_SERVER_VARS ['REMOTE_ADDR']; 
                                     
                        flock($fp,2);
                                     
                        $nl chr(13) . chr(10);
                                     
                        fputs ($fp,"$zeitstempel|$ipadresse|$login|$nl");
                                     
                        flock($fp,3);
                                     
                        fclose($fp);
                                   } else {
                                     echo 
                        "Logdatei konnte nicht gespeichert werden.";                  
                                   }
                                    
                                    
                        header('Location: cookietest.php');
                                    exit();
                                }
                            }
                             
                            
                        header('Location: anmeldung.html?fail=true');
                            exit();
                        ?>

                        Comment


                        • #27
                          Hab einen Fehler gefunden, hatte ein } vergessen.
                          Jetzt habe ich das Problem, dass mir angezeigt wird, Seite nicht gefunden.

                          Comment

                          Working...
                          X