Столкнулся с проблемой: в битрикс не работают сессии. Функция bitrix_sessid() каждый раз выдает новую строку. В админке авторизация работает, но никакой ajax функционал - нет. Везде ошибка что сессия не верная, при этом проблема плавающая. То ошибка есть, то само по себе начинает работать.
Проблема оказалась просто в том, что на сервере закончилось свободное место на диске.
Чтобы долго не сидеть и не гадать в чем у вас проблема, выкладываю скрипт. Сохраните его в корень сайта, например с именем test.php и запустите из браузера:
<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
if (! session_start()) {
die('can not start session');
} else {
echo '<pre>session start: ok' . PHP_EOL;
}
echo 'session_id(): ';
var_dump(session_id());
echo '$_COOKIE["PHPSESSID"]: ';
var_dump($_COOKIE['PHPSESSID']);
echo 'count($_SESSION): ';
var_dump(count($_SESSION));
echo '$_SESSION["a"]: ';
var_dump($_SESSION["a"]);
echo '$_SESSION["a"] = 1';
$_SESSION["a"] = 1;
Сессия должна стартовать, в session_id() должна быть какая-то строка, та же что и в $_COOKIE['PHPSESSID']. При перезагрузке страницы id сессии не должно меняться.
После второй перезагрузки страницы $_SESSION["a"] должно быть установлено в 1.
Вывод ошибок включен, если что - PHP напишет что не так. Я получил ошибку No space left on device (28), что говорит о том, что не хватает места на сервере.