@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');}

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

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

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

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

Войти через центр авторизации
Похожие вопросы
от 55 000 до 80 000 руб.
WACDAQ Москва
от 120 000 руб.
HTML Academy Санкт-Петербург
от 110 000 до 130 000 руб.
22 авг. 2019, в 07:30
10000 руб./за проект
22 авг. 2019, в 02:23
60000 руб./за проект
22 авг. 2019, в 02:15
5000 руб./за проект