Cookies werden falsch gesetzt

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

  • Cookies werden falsch gesetzt

    Hi

    Bei mir wird irgendwie das cookie falsch gesetzt.

    Ich habe dies:
    setcookie("gw", "", 0); //löscht das cookie
    $test = $_REQUEST['gw'];
    setcookie("gw", "$test", time()+3600*24);
    soweit so gut.
    Ich habe zwei links mit ?gw=A und ?gw=B
    Wenn ich nun auf den mit A Klicke, erstellt er mir das cookie. Wenn ich es dann lösche und auf den Link mit B klicke erstellt er es mir auch korrekt mit B drin.
    Wenn ich aber auf A klicke, und dann auf den Link mit B erstellt er mir nur ein cookie mit A
    Ich habe dann mal das setcookie ausgeklammert um zu sehen ob er es wirklich löscht. Wie es aussieht löscht er es ordnugnsgemäs.
    Woran kann dies also liegen?

    Gruss

    kari_w

  • #2
    wie wärs, wenn du 2 cookies erstellst ?

    Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
    sondern mit den Augen das Manual zu lesen.

    Kommentar


    • #3
      Der hacken ist sie müssten gleich heissen für die Funktion wo ich es benötige.
      Ich verstehe nicht ganz wieso dies so ist. Dachte mal einen ähnlichen Fehler irgendwo mit der var in php gehabt zu haben weiss es aber auch nicht mehr. Kann man denn dies irgendwie beheben, oder muss ich effektiv mit zwei cookies arbeiten?

      Kommentar


      • #4
        Der hacken ist sie müssten gleich heissen für die Funktion wo ich es benötige.
        Dann würde ich die Funktion umschreiben.

        OffTopic:

        Kari? Auch Finne? Oder heißt das Karin?

        Kommentar


        • #5
          Hi

          Kathrin. (das w sollte für weiblich stehen merkt nur niemand )

          Ok also ist es besser wenn ich da mit zwei Cookies arbeite? Dann werde ich dies tun

          Kannst mir denn ungefähr sagen warum es zu so einem phänomen kommt?

          GRuss

          kari_w

          Kommentar


          • #6
            Re: Cookies werden falsch gesetzt

            Original geschrieben von kari_w
            Ich habe dann mal das setcookie ausgeklammert um zu sehen ob er es wirklich löscht. Wie es aussieht löscht er es ordnugnsgemäs.
            d.h., du hast

            setcookie("gw", "", 0);
            und
            setcookie("gw", "$test", time()+3600*24);

            nacheinander im selben script stehen?


            welche PHP-version benutzt du?

            zitat manual setcookie:

            In PHP 3 werden mehrfache Aufrufe von setcookie() im selben Skript in umgekehrter Reihenfolge abgearbeitet. Sollten sie also ein Cookie löschen wollen bevor sie ein anderes setzen, sollten sie das Setzen vor dem Löschen vornehmen. In PHP 4 werden mehrfache Aufrufe von setcookie() in der Reihenfolge ihres Aufrufs behandelt.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Re: Re: Cookies werden falsch gesetzt

              Original geschrieben von wahsaga
              d.h., du hast

              setcookie("gw", "", 0);
              und
              setcookie("gw", "$test", time()+3600*24);

              nacheinander im selben script stehen?


              welche PHP-version benutzt du?

              zitat manual setcookie:

              In PHP 3 werden mehrfache Aufrufe von setcookie() im selben Skript in umgekehrter Reihenfolge abgearbeitet. Sollten sie also ein Cookie löschen wollen bevor sie ein anderes setzen, sollten sie das Setzen vor dem Löschen vornehmen. In PHP 4 werden mehrfache Aufrufe von setcookie() in der Reihenfolge ihres Aufrufs behandelt.
              Hi

              PHP4.3.8
              Daher verstehe ich es auch nicht so richtig.

              Gruss

              kari_w

              Kommentar


              • #8
                Es gibt noch mehr erhellendes zum Thema in Manual:

                Cookies will not become visible until the next loading of a page that the cookie should be visible for. To test if a cookie was successfully set, check for the cookie on a next loading page before the cookie expires. Expire time is set via the expire parameter. A nice way to debug the existence of cookies is by simply calling print_r($_COOKIE);.
                Daß das Cookie also "A" ausgibt, wo es auf "B" gesetzt sein sollte, muß also kein Fehler sein. Workaround: Neben dem Cookie setzt Du eine normale Variable mit dem Cookie-Wert und fragst das ab.

                Kommentar


                • #9
                  Original geschrieben von pekka
                  Es gibt noch mehr erhellendes zum Thema in Manual:



                  Daß das Cookie also "A" ausgibt, wo es auf "B" gesetzt sein sollte, muß also kein Fehler sein. Workaround: Neben dem Cookie setzt Du eine normale Variable mit dem Cookie-Wert und fragst das ab.
                  Hi

                  Dies habe ich gemacht. Und die Variabel gibt das richtige aus. Nur im Cookie steht dann wieder das falsche drin. Daher ist es mir nicht so klar wie bez warum es zu diesem Fehler kommt. Jetzt wo ich es weiss das es so ist kann ich ja mit zwei Cookies arbeiten. Wäre einfach Interessant herauszufinden warum er dies so macht.

                  Gruss

                  kari_w

                  Kommentar


                  • #10
                    Hi

                    Habe nunmal mit zwei cookies gearbeitet.
                    gw_a und gw_b
                    Ich drücke auf A es geht. Ich drücke auf B es geht auch. Aber wenn ich nun wieder auf A gehe, dann gehts wieder nicht. Wenn ich dann in das Cookie schaue, ändert er es wieder nicht und erstellt das was schon drin war. Kann ich irgendwie den cookie namen serzen das im Namen noch ein timestamp ist oder etwas? Also so das es gehen würde?

                    Gruss

                    kari_w

                    Kommentar


                    • #11
                      Original geschrieben von kari_w
                      Ich drücke auf A es geht. Ich drücke auf B es geht auch. Aber wenn ich nun wieder auf A gehe, dann gehts wieder nicht. Wenn ich dann in das Cookie schaue, ändert er es wieder nicht und erstellt das was schon drin war.
                      ich würde hier eher ein cache-problem als ursache vermuten.
                      der browser fordert script A nicht wirklich neu an, also wird auch kein neuer cookie(-inhalt) gesetzt.

                      Kann ich irgendwie den cookie namen serzen das im Namen noch ein timestamp ist oder etwas?
                      du greifst ja über $_COOKIE['cookiename] darauf zu - wie willst du das jetzt machen, wenn der name einen timestamp beinhaltet?

                      dann müsstest du ja jedesmal mit foreach($_COOKIE) o.ä. arbeiten, auch lästig.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Hi

                        Stimmt.
                        Ich nehme auch nicht an, dass jemand immer hin und her stellt. Normalerweise wird einmal gewechselt.

                        Wenn es nicht möglich ist, ist es nicht sehr schlimm. Wäre einfach schön wenn man es korrigieren könnte.

                        Gibts da nichts wo ich machen kann das es gehen würde wegem Cache Problem?

                        Gruss

                        kari_W

                        Kommentar

                        Lädt...
                        X