Почему могли сдохнуть сессии? (PHP)
4042
7
У людей вдруг "перестал работать сайт" на PHP без MySQL. Просят помочь.
100% чего-т поменял хостер и 100% - что не признается... к тому ж, на этом славном нском хостинге сидят полные ***.

Как смотрел:

Вводим неправильные логин с паролем - как положено, сообщение от движка. Вводим правильные - ничего, т.е., reload главной страницы с пустой формой входа, будто не пытались войти. Ставим ошибки в E_ALL - пусто. Логов на хосте нет, тока ftp.
Пробуем регистриться - всегда "неправильный код сообщения". Дело в том, что только он передается через $_SESSION. И потому же не входим при правильном логине с паролем.
Вот соответствующий код:

$antibot_input = $_POST['antibot_input'];
session_start();
session_register("antibot");
$antibot_code = $_SESSION['antibot'];
if(strtolower($antibot_input) != strtolower($antibot_code)) { $er[] = "Введен неправильный код"; }

Через $_POST передается что надо, а $_SESSION['antibot'] всегда пуст. Получен он был в другом файле так:

session_start();
session_register("antibot");
$_SESSION['antibot'] = $content;

$content правильный, отображается тоже правильно.
Так уже не пишут, но и версия PHP-то какая (см. ниже).
Все права и проч. правильные.
Настройки хостера:

PHP Version 4.3.11

Session Support enabled
Registered save handlers files user

Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 120 120
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 12 12
session.gc_divisor 1000 1000
session.gc_maxlifetime 360 360
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /tmp /tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid Off Off

Может есть опытный человек - куда курить? Вроде всё, что знаю о PHP, попробовал - не помогло. Для сравнения - тот же движок прекрасно работает у того же хостера на другом серваке с такими настройками:

PHP Version 5.2.9
Session Support enabled
Registered save handlers files user sqlite
Registered serializer handlers php php_binary

Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /tmp /tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0

Естессна, это другой домен и другой владелец, но сайт отличается лишь оформлением.
PerS
в 4м пхп нет $_POST и $_SESSION
347
Спасибо, что открыли для меня новое в PHP.
Интересно, как только эти скрипты работали столько лет на 4 PHP?:улыб:
$_POST и $_SESSION есть с версии 4.1.0

Как я понял, сессии перестали работать именно после апдейта хостера с 4.3.1 (или 4.2.1?) на 4.3.11
Что там конкретно апдейтилось - криворукий мальчег из ТП хостера не имеет понятия:улыб:
PerS
Интересно, как только эти скрипты работали столько лет на 4 PHP?:улыб:
Может, проще все-таки стукнуть кулаком по столу и потребовать от провайдера PHP5?
Anomander
И Вам спасибо за совет... но было бы проще, не заводил бы тему:улыб:
Просто и раньше сталкивался с таким - при апе у провайдера до некоторых версий PHP вдруг перестают работать сессии в пользовательских скриптах. Вот и думал, мож кто увидит, с какой настройкой в первом посте что не так.
PerS
Все права и проч. правильные.
Точно? проверьте еще раз права на запись/чтение в session.save_path
PerS
И Вам спасибо за совет... но было бы проще, не заводил бы тему
То есть провайдер не хочет апгрейдиться до PHP5 - или вы не хотите?
Или просто интересно разобраться, что там к чему? Если что-то можно тупо исправить "малой кровью", я обычно так делаю и особо не заморачиваюсь.
Ельцин
еще раз права на запись/чтение в session.save_path
Прав 777 на tmp обычно достаточно :))

В общем, что-то с железом у провайдера было, на другом серваке все заработало.

Всем спасибо.