- 28, Apr 2023
- #1
Последние проблемы которые бывают в сессиях Если ваш код не работает, то проблема скорее всего не связана с сессиями, а кроется в самом алгоритме.
Проверьте правильность переменных, возможно вы где-то утеряли переменную, отладьте свой скрипт.
Еще одной проблемой может стать использование перенаправления через навигацию или header при помощи Java-скриптов.
Проблема в том, что PHP сам дописывает автоматический идентификатор сессии только для ссылок вида , но не работает для ява-скриптов, мета-тегов и header-ов. В этом случае необходимо добавить идентификатор руками: header("Location: /script.
php?". session_name(). '='. session_id()); Иногда также встречается проблема с настройкой session.
save_handler.
Она имеет свое значение, которое отличается от files.
Если это не так – нужно исправить.
Дополнительная информация: • Кроме куков, сессии посылают и заголовки, которые запрещают кэшировать страницы (cache limiter). В html это будет правильно и нужно.
Но если вы попытаетесь при помощи скрипта, проверяющего авторизацию, отдать файл, то браузер откажется скачивать его.
Чтобы решить данную проблему вы можете воспользоваться строкой: session_cache_limiter("private"); до старта сессии, скорее всего это решит вашу проблему.
• Как не странно, но использование числовых индексов $_SESSION[1], $_SESSION['10'] в массиве $_SESSION не рекомендуется, т. к. сессии не будут работать.
• В версиях 4.2 - 5.0 была запрещена установка session.
use_trans_sid при помощи ini_set(), но начиная с 5-й версии это стало возможным.
• До PHP 4.3.3, скрипт отправлял cookies только когда старт сессии происходил без идентификатора в запросе.
Сейчас cookies отправляется каждый раз, когда вызывается session_start(). PHP код который устойчивый к ошибкам< Предыдущая Следующая >Сессии и cookies решения проблемы
Проверьте правильность переменных, возможно вы где-то утеряли переменную, отладьте свой скрипт.
Еще одной проблемой может стать использование перенаправления через навигацию или header при помощи Java-скриптов.
Проблема в том, что PHP сам дописывает автоматический идентификатор сессии только для ссылок вида , но не работает для ява-скриптов, мета-тегов и header-ов. В этом случае необходимо добавить идентификатор руками: header("Location: /script.
php?". session_name(). '='. session_id()); Иногда также встречается проблема с настройкой session.
save_handler.
Она имеет свое значение, которое отличается от files.
Если это не так – нужно исправить.
Дополнительная информация: • Кроме куков, сессии посылают и заголовки, которые запрещают кэшировать страницы (cache limiter). В html это будет правильно и нужно.
Но если вы попытаетесь при помощи скрипта, проверяющего авторизацию, отдать файл, то браузер откажется скачивать его.
Чтобы решить данную проблему вы можете воспользоваться строкой: session_cache_limiter("private"); до старта сессии, скорее всего это решит вашу проблему.
• Как не странно, но использование числовых индексов $_SESSION[1], $_SESSION['10'] в массиве $_SESSION не рекомендуется, т. к. сессии не будут работать.
• В версиях 4.2 - 5.0 была запрещена установка session.
use_trans_sid при помощи ini_set(), но начиная с 5-й версии это стало возможным.
• До PHP 4.3.3, скрипт отправлял cookies только когда старт сессии происходил без идентификатора в запросе.
Сейчас cookies отправляется каждый раз, когда вызывается session_start(). PHP код который устойчивый к ошибкам< Предыдущая Следующая >Сессии и cookies решения проблемы