php сессия не работает в сафари - PullRequest
1 голос
/ 30 августа 2010

У меня есть простая страница входа.Все отлично работает в Mozilla и IE.Когда я пытаюсь войти в Safari, сессия пуста, просто белая страница.Если я проверяю идентификатор сессии, он дает мне идентификатор, но больше ничего не показывает.echo session_id(); Если я скопирую URL страницы, а затем перейду на другую страницу и вставлю URL, браузер покажет страницу. Если я обновляю ее, она снова исчезает (но всегда показывает идентификатор сессии)IE.

update: Спасибо всем за помощь, да, это было что-то на странице, я пробовал простую страницу, и она работала.Выучил мой урок.Еще раз спасибо!

Ответы [ 2 ]

1 голос
/ 30 августа 2010

сессий в php используют cookie-файл сеанса, поэтому проверьте следующее:

  • разрешает ли ваш браузер Safari файлы cookie?уверены, что вы использовали "session_start ()"?(и лучше, если вы тоже используете "session_name ()")

Надеюсь, это поможет

0 голосов
/ 30 августа 2010

Просто проверьте политику Safari в отношении файлов cookie.
Похоже, ваш браузер просто не отправляет cookie с идентификатором сессии.

Если я проверяю идентификатор сессии, он дает мне идентификатор

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

если он такой же, то с вашим кодом что-то есть.
Вы должны начать отлаживать его.
Начните с запуска тестового файла с этим кодом:

<?php 
session_start(); 
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
echo "Counter ".$_SESSION['counter']++." раз.<br>
<a href=".$_SERVER['PHP_SELF'].'?'.session_name().'='.session_id().">reload</a>"; 
?>

если это работает, сделайте это

<?php 
session_start(); 
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
echo "Counter ".$_SESSION['counter']++." раз.<br>
<a href=".$_SERVER['PHP_SELF'].">reload</a>"; 
?>

и найдите способ просмотра протокола обмена HTTP. Это самое главное - посмотреть, какие куки идут с сервера и обратно. Я не знаю инструмента для сафари, но должен быть один

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...