Cookie

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

  • Cookie

    Hallo zusammen,

    meine Cookie werden ordunug gemäß gesetzt, mein einziger Problem ist der IE(6.0), PHP 4.3.11, Win XP Prof, IIS 6.0

    Beim erstem aufrufe der Seiten, dh. ist der Cookie gesetzt und der IE wird aufgerufen, wird der Cookie nicht erkannt, mache ich ein reload der Seite wird der Cookie erkannt und ausgelesen, woran kann das liegen?

    Grüße ben127

    Code:
    Code:
    function tage ($tage)
    {
        $sekunden = (3600 * 24 * $tage);
        return $sekunden;
    }
    Cookie erstellen:
    Code:
    function CookieErstellen()   
    {
    $p = "Arbeitsverz";
    $CookiValue = "Erstellt am " . date("Y-m-d H_i_s") . "\n";
    setcookie("CookieName", $CookiValue, (time()+ tage(1000) ), $p );
    }
    Cookie löschen:
    Code:
    function loeschen()
    {
    $p = "Arbeitsverz";
    $CookiValue = " ";
    setcookie(("CookieName", $CookiValue, (time()-tage(1000) ), $p );
    }
    Cookie prüfen, diese Funktion wird beim einloggen verwendet, sie prüft
    ob der Cookie schon existiert.
    Code:
    function CookieCheck()
    {
    global $_COOKIE;
        if ( isset($_COOKIE["CookieName2"] ))
            return TRUE ;
        else
            return FALSE ;
    }

  • #2
    Weil der Cookie beim ersten Aufruf noch nicht verfügbar ist.

    btw.: nicht [ code] tags sondern bitte die [ php] tags verwenden
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Hallo,

      dieses Problem taucht aber nur im IE? Firefos 1.5.0.1 nimmt die Cookies klaglos?
      Ein Zusatzinfo, die Funktionen sind in einer Klasse, ob das eine Auswirkung hat?

      Grüße ben127

      Kommentar


      • #4
        Re: Cookie

        Original geschrieben von ben127
        Beim erstem aufrufe der Seiten, dh. ist der Cookie gesetzt und der IE wird aufgerufen
        D.H., du hast die Seite vorher irgendwann mal aufgerufen, dann den Browser geschlossen - und jetzt rufst du sie erneut auf?

        Wenn dann im FF der Cookie "da" ist, im IE aber nicht - dann handelt es sich vermutlich um ein Problem mit Sicherheitseinstellungen/Cookie-Blocker.
        Der IE akzeptiert das Cookie nur für die Sitzung, speichert es nicht dauerhaft - also ist in einer neuen browserinstanz erst mal ein Aufruf der Seite zum erneuten Setzen des Cookies nötig, und erst danach ist es wieder verfügbar.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          ist jetzt etwas schwer nachzuvollziehen, da du nur die funktionen nennst. Ob sie in ner Klasse definiert sind oder nicht, spielt dabei keine rolle. Wenn das ganze da oben allerdings ne klasse ist, wie greifst du dann auf tage() zu?

          $_COOKIE ist bereits global.
          lasse dir das array mal ausgeben. (Poste die Ausgabe.)

          rechte im IE sind gegeben?
          Wenns in einem Browser läuft, im anderen aber nicht, dann deutet das eher auf ein browserprob hin.

          Online-Beispiel?
          Zuletzt geändert von TobiaZ; 02.03.2006, 11:28.

          Kommentar


          • #6
            Hallo,
            D.H., du hast die Seite vorher irgendwann mal aufgerufen, dann den Browser geschlossen - und jetzt rufst du sie erneut auf?
            Korrekt
            Der IE akzeptiert das Cookie nur für die Sitzung, speichert es nicht dauerhaft - also ist in einer neuen browserinstanz erst mal ein Aufruf der Seite
            zum erneuten Setzen des Cookies nötig, und erst danach ist es wieder verfügbar.
            Also, im IE lasse ich mir die Cookies anzeigen über Extras--> (Kartei) Allgemein--> Einstellungen...--> Dateianzeigen.
            Dort werden alle Dateien angezeigt, die der IE im Cash hat, auch die Cookie Dateien, in der Spalte "Gültig bis" kann ich sehen, dass die Cookie Datei ist gültig bis 11/2008
            Wenn dann im FF der Cookie "da" ist, im IE aber nicht - dann handelt es sich vermutlich um ein Problem mit Sicherheitseinstellungen/Cookie-Blocker.
            An welche Stellen kann ich nach schaue, ob in IE ein Blocker eingeschaltet ist oder etwas ähnliches?

            wie greifst du dann auf tage() zu?
            In der Klasse mit $this->tage(1000);


            $_COOKIE ist bereits global. lasse dir das array mal ausgeben. (Poste die Ausgabe.)
            Nur bei erstem Aufruf wird gar nichts gezeigt, auch wenn ich print_r($_COOKIE); mache.
            Das ist das Problem.

            rechte im IE sind gegeben?
            Die Seite wird über den Webserver aufgerufen:
            http://127.0.0.2/MyDir/index.php (Bsp.)

            Beim erstem Beitrag habe ich mich nicht richtig formuliert, hier eine neue Formulierung:

            Also mein Problem, wenn ich mich einlogge wird der Cookie gesetzt, beim schlissen des Browser über "X" bleibt der Cookie bestehen, dann beim erneuet öffne des Browsers und beim Aufruf der URL http://127.0.0.2/MyDir/index.php soll der Cookie ausgelesen werden, das mach der IE nicht aber wenn ich die Seite reloade wird der Cookie erkannt und richtig ausgelesen, dh. alle Daten, die ich im Cookie gespeichert habe kann ich auch auslesen.
            Wenn ich den Browser wider schlisse und erneut öffnet den Browser und lädt die obige URL wird der Cookie erkannt und ausgelesen?
            Meine Frage, warum wird der Cookie beim ersten Mal nicht ausgelesen?

            Grüße ben127

            Kommentar


            • #7
              Original geschrieben von ben127
              Meine Frage, warum wird der Cookie beim ersten Mal nicht ausgelesen?
              Wird denn die Seite definitiv neu erstellt - oder holt er sie ggf. nur aus dem Cache ...?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Hallo,

                wie kann ich es fest stellen ob IE die Seite aus dem Cash holt oder nicht?

                In den Punkt Extra--> Allgemein--> Einstellungen sind folgende Einstellungen: "Neuere Version der gespeicherten Seiten suchen:" steht auf "Nie"
                "Temporäre Internetdateien"--> "Anteil des Speicherplatzes auf dem Datenträger:" steht auf "5 MB".

                Also?

                Grüße

                Kommentar


                • #9
                  Original geschrieben von ben127
                  wie kann ich es fest stellen ob IE die Seite aus dem Cash holt oder nicht?
                  Gib doch einfach testweise das aktuelle Datum + Uhrzeit in der Seite aus ...
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    habe gemacht:
                    PHP-Code:
                    echo "datum: ".date("H-i-s "); 
                    und beim reload der Seite werden immer die Minuten / Sekunden aktualisiert.

                    Kommentar


                    • #11
                      Dann stell mal ein Online-Beispiel bereit.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Hallo,

                        es ist leider nicht ohne weiteren möglich, trotzdem danke für die Hilfe.

                        Kommentar

                        Lädt...
                        X