@Jonnyyy1

Как сделать правильное выполнение скрипта?

Скрипт для редиректа в зависимости от переменной ID которая передается в GET.Если переменная есть ставим куки равные ей,и отображаем сайт, если переменной нету то редиректим на example.com.При первом верном (index.php?id=1) заходе меня почему-то редиректит на example.com,куки устанавливаются.При повторном заходе сайт отображается нормально.Почему при первом заходе редиректит, а при втором все верно.Куки ведь ставятся раньше чем идет блок IF
<?php
$user = $_GET['id'];

setcookie("login", $user, time()+1200,"/");
if ($_COOKIE['login'] != $user){
header('Location: http://www.example.com');}

?>
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
При первом запросе у вас еще кука не установлена. (ее нет в $_COOKIE)
И во время выставления setcookie - ее значение в $_COOKIE будет доступна при следующем запросе а не сразу (если она еще активна)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
irishmann
@irishmann
Научись пользоваться дебаггером
Почему при первом заходе редиректит, а при втором все верно

Потому что
После передачи клиенту cookie станут доступны через массив $_COOKIE при следующей загрузке страницы.

Так гласит документация
Ответ написан
Комментировать
@Kirill-Gorelov
С ума с IT
Выведи
var_dump($_COOKIE['login']) до установки куки
и var_dump($_COOKIE['login']) после установки куки, посмотри что там.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы