Помогите мне пожалуйста ! В PHP после авторизации нам должен вывести логин , я его сохранил в куки и далее такая ошибка .
PHP:
$login = $_POST["cooklog"];
setcookie("login", $login, time() + (3600*24)*30, "/");
$xlogin = $_COOKIE["login"];
echo json_encode($xlogin);
JS:
xmlhttp.open("POST", "functions.php", true);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send("cooklog=" + encodeURIComponent(login));
alert(response);
setcookie формирует заголовок HTTP в ответе браузеру. Массив $_COOKIE
вбирает значения из заголовков запроса браузера. Посмотрите внимательно, как устроен протокол HTTP или любую статью про куки и заголовки HTTP. Или просто посмотрите в Wireshark на HTTP трафик вашего кода, там тоже все очень понятно и наглядно, если знать, куда смотреть
Проще говоря, кука $_COOKIE["login"]
в момент обращения к ней еще не определена. Если быть точным, в массиве $_COOKIE
пока еще нет ключа "login"
, и обращение к несуществующему элементу вызовет ошибку
Просто проверяйте любое значение, перед тем как его использовать:
$login = $_POST["cooklog"];
setcookie("login", $login, time() + (3600*24)*30, "/");
$xlogin = isset($_COOKIE["login"]) ? $_COOKIE["login"] : NULL;
if ($xlogin) {
echo json_encode($xlogin);
} else {
// Напишите, что делать, если логика в куках нет
}
Кстати $_POST["cooklog"]
тоже желательно проверить перед использованием. Вообще все обращения к массивам нужно проверять, вы пытаетесь работать с тем, чего может не быть, и создаете себе кучу проблем на будущее
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть некий скрипт, который находится на одном домене и подключается на внешних сайтах, выполняя необходимые действияВ нем присутствует переменная...
Добрый день! До сих пор не пользовался хэш таблицами, но когда стало нужно, у меня возник вопрос: