The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
FreeBSD+PHP5  не работают php cессии, !*! alligatorus, 06-Дек-07, 11:23  [смотреть все]
Всем доброго времени суток!
Раньше на серваке стояла FedoraCore7 с собранными из сыруов ручками Apache2.2.6/PHP5.2.5/MySQL5.0.45, сессии хранились в /tmp и все работало  нормально. Но вдруго в одно и тоже время на всех сайтах перестала работать авторизация, вводишь логин\пароль тебя пропускают, а при следующем открытии страницы тебя опять считают гостем.
Оказалось, что PHP разучился рабоать с сессиями,вот отрывки кода и их вывод:

#index.php
#Генерим ид сессии, получаем вот это c0cc060cf2f9523977d5d081ad4d5063
$ses_name = md5($userid.ip2long($IP).rand(1,20));

#Обзываем сессию (c0cc060cf2f9523977d5d081ad4d5063)
session_id($ses_name);

#Инициализируем сессию
session_start();

#Записываем в нее юзера
$_SESSION['userid'] = $userid;

#А здесь я получаю обрезанный до 18 символов ид c0cc060cf2f952397
session_id();

<frames>

#main.php, скрипт во фрейме, получает ид сессии указанный выше
session_start();
session_id();
#Вот тут самое интересное! Скрипт ВСЕГДА отдает один и тотже ид n6shhlietuvkndpb18su46gdod, даже если открывать разными браузерами. Открываешь с другого компа он первый раз выдает правильный ид но обрезанный до 28 символов. А потом опять одно и тоже.
</frames>
И так во всех скриптах, причем дома под виндой все пашет.

Погрешил на свои кривые руки, неправильно собравшие сервак, все снес и поставил все из родных рпмок. Фиг! тоже самое! Тогда я решил снести федору, тем более что давно собирался фряху поставить. Снес, поставил FreeBSD6.2. Все настроил, поднял и опять тоже самое.

uname -a FreeBSD ya.kg 6.2-RELEASE FreeBSD 6.2-RELEASE #2: Wed Dec  5 03:28:32 UTC 2007     root@ya.kg:/usr/obj/usr/src/sys/main_kernel  i386
В ядро добавлен IPFW
Apache2.2.6/PHP5.2.5(CGI)/MySQL5.0.45-freebsd
В общем помогите советом! Чуствую себя тупым юзверем который тыкается во все углы, а простого решения перед носом не видит :)


  • FreeBSD+PHP5  не работают php cессии, !*! Dx, 13:13 , 11-Дек-07 (1)
    Если при сборке не отключать сесии (--disable-session), они должны быть включены по умолчанию, на всякий случай проверь, доступны ли они, покажи вывод phpinfo(); раздел 'session'
    Я вот читаю-читаю твой код, понять не могу, ты сам генеришь ид сессии? Зачем? :) когда ты пишешь session_start(); у тебя он сам генерится ($PHPSESSID = <ид сессии>;), то есть браузеру отдаются куки вида Set-Cookie: PHPSESSID=<ид сессии>. Если не хочешь PHPSESSID, переназови, session_name('MYSESSION');
    Если сомневаешься в настройках, напиши скрипт наподобие этого:

    // -------- test.php ---------
    <?php
        if( isset($_POST['submit']) ) {
            setcookie("PHPSESSID", ""); // убираем ид сессии
            echo "сессия завершена";
            echo "<FORM action='test.php' method='POST'>
                  <INPUT type='submit' name='submit1'>
                  </FORM>";
            
        } else {
            session_start();
            echo "сессия запущена ";
            echo "PHPSESSID = ".session_id();
            echo "<FORM action='test.php' method='POST'>
                  <INPUT type='submit' name='submit'>
                  </FORM>";
        }
    ?>
    // ------------------------------

    он начинает и завершает сессию, при старте сессии должен выдаваться новый ид.

    • FreeBSD+PHP5  не работают php cессии, !*! alligatorus, 01:16 , 14-Дек-07 (2)
      Dx
      Ну вот, хоть ктото откликнулся :)
      Спасибо за совет, но проблема была в другом, все вылечилось переносом хранилища сессий из /tmp в /var/php/sessions. Такое ощущения что PHP чемто не нравился /tmp.
      P.S. А ид сессии я генерю потому что просто хочется поизвращатся :)
      • Trader.Uz - сайт для тех кто хочет знать все о рынке forex , !*! Trader.Uz, 10:52 , 07-Дек-08 (3)
        >Dx
        >Ну вот, хоть ктото откликнулся :)
        >Спасибо за совет, но проблема была в другом, все вылечилось переносом хранилища
        >сессий из /tmp в /var/php/sessions. Такое ощущения что PHP чемто не
        >нравился /tmp.
        >P.S. А ид сессии я генерю потому что просто хочется поизвращатся :)
        >

        Аналитические обзоры котировки курсы акции  валюта фьючерсы
        форекс обучение forex  ленты валютных
        и фондовых новостей экономический календарь событий
        статьи трейдеров библиотека трейдеров auto trading.
        Добро пожаловать в клуб трейдеров на сайте http://trader.uz





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру