Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Проблема с куки в разных операх
Это работает в опере 12.16, но в хромированной опере таким путем куки не удаляется, и при следующих загрузках страницы опять выводится alert сообщение.
Не работает. Не выводится alert сообщение.
p.s. session_start() прописан
Мелкий
Отправлено: 21 Декабря, 2013 - 18:27:19
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Собственно, включите вывод ошибок (да и в целом статью почитайте, полезно): http://phpfaq[dot]ru/debug
В первый раз не стал читать ваш код, а сейчас обратил внимание. Если только у вас не буферизуется вывод, то после любого echo и любого другого вывода в браузер, невозможно модифицировать заголовки. Вполне возможно, что у вас и сессия потому же не стартует вовсе.
----- PostgreSQL DBA
allasan
Отправлено: 21 Декабря, 2013 - 18:31:14
Новичок
Покинул форум
Сообщений всего: 22
Дата рег-ции: Июль 2013
Помог: 0 раз(а)
Мелкий пишет:
В первый раз не стал читать ваш код, а сейчас обратил внимание. Если только у вас не буферизуется вывод, то после любого echo и любого другого вывода в браузер, невозможно модифицировать заголовки. Вполне возможно, что у вас и сессия потому же не стартует вовсе.
И как это исправить? Как заставить сессию стартовать? (Добавление)
Кстати забыл сказать, создание сессии идет в одном файле, после чего при помощи header("Location: перемещаемся в другой. Может ли быть в этом причина, и как с такими условиями заставить правильно работать сессию или куки? (Добавление)
Да, заметил что сессия создается только один раз. И после того, как она очищается, она больше не заполняется. Как это исправить? (Добавление)
Пожалуйста, любые предложения могут помочь!
kotyara1979
Отправлено: 22 Декабря, 2013 - 06:00:45
Частый гость
Покинул форум
Сообщений всего: 247
Дата рег-ции: Окт. 2012
Помог: 7 раз(а)
header("Location:") собственно и является вашей проблемой. Это же переадресация, как если бы вы на странице кликнули по ссылке.
session_start() должен вызываться при каждом обращении к серверу.
"session_start() создаёт сессию (или продолжает текущую на основе session id, переданного через GET-переменную или куку)" http://www.php.su/session_start
----- Сделать можно все. Главное одеть каску.
allasan
Отправлено: 22 Декабря, 2013 - 08:08:15
Новичок
Покинул форум
Сообщений всего: 22
Дата рег-ции: Июль 2013
Помог: 0 раз(а)
kotyara1979 пишет:
header("Location:") собственно и является вашей проблемой. Это же переадресация, как если бы вы на странице кликнули по ссылке.
session_start() должен вызываться при каждом обращении к серверу.
"session_start() создаёт сессию (или продолжает текущую на основе session id, переданного через GET-переменную или куку)" http://www.php.su/session_start
Это я все читал. Но не понимаю, как быть то?
Get использовать не получается из-за ЧПУ, и в исключения добавить тоже не выходит.
Остаются только сессии или куки, как сделать чтобы они работали в моем примере? (Добавление)
Может быть зря все таки переходить на сессии, может с куками разобраться? почему они так по разному себя ведут в разных операх, и как правильно работать с куками? может я не правильно создаю, или не правильно стираю?
kotyara1979
Отправлено: 22 Декабря, 2013 - 09:39:19
Частый гость
Покинул форум
Сообщений всего: 247
Дата рег-ции: Окт. 2012
Помог: 7 раз(а)
Если вы используете сессии, то не нужно делать перенаправление на другую страницу. Используйте include для скрипта с идентификацией пользователя.
Если куки, то не понимаю зачем вам нужно указывать время жизни для стираемой переменной. Это имеет значение для задаваемого значения, а для стирания? По крайней мере мне хватало всегда просто указания пустого значения.
----- Сделать можно все. Главное одеть каску.
allasan
Отправлено: 22 Декабря, 2013 - 09:47:08
Новичок
Покинул форум
Сообщений всего: 22
Дата рег-ции: Июль 2013
Помог: 0 раз(а)
kotyara1979 пишет:
Если вы используете сессии, то не нужно делать перенаправление на другую страницу. Используйте include для скрипта с идентификацией пользователя.
Все необходимо оставить так как есть, перенаправление должно остаться.
kotyara1979 пишет:
Если куки, то не понимаю зачем вам нужно указывать время жизни для стираемой переменной. Это имеет значение для задаваемого значения, а для стирания? По крайней мере мне хватало всегда просто указания пустого значения.
в любом случае и если указывать время в прошлом, и если просто стирать, то в каком то браузере работает, в каком то не работает
kotyara1979
Отправлено: 22 Декабря, 2013 - 09:55:41
Частый гость
Покинул форум
Сообщений всего: 247
Дата рег-ции: Окт. 2012
Помог: 7 раз(а)
allasan пишет:
в любом случае и если указывать время в прошлом, и если просто стирать, то в каком то браузере работает, в каком то не работает
SetCookie("oresult","Спасибо! Отзыв отправлен на модерацию.",time()+3);
в хроме работает, куки удаляется сама, а в опере вообще не создается
kotyara1979
Отправлено: 22 Декабря, 2013 - 10:09:38
Частый гость
Покинул форум
Сообщений всего: 247
Дата рег-ции: Окт. 2012
Помог: 7 раз(а)
Еще вопрос.
А зачем добавляешь время жизни для куки? Тебе же просто передать со страницы на страницу сообщение о выполненном действии. По умолчанию "до закрытия окна" тебе за глаза должно хватать.
Мне по крайней мере хватает. Сам использую подобный механизм для неавторизованных пользователей. Время жизни специально нигде на назначаю, стирается простым назначением пустого значения. Накладок в браузерах пока не заметил.
----- Сделать можно все. Главное одеть каску.
allasan
Отправлено: 22 Декабря, 2013 - 10:17:56
Новичок
Покинул форум
Сообщений всего: 22
Дата рег-ции: Июль 2013
Помог: 0 раз(а)
kotyara1979 пишет:
Еще вопрос.
А зачем добавляешь время жизни для куки? Тебе же просто передать со страницы на страницу сообщение о выполненном действии. По умолчанию "до закрытия окна" тебе за глаза должно хватать.
Мне по крайней мере хватает. Сам использую подобный механизм для неавторизованных пользователей. Время жизни специально нигде на назначаю, стирается простым назначением пустого значения. Накладок в браузерах пока не заметил.
Ну время жизни мне как раз нужно чтобы было маленькое, короче нужно чтобы сообщение показалось только один раз, и если страницу обновляешь чтобы больше не показываллось.
А вот у меня что-то не стирается без времени в хроме. А в опере не создается
kotyara1979
Отправлено: 22 Декабря, 2013 - 10:30:58
Частый гость
Покинул форум
Сообщений всего: 247
Дата рег-ции: Окт. 2012
if(isset($_COOKIE['oresult']) and $_COOKIE['oresult']<>''){
$m1=$_COOKIE['oresult'];SetCookie('oresult','');
}
echo'
<script>
alert("'.$m1.'");
</script>
';
куки создается, но не очищается. проверял в опере 15 (Добавление)
В опере 12 тоже не очищается (Добавление)
при перезагрузке страницы 2.php все равно остается кука
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.