Перестает работать от элементарного переименования значений
Здравствуйте.
Собственно, есть код, который обращается в куки браузера и при их отсутствии выдает заготовленный текст в виде 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, время: 09:17. |