Проблема с куками.

Sofia

Всем привет.
Ошибка с куками возникает:
Warning: Cannot modify header information – headers already sent by (output started at D:***shop-era.php:1) in D:***shop-era.php on line 33

Пробелов нет. Документ начинается со строки:

HTML:
  1. <!doctype html>
  2. <html lang=“ru”>

В 33 строке:

PHP:
  1. setcookie(‘my_name’,$name,time() + (86400 * 5));

Вот кусочек кода, с которым пытаюсь разобраться:

PHP:
  1. <h1>Hello, world!</h1>
  2.    
  3.     <?
  4.     if (isset($_COOKIE[‘my_name’])) echo “Оператор: “ . $_COOKIE[“my_name”] . “<br>”;
  5.     ?>
  6.     <select id=”my_name” class=”form-select form-select-lg mb-3″ aria-label=”.form-select-lg example”>
  7.       <option selected>Выберите оператора</option>
  8.       <option value=”1″>Семенов Андрей</option>
  9.       <option value=”2″>Антелина Жанна</option>
  10.       <option value=”3″>Тихомирова Анна</option>
  11.     </select>
  12.    
  13.     <?
  14.     $name = ‘1’;
  15.     setcookie(‘my_name’,$name,time() + (86400 * 5));
  16.     ?>

Подскажите решение плз.

 

MouseZver

http://phpfaq.ru/newbie/headers
Параграф “Как исправить” – 3 абзац.

 

Sofia

К сожалению нет, работаю в Notepad++ и документ сохранен в UTF8 без BOM
Ошибка где-то таится в другом месте =(

 

Drunkenmunky

Вот эту часть вашего кода:

PHP:
  1. setcookie(‘my_name’,$name,time() + (86400 * 5));

переместите в самое начало сценария

 

Sofia

Переместила в самый верх, но мне всегда казалось, что переменные должны быть сперва определены.
Получается тогда, что сперва пытаюсь вывести переменную, а в 30 строке у меня переменная определяяется. Таким образом ошибки нет, но и переменная не выводится.
— Добавлено —
ок, смысл понятен. Спасибо =)
Пришлось так вот сделать:

PHP:
  1. setcookie(‘my_name’,$_POST[‘my_name’]);
 

MouseZver

Это не мешает прочтению статьи по выданной ссылки.

 

Sofia

Статью я прочитала полностью, не только третий параграф, о чем резюмировала выше.
Обычно, когда люди не знают ответа или не могут сформулировать предложение, то ссылаются на иные источники. Если хотели помочь, помогайте а не вводите в заблуждение.

П.С. прошу прощение за оффтоп. Вопрос решен через костыли, хоть и не верно, но работает.

 

MouseZver

@Sofia, с головой дружишь или коронавирус жмет ? o_O
Какое к черту заблуждение ? Это faq толковая статья.

Не.. даже на вопросы не отвечай, горите в аду блондинки…

 

mkramer

И нифига не поняли. До set_cookie не должно быть не только BOM, но и вообще, никаких echo, никакого HTML-кода. Или тут @Fell-x27 советовал использовать буферизацию вывода ob_start() как дефолт (ещё такая настройка есть, сейчас не помню на вскидку)

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *