Tervehdys,
Eli onko mahdollista muuttaa jo asetetun evästeen arvoa vai pitääkö eväste esim. tuhota ennen uuden arvon asettamista? Olen yrittänyt molempia tapoja, mutta arvo pysyy vain samana?
Elikkä sivun alussa tarkistetaan onko eväste asetettu:
ja sitten kun myöhemmin eri ohjelmalohkossa:
setcookie("testi", "kylla", time()+86400, "/");
mutta cookien arvo pysyy [ei] kun tarkistan selaimen tiedoista...
olen myös yrittänyt unsetata testi-cookieta pistämällä time()-86400...
Mod. lisäsi kooditagit
Ainakin minulla tuo toimii. En sitten tiiä onko selaimen bugi tai jotain..
IE:llä näytti toimivan mutta Firefoxilla ei.. ilmeisesti jotain häikkää rakenteessa.
*Firefoxi palauttaa lomakkeen näyttöön ja cookien arvoksi ei
*IE toimii niin kuin pitää
=> Ilmeisesti viimeinen if hieman väärin, mutta miten sen saisi korjattua niin ettei se näyttäisi enää lomaketta, kun se on submitattu?
Tarkennan rakennetta hieman:
index.php
<?PHP if(!isset($_COOKIE['testi'])) { setcookie("testi", "ei", time()+86400, "/"); } ?> HTML KOODIA VÄLISSÄ... <?PHP $tmp; if(isset($_COOKIE['testi'])) { $tmp = $_COOKIE['testi']; } if ($tmp == "kylla") { ... Koodia } if ($tmp == "ei" && isset($_POST['lomake'])) { ...Koodia } if(!isset($_POST['lomake']) && isset($_COOKIE['testi']) == "ei") { ?> <form method = "POST"> . . . <input type="submit" name="lomake"> </from> <?PHP } ?>
Mod. lisäsi kooditagit
Hm. Kokeilen vain firefoxilla ja sillä toimi. Noh, taitaa vaan olla joku beta 3.5:n bugfix.
Niin no tiedä sitten kun nyt bugittaa molemmilla selaimilla. Ilmeisesti tossa rakenteessa on tosiaan jotain häikkää kun lätkäsee formin ruudulle aina kun vaihtaa sivua. Eli sen se voi tehdä vain jos ylhäällä koodissa settaa keksin arvoksi uudelleen ei tai alin if kusee...
Alin if ny kusee muutenkin. Muuta tällaseksi nii formeja ei pitäisi enää ilmestyä. Tai en tiiä kun ei sitä koodia ole enemmän.
if(!isset($_POST['lomake']) && $_COOKIE['testi'] == "ei") { ?> <form method = "POST"> . . . <input type="submit" name="lomake"> </from> <?PHP } ?>
Ilmeisestikkään cookieta tai sen arvoa ei voi setata muualta kuin ennen <html> tagia, joten tein erillisen filun jonka includasin ja homma toimii kuin junan vessa!
Aihe on jo aika vanha, joten et voi enää vastata siihen.