2014-12-03 2 views
1

Действительно странная ошибка. Я бег 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 является основным браузером, который будет использоваться для этого сайта. Я не хочу менять имя всего каталога, чтобы извиниться вокруг некоторого quark Safari, если мне это не нужно. Я попробовал перезапустить Safari без везения.

+0

Возможно, у вас в Safari включена определенная форма рекламного блока. Испытайте без него. И, кстати, сохранить путь '/ ads /' до сих пор, как это делает adblocker. – mario

+0

Я тоже об этом подумал и не знаю ... стандартный сафари. Я даже попытался отключить «Блокировать файлы cookie от третьих лиц и рекламодателей» в настройках Safari, и это не имело никакого эффекта. –

ответ

0

сессии в PHP использование куков, так что вы должны проверить, если ваше сафари браузера позволяет печенье и отправить печенье с идентификатором сессии назад на сервер

+0

Как я уже сказал ... он работает почти на каждой странице. Итак, да ... куки работают. –

+0

ok, поэтому вы можете попробовать добавить эту строку после session_start() $ _SESSION ['test'] = 'foo'; а затем удалите строку и обновите страницу, чтобы увидеть, видит ли она тест var –

+0

Итак, да ... он сохраняет «foo» даже после удаления этой строки. Так что он обрабатывает все, начиная с «рекламы», как своего собственного сайта? –

0

Так что, когда я не испытывал это в любом другом браузере, включая Safari на других машинах я просто удалил все связанные файлы cookie из Safari на моей машине разработки, и все снова начало работать. Не знаю, что может вызвать ошибку, но, по крайней мере, это было довольно простое исправление в конце.

Редактировать: проблема вернулась через несколько дней, поэтому мне снова пришлось удалять файлы cookie. Я, конечно, надеюсь, что это не произойдет в других браузерах.

Смежные вопросы