cookie löschen die 1000000ste

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

  • cookie löschen die 1000000ste

    hallo,

    entweder bin ich verplant oder blind oder wtf auch immer oder hier spinnt was.

    ich will ein simples login/logout mit cookies machen (ausschliesslich). der ganz banale test sieht so aus:
    PHP-Code:
       if(isset($_GET['login']) && $_GET['login']==1)
       {
           
    setcookie('test''schwups'time()+3600'/');
           
    header('LOCATION: '.MAINURL);
           exit;
       }
            
       if(isset(
    $_GET['logout']) && $_GET['logout']==1)
       {
       
    /*
           foreach($_COOKIE as $k=>$v)
           {
               if(!setcookie($k, ' ', time()-360000))
                   die('error');
           }
       */
           
    setcookie('test'' 'time()-3600);
           
    setcookie(session_name(), ' 'time()-3600);

           
    session_destroy();
           
    header('LOCATION: '.MAINURL);
           exit;
       } 
    sinn: bei einem logout sollen die session & cookie "test" resettet werden. klappt auch, aber NUR im ie. mozilla, firebird, opera behalten munter das cookie "test" sowie die eingangs vergebene session-id.

    warum?

    man kann das hier selber testen: http://web5.kdnr543.w-cct.de/cmxneu/
    Kissolino.com

  • #2
    Versuch mal den negativen Time Wert der cookies höher zu setzen und lösche das leerzeichen zwischen "". Z.B. auf
    PHP-Code:
    setcookie("test"""time()-60000); 
    und setze

    PHP-Code:
    $_SESSION = array(); 
    vor session_destroy();

    Einige Browser weigern sich manchmal sonst das cookie zu löschen.
    Zuletzt geändert von Florian F.; 18.02.2005, 19:32.

    Kommentar


    • #3
      Und was ist wenn Du als Cookie Wert ein "" anstatt einem ' ' verwendest? ... also ohne das Leerzeichen ... ?!
      carpe noctem

      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

      Kommentar


      • #4
        Den Browser interessiert nicht was Du mit
        PHP-Code:
        $_SESSION = array(); 
        machst ... !
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          hab ich schon hinter mir:

          - mit & ohne leerzeichen
          - expire wert auf time()-3600000

          ich hab beim logout auch mal einen anderen wert ins cookie gesetzt ala:
          PHP-Code:
          setcookie('test''huhu'time()+3600); 
          ergebnis: 0 reaktion bei mozilla & co, der ie muckst sich auch nicht mehr. haue ich ein "echo" in die bedingung, kommt der erwartete error, dass der header nciht gesendet werden kann.

          ?
          Kissolino.com

          Kommentar


          • #6
            Poste mal den gesamten Login & Logout code.

            Kommentar


            • #7
              PHP-Code:
              // auszug config ... rest ist unrelevant
              <?php
              $cfg
              ['subdir'] = 'cmxneu/';  // empty or subdir WITH trailing slash

              // NOTHING TO CHANGE BELOW THE LINE ############################################
              error_reporting(E_ALL);


              define('MAINURL''http://'.$_SERVER["HTTP_HOST"].'/'.$cfg['subdir']);
              define('MAINPATH'$_SERVER['DOCUMENT_ROOT'].'/'.$cfg['subdir']);

              ini_set('session.use_only_cookies'1);
              ini_set('session.name''s');
              ini_set('arg_separator.output','&amp;amp;');

              session_start();
              setcookie(session_name(), session_id(), time()-3600'/'1);
              ?>

              // index.php
              <?php
                 
              require_once('cmx.config.php');

                 if(isset(
              $_GET['login']) && $_GET['login']==1)
                 {
                     
              setcookie('test''schwups'time()+3600'/');
                     
              header('LOCATION: '.MAINURL);
                     exit;
                 }
                      
                 if(isset(
              $_GET['logout']) && $_GET['logout']==1)
                 {
                     
              setcookie('test'''time()-3600);
                     
              setcookie(session_name(), ''time()-3600);

                     
              session_destroy();
                     
              header('LOCATION: '.MAINURL);
                     exit;
                 }
              ?>

              <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                    "http://www.w3.org/TR/html4/loose.dtd">

              <html>
              <head>
                  <title></title>
              <meta http-equiv="expires" content="0">
              <meta http-equiv="pragma" content="no-cache">
              <meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
              </head>

              <body>
              <?php
                 
              if(!isset($_COOKIE['test']))
                 {
                     echo 
              '<a href="'.$_SERVER['PHP_SELF'].'?login=1">LOGIN</a>';
                 }
                 else
                 {
                     echo 
              '<b>drin</b><br>
                           <a href="'
              .$_SERVER['PHP_SELF'].'?logout=1">LOGOUT</a><br><br>';
                 }
                  
                 echo 
              '<a href="'.$_SERVER['PHP_SELF'].'">test</a>';
                 echo 
              '<pre>';
                 
              print_r($_COOKIE);
              ?>
              </body>
              </html>
              bitteschön
              Kissolino.com

              Kommentar


              • #8
                hat's vielleicht was mit der pfadangabe '/' beim setzen zu tun?

                Kommentar


                • #9
                  Original geschrieben von penizillin
                  hat's vielleicht was mit der pfadangabe '/' beim setzen zu tun?
                  path
                  Der Pfad zu dem Server, auf welchem das Cookie verf?sein wird.

                  Ist er auf '/' gesetzt, wird das Cookie innerhalb der gesamten Domain verf? Ist er auf '/foo/' gesetzt, wird das Cookie nur innerhalb des Verzeichnisses /foo/ der domain, sowie allen Unterverzeichnissen wie z.B. /foo/bar/ verf? Der Standardwert ist das Verzeichnis, in dem das Cookie gesetzt wurde.

                  http://de2.php.net/manual/de/function.setcookie.php
                  ... würde sagen, nein.
                  Kissolino.com

                  Kommentar


                  • #10
                    Ich würde auch sagen das die Pfadangabe inkorrekt ist. Lösche mal '/' versuchshalber.

                    Kommentar


                    • #11
                      ok, slash ist raus und "test" wird korrekt gelöscht, allerdings gibts NUR im ie eine neue session-id nach dem logout wie ist das bei euch? ... muss ich alles nicht verstehen, oder. ich find auch die manual aussage nicht missverständlich, uU will man ein cookie ja nur in einem unterverzeichnis haben ... sch**ss kekse .

                      gut es "läuft", aber so richtig rund find ich das nicht.
                      Kissolino.com

                      Kommentar


                      • #12
                        Schau mal unter http://www.phpfreaks.com/tutorials/41/5.php


                        Grüße
                        flo

                        Kommentar


                        • #13
                          vielleicht doch nicht raus, sondern eher beim "löschen" rein.

                          Kommentar


                          • #14
                            @penizillin

                            das wars, so löschen, wie man setzt ... trotzdem: kekse und /me werden keine grossen freunde

                            thx @all
                            Kissolino.com

                            Kommentar

                            Lädt...
                            X