2010-08-29 4 views
1

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

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

ответ

1

сессий в PHP использовать куки сессии, так что проверить это:

  • Ваш сафари браузер позволяет печенье ?, по умолчанию куки сессии это называется «phpsessionid»
  • вы уверены, что вы использовали "session_start()"? (И его лучше, если вы используете «session_name()» тоже)

я надеюсь, что это помогает

+0

Safari показывает мне все файлы cookie, я использовал «session_name()», это тоже показывает. Но никаких изменений, когда я копирую и вставляю URL-адрес, он дает мне тот же идентификатор сеанса и показывает страницу. Когда я его обновляю, он снова исчезает. – Tamara

+0

хорошо после этого .. @Col. Шрапнель права, вы должны проверить, является ли идентификатор одним и тем же .. и отлаживать ваш код .. тест с простой страницей, попытаться выяснить, что не так, если вы надуть свою страницу в Интернете, возможно, мы могли бы ее протестировать – pleasedontbelong

0

Просто проверить печенье политики Сафари.
Похоже, что ваш браузер просто не отправляет cookie id id сеанса.

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

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

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

<?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>"; 
?> 

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

+0

Да, это тот же самый точный идентификатор. В настройках моего сафари в «Принять куки» он говорит «всегда» – Tamara

+0

@ Тамара, вам нужно отлаживать свой код. если это тот же идентификатор, это НЕ проблема с технологией, но проблема с кодом. Вы должны отлаживать его –

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