посмотреть, есть ли cookie в том же файле, в котором они были установлены - PullRequest
0 голосов
/ 23 февраля 2012

В файле у меня есть этот код для установки некоторых куки

setcookie("token", "value", time()+60*60*24*100, "/");
setcookie("secret", "value", time()+60*60*24*100, "/");
setcookie("key", "value", time()+60*60*24*100, "/");

Я хочу знать, как я могу проверить, были ли эти куки установлены в одном и том же файле, предпочтительно сразу после их установки.Я пробовал это

if(!isset($_COOKIE['token']) || !isset($_COOKIE['secret']) || !isset($_COOKIE['key']){

//do something

}

, но это не работает ..

Ответы [ 2 ]

0 голосов
/ 23 февраля 2012

Мы не должны беспокоиться о вашем вопросе, поскольку вы не брали никаких советов из предыдущего вопроса о точно такой же проблеме, но здесь говорится:

Вариант A

// As you do setCookie, also set the value in $_COOKIE
setCookie("foobar", "bat", time() + COOKIE_LIFETIME);
$_COOKIE["foobar"] = "bat";

var_dump($_COOKIE["foobar"]);

Вариант B

Не используйте $_COOKIE для хранения вашей информации. Разделите переменные $token, $secret и $key и загрузите их значениями из $_COOKIE. Если $_COOKIE пусто, инициализируйте их вручную и вызовите setCookie.

if (isset($_COOKIE["token"]))
    $token = $_COOKIE["token"];
else
{
    $token = "defaultValue";
    setCookie("token", $token, COOKIE_LIFETIME);
}
// Use $token instead of $_COOKIE["token"] from now on.

Вариант C

Если у пользователя не настроены файлы cookie, выполните setCookie и переместите пользователя на тот же сайт снова с помощью header(). Остерегайтесь бесконечных перемещений, если пользователь не разрешает вам устанавливать куки.

if (!isset($_COOKIE["token"])
{
    setCookie("token", "defaultValue", COOKIE_LIFETIME);
    header("Location: ".$_SERVER["REQUEST_URI"]); // insert reasonable URL here.
    exit;
}

Вариант B будет предпочтительным. Надеюсь не увидеть этот вопрос в третий раз.

Вы не можете проверить тот же запрос, если пользователь отправит ваши куки в будущих запросах. setCookie - это просто обращение к браузеру пользователей с просьбой приложить эту информацию к будущим запросам. Вы узнаете, работает ли он, отправит ли cookie следующий запрос. Если это невозможно, возможны следующие 3 сценария: а) браузер пользователя не позволяет вам устанавливать куки, б) пользователь не посещал ваш сайт раньше, в) срок действия ранее установленных куки истек.

0 голосов
/ 23 февраля 2012

$ _COOKIE устанавливается, когда у пользователя уже есть файл cookie и он запрашивает новую страницу.

Вы не можете установить setcookie, тогда используйте $ _COOKIE сразу после

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