PHP перенаправление с использованием куки и заголовков - PullRequest
2 голосов
/ 26 января 2011

Я изучал PHP и пытался перенаправить страницы, основываясь на том, установлен cookie или нет, ниже приведен код, который я использовал для установки cookie на первой странице

<?php
setcookie("test","logged in",time()+60,'/');
?>

Теперь на странице тестирования Я удаляю cookie, но ниже он не удаляется, это код

<?php
setcookie("test", 0, time()-(60*60*24*7));

if(isset($_COOKIE['test']))
{
    echo "u had logged in";
}
else
header("Location: index.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>

</body>
</html>

В чем именно проблема?

Ответы [ 2 ]

3 голосов
/ 26 января 2011

Файлы cookie устанавливаются только тогда, когда страница передается в браузер, и читаются только тогда, когда они отправляются на сервер как часть HTTP-запроса.

Таким образом:

  1. Если вы удалите файл cookie, он не исчезнет до следующей загрузки страницы.

  2. Если вы установите файл cookie, значение не может быть прочитано до тех пор, показагрузка следующей страницы.

Обычный способ справиться с этим - установить / удалить файл cookie, а затем выполнить перенаправление.

0 голосов
/ 26 января 2011

Изменения, внесенные в файлы cookie, видны только серверу при обновлении.Если вы перезагрузите страницу тестирования, вы не увидите текст «залогинен».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...