Как бы я проверил, если cookie установлен с помощью php и если он не установлен, ничего не делать - PullRequest
15 голосов
/ 02 мая 2011

я пробовал

 $cookie = $_COOKIE['cookie'];

если файл cookie не установлен, он выдаст мне ошибку

PHP ERROR
Undefined index: cookie

Как бы я не дал ему пустую переменную>

Ответы [ 5 ]

41 голосов
/ 02 мая 2011

Используйте isset, чтобы проверить, существует ли файл cookie.

if(isset($_COOKIE['cookie'])){
    $cookie = $_COOKIE['cookie'];
}
else{
    // Cookie is not set
}
15 голосов
/ 02 мая 2011

Вы можете использовать array_key_exists для этой цели следующим образом:

$cookie = array_key_exists('cookie', $_COOKIE) ? $_COOKIE['cookie'] : null;
6 голосов
/ 02 мая 2011

В зависимости от ваших потребностей.

// If not set, $cookie = NULL;
if (isset($_COOKIE['cookie'])) { $cookie = $_COOKIE['cookie']; }

или

// If not set, $cookie = '';
$cookie = (isset($_COOKIE['cookie'])) ? $_COOKIE['cookie'] : '';

или

// If not set, $cookie = false;
$cookie = (isset($_COOKIE['cookie'])) ? $_COOKIE['cookie'] : false;

Ссылки:

4 голосов
/ 02 мая 2011

Попробуйте это:

 $cookie = isset($_COOKIE['cookie'])?$_COOKIE['cookie']:'';
 //checks if there is a cookie, if not then an empty string
0 голосов
/ 22 января 2019

Пример, не упомянутый в ответах: Скажем, вы установили cookie на 60 секунд, если выполняются правильные условия:

if ($some_condition == $met_condition) {
    setcookie('cookie', 'some_value', time()+ 60, "/","", false);
}

Технически нам нужно проверить, что он установлен, И он не просрочен, или он выдаст предупреждения и т. Д..:

$cookie = ''; //or null if you prefer
if (array_key_exists('cookie', $_COOKIE) && isset($_COOKIE['cookie'])) {
    $cookie = $_COOKIE['cookie'];
}

Вы хотели бы проверить таким образом, чтобы гарантировать, что просроченные файлы cookie не используются и установлены, приведенный выше пример, очевидно, не всегда может устанавливать файлы cookie и т. Д. Мы всегда должны учитыватьтот.Массив array_key_exists в основном предназначен для предотвращения появления предупреждений в журналах, но без него он будет работать.

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