сеансы не работают - PullRequest
       3

сеансы не работают

4 голосов
/ 11 июня 2011

Итак, я разработал базовый сайт, используя суперглобальную переменную $ _SESSION для входа в систему.

поэтому код после проверки данных входа в систему действителен. Я сохраняю данные пользователя в сеансе следующим образом:

note Я начинаю сеанс перед сохранением этих значений.

$_SESSION['myusername'] = $myusername;
$_SESSION['myuserid'] = $userid;
$_SESSION['logged_in'] = true;
$_SESSION['mystatus'] = $res['user_status'];

все работало нормально, за все время, пока я делал сайт, проверял и т. Д.

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

На странице, где я храню данные, как указано выше, сразу после того, как я могу использовать это:

echo "username".$_SESSION['myusername'];
echo "status".$_SESSION['mystatus'];

и его там. Но когда пользователь направляется на другую страницу, и я пытаюсь:

<?php 

session_start();
include ('functions.php');

echo "username".$_SESSION['myusername'];
echo "status".$_SESSION['mystatus']; ....

значения отсутствуют в сеансе. Я проверил, что идентификатор сеанса такой же, какой он есть.

Это всегда срабатывало, поэтому я действительно озадачен.

кто-нибудь, пожалуйста, помогите.

1027 * EDIT *

заголовок запроса и заголовок ответа от firebug (страница, где сессия кажется пустой)

Response Headersview source
Date    Sat, 11 Jun 2011 15:18:48 GMT
Server  Apache/2.2.3 (Red Hat)
X-Powered-By    PHP/5.1.6
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control   no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma  no-cache
Content-Length  3772
Connection  close
Content-Type    text/html; charset=UTF-8


Request Headersview source
Host    students.ee.port.ac.uk
User-Agent  Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language en-gb,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive  115
Connection  keep-alive
Cookie  PHPSESSID=1jqqa2oeivq76h2vhtk4uflkv1
Authorization   Basic ZWNlNzAxNDE6cGllczRtZTIy

Ответы [ 3 ]

1 голос
/ 11 июня 2011

Так что, похоже, у вас возникла проблема с сохранением сеанса по второму запросу.

Отслеживание сеанса выполняется с помощью cookie , вам следует проверить (с заголовками Live HTTP или firebug)реальный файл cookie, отправленный сервером.В этом файле cookie проверьте настройки пути и заданное имя сервера, а также проверьте правильность настройки времени. Если что-то не так, браузер не отправит cookie и вы получите новый сеанс при каждом запросе.

Веб-панель инструментов разработчика также содержит несколько полезных инструментов cookie, где вы можете отобразить страницу, содержащую все сведения о файлах cookie для данной страницы.Если файл cookie не получен, браузер предполагает, что этот файл cookie не связан с этой страницей.Большую часть времени параметр php принудительно устанавливает для параметра cookie.domain значение, отличное от используемого DNS.

0 голосов
/ 12 июня 2011

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

Это может объяснить, почему вывод $ _SESSION [...] работает на той же странице и почему в ответе установлен cookie.

0 голосов
/ 11 июня 2011

Проверьте, совпадает ли идентификатор сеанса во втором запросе с идентификатором первого запроса.

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