Cookie értékének módosítása

Kezdőlap Fórumok Programozás Cookie értékének módosítása

9 bejegyzés megtekintése - 1-9 / 9
  • Szerző
    Bejegyzés
  • #2169442
    erdsiger
    Felhasználó

      Egy kis előbbrelépés. A

      Code:
      $_COOKIE[‘nev’] = ‘ertek’;

      kód működik, de csak értéket változtat a futás alatt, magát a sütit nem módosítja. Nem is igazán a válasz érdekel most, hanem hogy ezzel a módszerrel át lehet írni a sütiben lévő értéket, vagy tényleg csak a memóriában írja át az értékét?

      #2169443
      erdsiger
      Felhasználó

        Egy kis előbbrelépés. A

        Code:
        $_COOKIE[‘nev’] = ‘ertek’;

        kód működik, de csak értéket változtat a futás alatt, magát a sütit nem módosítja. Nem is igazán a válasz érdekel most, hanem hogy ezzel a módszerrel át lehet írni a sütiben lévő értéket, vagy tényleg csak a memóriában írja át az értékét?

        #2169444
        xcut
        Felhasználó

          Kis mese a sütik működéséről.
          Amikor te PHP-ban meghívod a setcookie() függvényt, akkor a szerver válaszának HTTP fejléceihez hozzáadódik a „Set-Cookie” fejléc, ami definiálja a cookie élettartamát, hatókörét, nevét és tartalmát. Ezt a kliens vagy megőrzi, vagy nem. Amikor a kliens küldi a következő kérést, akkor az adott kéréshez tartozó cookie-kat összegyűjti, és a „Cookie” fejléccel elküldi a szervernek. Amikor ezt a szerver megkapja, akkor továbbadja még pár másik változóval együtt a feldolgozó programnak (esetünkben ez a PHP). A PHP fogja magát, és egy $_COOKIE nevű tömbbe fésüli ezeket az adatokat. Ha megváltoztatod, akkor nem fog a setcookie() automatikusan lefutni (nem is tehetné meg, túl kevés adata van). A klienst csak akkor lehet megkérni a cookie megváltoztatására, ha újraküldöd a „Set-Cookie” fejlécet, ez pedig egy ismételt setcookie()-t jelent.

          #2169445
          xcut
          Felhasználó

            Kis mese a sütik működéséről.
            Amikor te PHP-ban meghívod a setcookie() függvényt, akkor a szerver válaszának HTTP fejléceihez hozzáadódik a „Set-Cookie” fejléc, ami definiálja a cookie élettartamát, hatókörét, nevét és tartalmát. Ezt a kliens vagy megőrzi, vagy nem. Amikor a kliens küldi a következő kérést, akkor az adott kéréshez tartozó cookie-kat összegyűjti, és a „Cookie” fejléccel elküldi a szervernek. Amikor ezt a szerver megkapja, akkor továbbadja még pár másik változóval együtt a feldolgozó programnak (esetünkben ez a PHP). A PHP fogja magát, és egy $_COOKIE nevű tömbbe fésüli ezeket az adatokat. Ha megváltoztatod, akkor nem fog a setcookie() automatikusan lefutni (nem is tehetné meg, túl kevés adata van). A klienst csak akkor lehet megkérni a cookie megváltoztatására, ha újraküldöd a „Set-Cookie” fejlécet, ez pedig egy ismételt setcookie()-t jelent.

            #2169446
            erdsiger
            Felhasználó

              Köszönöm, így már értem a működését!

              #2169447
              erdsiger
              Felhasználó

                Köszönöm, így már értem a működését!

                #2169448
                sayusi
                Felhasználó
                  erdsiger wrote:
                  Egy kis előbbrelépés. A

                  Code:
                  $_COOKIE[‘nev’] = ‘ertek’;

                  kód működik, de csak értéket változtat a futás alatt, magát a sütit nem módosítja. Nem is igazán a válasz érdekel most, hanem hogy ezzel a módszerrel át lehet írni a sütiben lévő értéket, vagy tényleg csak a memóriában írja át az értékét?

                  illetve: felejtsd el a cookiet. Használj sesssion-t helyette.
                  A cookie azon túl, hogy oldalról oldalra adja a session azonosítót nem igazán használható semmire (IMHO).

                  #2169449
                  sayusi
                  Felhasználó
                    erdsiger wrote:
                    Egy kis előbbrelépés. A

                    Code:
                    $_COOKIE[‘nev’] = ‘ertek’;

                    kód működik, de csak értéket változtat a futás alatt, magát a sütit nem módosítja. Nem is igazán a válasz érdekel most, hanem hogy ezzel a módszerrel át lehet írni a sütiben lévő értéket, vagy tényleg csak a memóriában írja át az értékét?

                    illetve: felejtsd el a cookiet. Használj sesssion-t helyette.
                    A cookie azon túl, hogy oldalról oldalra adja a session azonosítót nem igazán használható semmire (IMHO).

                    #1888379
                    csaba
                    Felhasználó

                      Sziasztok!

                      Az lenne a kérdésem, hogy PHP-ben a cookie értékét meg lehet anélkül változtatni, hogy megszüntetnénk a cookiet? Kerestem a neten megoldást, de nem találtam. A PHP manualban ennél a hozzászólásnál ez a kód található:

                      Code:
                      $_COOKIE[‘VerifyUser’] = $Cut[0];

                      vagyis valami ilyen megoldás:

                      Code:
                      $_COOKIE[‘nev’] = ‘ertek’;

                      Ez egyrészt nálam nem működik, másrészt sehol máshol nem találtam ilyen megoldást, így azt is megkérdőjelezem, hogy helyes-e. Az egyedüli megoldás ami működik, hogy először törlöm a cookie-t, majd setcookie()-val újra létrehozom. Ennek az elkerülésére, a fenti megoldáshoz hasonló létezik?

                    9 bejegyzés megtekintése - 1-9 / 9
                    • Be kell jelentkezni a hozzászóláshoz.