2013-03-25 3 views
0

У меня была система входа в систему, в которой хранилась переменная сеанса и проверялась на каждой странице, но затем я перешел на новый сервер.Почему я теряю сессию PHP на смену страницы?

Теперь любая переменная сеанса, которую я установил, доступна только на странице, на которой она была установлена. Я искал причины, по которым это может произойти, и уже перешло с проблем с разрешениями. Возможно ли, что это связано с неправильными адресами? Все остальное на сервере, похоже, работает нормально.

Я использую последнюю версию PHP и Apache, если это вообще помогает.

+0

В дополнении к решению session_start(), вы также можете сделать пользователь вашего браузера позволяет печенье – chrislondon

ответ

2

Потому что вы, вероятно, (просто предположение) не получили session_start(); на всех своих страницах, где это необходимо. Так, например, создать страницу с именем session.php

session.php

session_start(); 
if (!isset($_SESSION)) 
{ 
// Enforce logout as session is not set. 
} 

затем:

include "session.php";

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

+0

Это был ваш assumtion, но я думаю, что он должен это сделал. +1, как мы согласны, и ваше легкое объяснение – 2013-03-25 03:50:21

0

Я столкнулся с такими проблемами, как раньше. Вы можете попробовать установить идентификатор сеанса при первом запуске сеанса, используя session_id(), а затем использовать один и тот же идентификатор сеанса перед каждым session_start().

Например:

<?php 
    session_id(integer); 
    session_start(); 
?> 
Смежные вопросы