Перестает работать от элементарного переименования значений
Здравствуйте.
Собственно, есть код, который обращается в куки браузера и при их отсутствии выдает заготовленный текст в виде html чрез вызов другой функции. <? // Читаем куку языка $lang = $_COOKIE['lang']; if (!$lang) { // Если куки нет, ставим дефолтную $lang = 'ru'; } ?> Вывод: <?= $lang; ?> Но, если просто заменить слово "lang" на "scheme" (или любое другое), то код уже не работает. <? // Читаем куку языка $scheme = $_COOKIE['scheme']; if (!$scheme) { // Если куки нет, ставим дефолтную $scheme = 'ru'; } ?> Вывод: <?= $scheme; ?> В чем может быть причина? |
|
Цитата:
|
А F5 после "сразу замены" не пробовали?
|
Цитата:
Оба кода были по отдельности записаны в разные php файлы, которые я вызывал уже в шаблоне (один перед <!DOCTYPE html>, а второй в нужном месте шаблона). Как только эти оба кода я записал в 1 php файл и сделал вызов непосредственно в месте, где нужно выводить значение из куки - все заработало. Истинных причин, как влияла замена lang на scheme на работоспособность так и не понял. |
Notice в случае отсутствия нужной куки не смущает?
$lang = isset($_COOKIE['lang'])?$_COOKIE['lang']:'ru'; Это не причина неработоспособности скрипта, однако если вы не видите notice, значит у вас вывод ошибок отключен. Во время разработки включите вывод ошибок, либо смотрите лог ошибок сервера, все должно стать понятно. |
Здесь нет ошибок и будет работать. Единственная проблема, которая может возникнуть, это в равенство имен переменных $scheme и $_COOKIE['scheme'], в какой это версии я уже не помню.
Куки серверу доступны только после следующего входа на страницу, сразу установить и тут же запросить не получится. Это все, так что чудес быть не должно. |
Цитата:
$scheme = $_COOKIE['scheme'] ?: 'ru'; |
Цитата:
Ваш код также порождает notice, который как минимум в лог ошибок да запишется. Если его игнорировать, то нет смысла изменять код тс вообще. |
Цитата:
На локальном в режиме отладки нужно анализировать предупреждения, а после просто забить на них большой... :) |
Часовой пояс GMT +3, время: 14:52. |