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: 10 let
|
0