Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Проблема с сессиями в php  (Прочитано 4516 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн putaciparilla

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Проблема с сессиями в php
« : 07 Июня 2010, 13:45:05 »
Добрый день. Первый день на убунте. Поставил apache php5 mysql... вобщем всё как положено.
Но радость моя быстро сошла на нет когда залил один из сайтов на виртуал хост и попробовал залогиниться.

Во время авторизации отправляется ajax-запрос с логином и паролем а в ответ приходит код ответа. Так вот в файле который проверяет логин и пароль - всё ок, он создаёт переменные сессии (видел лично, смотрел print_r($_SESSION)), а далее шлёт код ответа, что авторизация пройдена.
После этого у юзера обновляется страница и...я опять вижу страницу с логином и  print_r($_SESSION) показывает что сессия пуста.

Перерыл пол гугла ничего толком по такой проблеме не нашёл.

Оффлайн ?rem.it_ms

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: Проблема с сессиями в php
« Ответ #1 : 07 Июня 2010, 15:00:03 »
Это нужно смотреть аякс запрос, в каком виде отправляется и что возвращает. Если просто print_r($_SESSION) работает, то дело не в сессиях.
Intel(R) Core(TM)2 Duo CPU E4500  @ 2.20GHz
ATI Technologies Inc Mobility Radeon HD 3600 Series / ATI Technologies Inc RV635 Audio device [Radeon HD 3600 Series]
ASUSTeK Computer INC.P5QL PRO

Оффлайн DnSL48

  • Активист
  • *
  • Сообщений: 286
    • Просмотр профиля
Re: Проблема с сессиями в php
« Ответ #2 : 07 Июня 2010, 15:27:28 »
проблема не в ПО. проблема в скриптах
ArchLinux x86_64

Оффлайн putaciparilla

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: Проблема с сессиями в php
« Ответ #3 : 07 Июня 2010, 16:12:28 »
Это нужно смотреть аякс запрос, в каком виде отправляется и что возвращает. Если просто print_r($_SESSION) работает, то дело не в сессиях.
Дело в том что именно этот скрипт проверен и работает на 100%. суть в том что сессия пропадает после обновления страницы

Оффлайн DnSL48

  • Активист
  • *
  • Сообщений: 286
    • Просмотр профиля
Re: Проблема с сессиями в php
« Ответ #4 : 07 Июня 2010, 16:17:07 »
проверьте раздел [Session] в php.ini. возможно проблема кроется там.
ArchLinux x86_64

Оффлайн putaciparilla

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: Проблема с сессиями в php
« Ответ #5 : 07 Июня 2010, 16:24:13 »
я там вобщем-то ничего не менял. вот то что раскомментировано:

session.save_handler = files
session.save_path = "/var/lib/php5"
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
`gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = Off
session.bug_compat_warn = Off
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5

Оффлайн DnSL48

  • Активист
  • *
  • Сообщений: 286
    • Просмотр профиля
Re: Проблема с сессиями в php
« Ответ #6 : 07 Июня 2010, 16:33:02 »
проверьте, включены ли в браузере cookies и есть ли доступ на запись в каталог /var/lib/php5 пользователю, от которого запущен апач.
если это не сработает, можно попробовать поставить
session.auto_start = 1
ArchLinux x86_64

Оффлайн putaciparilla

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: Проблема с сессиями в php
« Ответ #7 : 07 Июня 2010, 16:40:56 »
проверил, куки включены доступ открыт для всех
session.auto_start = 1 и рестарт апача тоже не помогло

Оффлайн DnSL48

  • Активист
  • *
  • Сообщений: 286
    • Просмотр профиля
Re: Проблема с сессиями в php
« Ответ #8 : 07 Июня 2010, 16:58:04 »
попробуйте session.save_path = "/tmp"ну и error_reporting = E_ALL
ArchLinux x86_64

Оффлайн putaciparilla

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: Проблема с сессиями в php
« Ответ #9 : 07 Июня 2010, 17:13:35 »
та же ситуация, сессии сначала записываются а после обновления окна их нет

Оффлайн DnSL48

  • Активист
  • *
  • Сообщений: 286
    • Просмотр профиля
Re: Проблема с сессиями в php
« Ответ #10 : 07 Июня 2010, 17:25:34 »
создайте файл с таким содержанием, откройте его в браузере и пообновляйте страницу пару раз. Ну и, вывод скрипта сюда, пожалуйста.
<?php
error_reporting
(E_ALL);
session_start();
if(isset(
$_SESSION['tflag']))
    echo 
"sessions worked";
else
    
$_SESSION['tflag'] = true;
?>
ArchLinux x86_64

Оффлайн VolCh

  • Активист
  • *
  • Сообщений: 543
    • Просмотр профиля
Re: Проблема с сессиями в php
« Ответ #11 : 07 Июня 2010, 22:40:15 »
Может виртуал хост странный и кука не для этого хоста создаётся?

Оффлайн putaciparilla

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: Проблема с сессиями в php
« Ответ #12 : 08 Июня 2010, 10:43:25 »
При первом запуске пусто
Повторный запуск - sessions worked

Однако когда  я вставляю этот же код в скрипт авторизации то после обновления ничего не выводится.

Довольно странно но вчера вечером сессии стали работать, после ребута та же история.

/etc/apache2/sites-enabled/local.ktu.edu.ua

NameVirtualHost local.ktu.edu.ua:80
<VirtualHost 127.0.0.4:80>
ServerName local.ktu.edu.ua
ServerAlias local.ktu.edu.ua
DocumentRoot /var/www/local.ktu.edu.ua
<Directory /var/www/local.ktu.edu.ua>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
ServerSignature On
</VirtualHost>
« Последнее редактирование: 08 Июня 2010, 12:36:37 от putaciparilla »

Оффлайн arrecck

  • Старожил
  • *
  • Сообщений: 1725
    • Просмотр профиля
Re: Проблема с сессиями в php
« Ответ #13 : 08 Июня 2010, 10:46:27 »
в скрипте временные файлы создаются?

Оффлайн DnSL48

  • Активист
  • *
  • Сообщений: 286
    • Просмотр профиля
Re: Проблема с сессиями в php
« Ответ #14 : 08 Июня 2010, 10:51:59 »
собственно, то что после обновления надпись появляется, это означает что сессии работают, и функционируют нормально. Единственный оставшийся вариант - это как сказал VolCh - скрипт пытается сделать редирект на соседний домен, либо на другую поддиректорию. Если второй вариант - просто положите скрипт в корень домена. Дальше что-то сказать будет сложно, не зная исходный код скрипта, но одно уже ясно - проблема в нем.
ArchLinux x86_64

 

Страница сгенерирована за 0.029 секунд. Запросов: 25.