2017-01-03 5 views
0

Это мой первый раз, когда вы пели в куки. Я не мог заставить его работать, поэтому я буквально скопировал и вставил пример из w3schools. На «попробуйте!» страница с их сайта работает, но когда я запускаю код из своего собственного файла на локальном хосте, он не устанавливает cookie. Он выводит «Cookie с именем« пользователь »не установлен!» каждый раз.setcookie() не устанавливает никаких печенья

 $cookie_name = "user"; 
     $cookie_value = "John Doe"; 
     setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); 

     if(!isset($_COOKIE[$cookie_name])) { 
      echo "Cookie named '" . $cookie_name . "' is not set!"; 
     } else { 
      echo "Cookie '" . $cookie_name . "' is set!"; 
      echo "Value is: " . $_COOKIE[$cookie_name]; 
     } 

Это не перенаправляет страницу или что-то еще. Он просто не устанавливает cookie. Я использую Chrome и MAMP. Cookies включены в Chrome, и, очевидно, файлы cookie включены в php.ini. Я также пытался запустить его в firefox и safari. Пожалуйста, помогите мне понять.

+0

'setcookie()' не меняет '$ _COOKIE []' сразу. – mario

+0

Вы уверены, что нет другого выхода в файле перед setcookie? – swordbeta

ответ

0

setcookie() определяет куки-файл, отправляемый вместе с остальными HTTP-заголовками. Как и другие заголовки, файлы cookie должны быть отправлены до выхода из вашего скрипта (это ограничение протокола). Это требует, чтобы вы отправляли вызовы этой функции до любого вывода, включая и теги, а также любые пробелы.

Как только куки были установлены, к ним можно получить доступ на следующей странице с массивом $ _COOKIE. Значения файлов cookie могут также существовать в $ _REQUEST.

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