Вход

Просмотр полной версии : Куки не записываются


Sonya
13.11.2017, 14:23
Здравствуйте! Подскажите, пожалуйста, почему так куки не записываются?

if(isset($_COOKIE["name"])){
echo "Куки есть!";
}else{
include 'index.php';
setcookie("name", "value", time()+3600, "/", "domain", 1);
echo "<META HTTP-EQUIV='REFRESH' CONTENT='20; URL=page.html'>";
}

Nexus
13.11.2017, 14:52
Sonya, у вас SSL подключен?

Sonya
13.11.2017, 14:55
Да, поэтому и ставлю флаг 1.

Nexus
13.11.2017, 14:57
Nexus, index.php в браузер что-нибудь выводит?

Sonya
13.11.2017, 14:58
Сейчас, вроде записалось, я думаю include не может, как-то влиять, потому что до этого, пробовала несколько раз, но не срабатывала либо функция if(isset($_COOKIE["name"])), либо не записывались куки, посему-то подумала на последнее.

Sonya
13.11.2017, 15:00
Nexus, index.php в браузер что-нибудь выводит?
Да.

Nexus
13.11.2017, 15:02
Sonya, http://php.net/manual/ru/function.setcookie.php
setcookie() задает cookie, которое будет передано клиенту вместе с другими HTTP заголовками. Как и любой другой заголовок, cookie должны передаваться до того как будут выведены какие-либо другие данные скрипта (это ограничение протокола). Это значит, что в скрипте вызовы этой функции должны располагаться прежде остального вывода, включая вывод тэгов <html> и <head>, а также пустые строки и пробельные символы.

Sonya
13.11.2017, 15:24
Как запись сессии. Спасибо, хотя почему-то иногда записывает. А если я в файле index.php, которое инклюжу, запишу в самом начале, так будет записывать?

laimas
13.11.2017, 15:30
А если я в файле index.php, которое инклюжу, запишу в самом начале, так будет записывать?

Странное подключение однако. Индексный файл, это собственно вход, в таком случае что за файл в котором проверка куки и как он запрашивается? Почему в самом индексном файле не проверять/устанавливать куки?

Sonya
13.11.2017, 15:30
Или include, как вставка на странице будет принимать все теги этой страницы до include, и, соответственно, не будет писать?

Sonya
13.11.2017, 15:32
laimas, index.php, это для примера, пусть будет page.php.

laimas
13.11.2017, 16:12
Куки не установятся только по двум причинам: отключены на клиенте и до их установки был вывод в браузер. Если у вас проблемы с установкой, значит ищите проблемы в подключаемом файле, в нем есть либо явный, либо неконтролируемый вывод. В подключаем файле содержащем только РНР код не используйте закрывающий РНР тег, иначе возможные пустые строки после него и будут выведены в браузер. Проверьте все.

Sonya
13.11.2017, 17:32
Спасибо.