| 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 * |
#2 · Zasláno: 21. 11. 2013, 10:04:44
|
||
| Radek9 Profil |
#3 · Zasláno: 21. 11. 2013, 10:05:05
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 |
#4 · Zasláno: 21. 11. 2013, 10:11:30
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! |
||
|
Časová prodleva: 13 let
|
|||
0