#php #session-cookies
#php #сессия-файлы cookie
Вопрос:
Я меняю настройки на ini_set("session.use_only_cookies", "1");
, и ini_get возвращает правильное значение. Но, похоже, это не имеет значения, идентификатор сеанса по-прежнему добавляется к URL-адресам на странице.
Что может быть не так?
версия php 4.4.9
редактировать: добавление строки
ini_set ('url_rewriter.tags', '');
прежде, чем session_start();
решить это!
Спасибо, ребята!
Комментарии:
1. Как насчет опции session.use_trans_sid ?
2. Он включен, никакой разницы.
3. Сеанс уже активен? Вам также следует проверить
session.auto_start
-ini-setting.4. @jack: Это скорее следует отключить.
5. session.auto_start равен 0. Мой скрипт начинается с: header (тип содержимого …) ini_set (в сеансе используются только файлы cookie) ini_set (в сеансе используется идентификатор передачи) session_name(…) session_start()
Ответ №1:
Согласно http://es.php.net/manual/en/ini.list.php в вашей версии php session.use_trans_sid
может быть изменено в PHP_INI_PERDIR
. Согласно http://es.php.net/manual/en/configuration.changes.modes.php , PHP_INI_PERDIR
вы можете изменять значения только через php.ini
, httpd.conf
или .htaccess
, но не через ini_set()
.
Итак, попробуйте создать .htaccess
файл в корневом каталоге вашего PHP-приложения с помощью этой строки (если вы используете apache):
php_value session.use_trans_sid On
Кстати, рассмотрите возможность обновления до более новой версии PHP. PHP 4.x был заброшен (не получает обновлений безопасности) на некоторое время.
Комментарии:
1. use_trans_id включен по умолчанию.
2. (Это общий хост, у нас было много конфликтов с компанией, призывающей их обновить. 😉 )
3. Опять же, session.use_trans_sid должен быть отключен.
4. Почему он должен быть отключен? Если это отключено, php не будет отслеживать сеансы по параметрам URL, верно?