php: использовать только cookies не работает

#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, верно?