Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP + Evästeongelma

Toshiba [04.05.2008 14:36:22]

#

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:

<?php
if(!isset($_COOKIE['testi']))
{
		setcookie("testi", "ei", time()+86400, "/");
}
?>

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

Short Php [04.05.2008 15:14:53]

#

Ainakin minulla tuo toimii. En sitten tiiä onko selaimen bugi tai jotain..

Toshiba [04.05.2008 15:45:04]

#

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

Short Php [04.05.2008 16:04:26]

#

Hm. Kokeilen vain firefoxilla ja sillä toimi. Noh, taitaa vaan olla joku beta 3.5:n bugfix.

Toshiba [04.05.2008 16:09:50]

#

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...

Short Php [04.05.2008 16:22:43]

#

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
}
?>

Toshiba [04.05.2008 18:04:52]

#

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!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta