Ошибка в PHP undefined

149
02 февраля 2018, 22:51

Помогите мне пожалуйста ! В 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);
Answer 1

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"] тоже желательно проверить перед использованием. Вообще все обращения к массивам нужно проверять, вы пытаетесь работать с тем, чего может не быть, и создаете себе кучу проблем на будущее

READ ALSO
Удалить пустые значение

Удалить пустые значение

Добрый деньТут кусок кода

143
Использование php в js

Использование php в js

Есть некий скрипт, который находится на одном домене и подключается на внешних сайтах, выполняя необходимые действияВ нем присутствует переменная...

131
В поисках хэш функции

В поисках хэш функции

Добрый день! До сих пор не пользовался хэш таблицами, но когда стало нужно, у меня возник вопрос:

156
Своя сортировка в JSON

Своя сортировка в JSON

Пытаюсь записать в JSON файл данные вот таким кодом

129