2016-08-10 3 views
0

Я использую код:Cookie устанавливается со старым значением

IF (isset($_GET['s'])) 
{ 
    $sessie = $_GET['s']; 
} 
ELSE 
{ 
    $sessie = 'I'; 
} 
$cookie = 'JaiDje_Page'; 
setcookie($cookie, $sessie); 
$WDpag = $_COOKIE[$cookie]; 
echo $WDpag."-".$_COOKIE[$cookie]."-".$sessie."<br>"; 

После нового значения для $ sessie (меню Choise) странное дело в том, что в первый раз, когда страница загружается, $ WDpag и $ _COOKIE [$ cookie] дают старое значение, а $ sessie дает новое значение. После обновления страницы все три значения совпадают.

Таким образом, после принятия ВЫБИРАЕТ в меню следующий будет Echos (Пример)

IIZ

чем после обновления страницы (F5)

ZZZ

Кажется, что куки является одним шагом позади выбора в моем меню.

Что я делаю неправильно?

ответ

0

$_COOKIE устанавливается, когда страница загружается. Если вы хотите немедленного доступа, вы можете установить $_COOKIE['variable'] напрямую.

так сделать, как это

//setcookie($cookie, $sessie); 
$_COOKIE[$cookie] = $sessie; 
+0

Спасибо, это было вместе с другим ответом решение более чем в одной точке! Большой! :-) –

0

Причина заключается в том, что $_COOKIE[$cookie] возвращает текущий куки, посланный браузером. Пока setcookie отправляет куки-файлы в браузер. Когда вы извлекаете значение $_COOKIE[$cookie], cookie еще не установлен, потому что он будет установлен после запроса страницы.

пытаются поставить это после того, как setcookie:

if($_COOKIE[$cookie] != $sessie) header("location: pageName.php"); 
+0

Спасибо, это было вместе с другим ответом на решение более чем на один пункт! Большой! :-) –

Смежные вопросы