2014-11-06 3 views
0

Я хочу проверить, существует ли файл cookie и если он не просматривается в заголовке, если он отправляется по ссылке, а если это FALSE, вернитесь на страницу, где я создаю файл cookie в заголовок. Когда я ввода этого кода в мой код (вверху)Если оператор продолжает возвращаться к части else

if(empty($_COOKIE['location'])){ 
    if(isset($_GET['location'])){ 
     $_COOKIE['location'] = filter_input(INPUT_GET, 'loc', FILTER_SANITIZE_NUMBER_INT); 
     setcookie('location', $_COOKIE['location'], time()+3600 * 8); 
    } 
    else { 
     header('Location: location-select'); 
    } 

Он держит не отступая к другому части header('Location: location-select'); независимо от того, что я стараюсь. Если я удалю этот блок кода, он отлично работает, но мой файл cookie не проверяется. У кого-нибудь есть идея, почему это происходит?

+2

Я думаю, вы никогда не устанавливали свой печенье! – Rizier123

+0

У вас есть 'var_dump''ed' $ _COOKIE ['location'] ', чтобы убедиться в его состоянии? –

+0

Какова ваша цель на самом деле с этими строками кода? Чтобы проверить, установлен ли файл cookie, и да, чтобы продлить срок службы, а в противном случае - заголовок()? – Rizier123

ответ

0

Я думаю, что это то, что вы пытаетесь сделать.

Он проверяет, пуст и не установлен ли $_COOKIE['location']. Если это так, то он создает файл cookie с данными, которые вы предоставили. Если он установлен, он переходит на location-select.

if(empty($_COOKIE['location'])){ 
    if(! isset($_GET['location'])){ 
     $data = filter_input(INPUT_GET, 'loc', FILTER_SANITIZE_NUMBER_INT); 
     setcookie('location', $data, time()+3600 * 8); 
    } 
    else { 
     header('Location: location-select'); 
    } 
} 
Смежные вопросы