2016-02-19 3 views
-1

Я пытаюсь создать куки в PHP и не использовать сеансы. Вот как я их создаю:создание и печать файлов cookie в PHP

echo 'Successfully registered :)'; 
$name = $_POST['user_name']; 
setcookie("name", $name); 

Это в конце страницы, как только все сделано. Я вижу эхо-строку на странице, и я также знаю, что $ _POST ['user_name']; содержит значение. Таким образом, файл cookie должен быть установлен. В верхней части той же страницы прямо ниже метки <body> у меня есть echo $_COOKIE['name'];. Когда я перезагружаю страницу, я ничего не вижу, и это пустая страница. Я могу вставить всю страницу, но это ~ 150 строк.

+0

Включите правильную отчетность об ошибках PHP и прочитайте руководство для ['setcookie'] (http://php.net/manual/en/function.setcookie.php), _carefully_. – CBroe

ответ

0

Как вы можете прочитать в руководстве по PHP, необходимо вызывать setcookie() перед выполнением любого вывода.

КПП. это может создать хороший XSS, вы действительно должны действительно фильтровать переменную POST, прежде чем отражать ее как содержимое cookie.

0

Куки отправляются вместе с остальными HTTP-заголовками, что означает, что его необходимо установить перед любой разметкой страницы или чем-либо еще. PHP Cookie Docs

Кроме того, вы захотите дезинформировать любой пользовательский ввод, чтобы предотвратить любые вредоносные действия. Начиная с PHP 5.2 был введен filter_var, который может быть использован в этом случае.

Смежные вопросы