Действительно странная ошибка. Я использую MAMP Pro на своем компьютере для разработки, и у меня есть очень простая тестовая PHP-программа, которая выглядит следующим образом:
<?php
session_start();
var_dump($_SESSION);
И программа работает там, где я когда-либо помещаю ее на свой сервер, сбрасывая переменные сеанса. UNLESS, имя каталога начинается с «ads» (затем выводится пустой массив).
http://domain/test.php - works
http://domain/ads/test.php - doesn't work
http://domain/adtest/test.php - works
http://domain/adserve/test.php - doesn't work
http://domain/sads/test.php - works
У меня нет файла .htaccess, который делает что-то с «рекламой».
Обновление: я провел еще несколько тестов и обнаружил, что это происходит только с Safari (не в Chrome или Firefox). Но Safari — это основной браузер, который будет использоваться для этого сайта. Я не хочу менять имя всего каталога, просто чтобы немного поработать над причудой Safari, если мне не нужно. Я попытался перезапустить Safari без удачи.
сеансы в php используют cookie, поэтому вам нужно проверить, разрешены ли в вашем браузере Safari файлы cookie, и отправить cookie идентификатора сеанса обратно на сервер.
Поэтому, когда я не сталкивался с этим ни в одном другом браузере, включая Safari на других компьютерах, я просто удалил все связанные файлы cookie из Safari на моей машине для разработки, и все снова заработало. Не знаю, что может вызвать ошибку, но, по крайней мере, это было достаточно просто исправить в конце.
Изменить: проблема вернулась через несколько дней, поэтому мне пришлось снова удалить куки. Я, конечно, надеюсь, что это не происходит в других браузерах.