Autor Zpráva
maycza
Profil
Zdravím, mám takový kód:
<?
if (isset($_POST["ok"])){
  setcookie("ok",$_POST["ok"],time()+3600);
}
echo "post: ".$_POST["ok"]."<br />cookie: ".$_COOKIE["ok"];

echo"
<form action='#' method='post'>
  <input type='submit' name='ok' value='1'>
  <input type='submit' name='ok' value='2'>
  <input type='submit' name='ok' value='3'>
</form>";
?>

Zajímalo by mě, proč, když si nechám vypsat cookie hned po jeho změně, vypíše se mi hodnota, kterou jsem zadal v při předchozím kliknutí. Např.: kliknu na input s hodnotou 1, hodnota postu je 1, cookie, se nevypíše, kliknu na input s hodnotou 2, vypíše se post s hodnotou 2, cookie s hodnotou 1...

Může mi někdo prosím objasnit, proč to tak dělá? Proč se hned nevypíše nově zadaná hodnota? Díky předem.
Uko Ješita
Profil *
Nejčastější potíže s PHP (FAQ) » Rozdíl ve viditelnosti cookies při vytvoření javascriptem a PHP
Radek9
Profil
maycza:
Protože prioritu mají hodnoty cookies zaslané uživatelem. Teprve až potom ty posíláš novou hodnotu, která se však nepromítně do $_COOKIE hned. Buď si přepiš i hodnotu v poli, nebo reloadni stránku.
maycza
Profil
Ahaaa... takže pokud chci hned používat přijatou hodnotu, musím použít hodnotu v $_POST, pokud nepřijde žádná hodnota v $_POST, použiju $_COOKIE ... pokud to teda budu dělat pomocí PHP.
Díky za rychlé odpovědi!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0