SOS! Уже затра№;%ля с сессиями помогите!

123 4
Mr_Promoter
На сайте с 06.08.2004
Offline
254
2799

Нужно убрать идентефикаторы сессий в куки. На первый взгляд задача проще простой прописал

ini_set("session.use_trans_sid", 0);

ini_set("session.use_only_cookies", 1);

и все живи и радуйся, НО фига с два это работает. Пробовал то же самое через .htaccess результат аналогичный как были адреса типа

http://www.abcdef.ru/katalog.php?PHPSESSID=135907fc17813513d670c2880a03b5fe&show=1093598804

так и остались. В настройках у прова все нормально

session

Session Support enabled

Registered save handlers files user

Directive Local Value Master Value

session.auto_start Off Off

session.bug_compat_42 Off Off

session.bug_compat_warn On On

session.cache_expire 180 180

session.cache_limiter nocache nocache

session.cookie_domain no value no value

session.cookie_lifetime 0 0

session.cookie_path / /

session.cookie_secure Off Off

session.entropy_file /dev/urandom /dev/urandom

session.entropy_length 16 16

session.gc_divisor 1000 1000

session.gc_maxlifetime 1440 1440

session.gc_probability 1 1

session.name PHPSESSID PHPSESSID

session.referer_check no value no value

session.save_handler files files

session.save_path /tmp /tmp

session.serialize_handler php php

session.use_cookies On On

session.use_only_cookies Off Off

session.use_trans_sid Off Off

Начал смотреть код - сессии стартуются в одном месте и вот такой штукой

session_start();

session_register("sess");

if (strlen($PHPSESSID)==0){

$PHPSESSID = md5(time());

}

если полностью коментируешь этот блок то получаются вот такие адреса

http://www.abcdef.ru/katalog.php?PHPSESSID=&show=1093598804

т.е. один фиг в урле идет передача сесси, но пустой :(

ниже есть еще такая фигня

if (strlen($sess['user'])==0){

$sess['user']="";

}

Уже даже не знаю что и думать поэтому напишу еще куски кода где еще идет речь о сессия каким либо образом

function echo2($title,$conent,$full,$meta_keywords,$meta_content){

global $PHPSESSID,$config,$paga,$sess, $_SERVER,$show,$act,$date ;

..........

if (substr($_SERVER['PHP_SELF'],strlen($_SERVER['PHP_SELF'])-strlen("index.php"),strlen("index.php"))=="index.php"){

$navi = $navi.'<td id="print"><div id="print_link"><a href=index.php?act=print&page='.$paga.'>Версия для печати</a></div></td>';

}

больше вроди ни где вообще речи про сессии нет.

Чезанах? У кого нибудь были подобные проблемы? Помогите плиз!

http://webpromote.ru (http://webpromote.ru) - пописываю иногда ...
nickspring
На сайте с 29.03.2006
Offline
228
#1

Скрипт тут скорей всего не причем... похоже что кусок кода:

ini_set("session.use_trans_sid", 0);

ini_set("session.use_only_cookies", 1);

не работает... такое бывает... попробуйте создать новый скрипт на хостинге следующего содержания:

<?php

ini_set("session.use_trans_sid", 0);

ini_set("session.use_only_cookies", 1);

phpinfo();

?>

В выведенной информации проверьте, изменились ли конфигурационные параметры session.use_trans_sid и session.use_only_cookies...

dkameleon
На сайте с 09.12.2005
Offline
386
#2
Mr_Promoter:


т.е. один фиг в урле идет передача сесси, но пустой

Такое чувство, что в скрипте есть код, который ПРИНУДИТЕЛЬНО идентификаторы сессий в урл пихает. Его надо вырезать.

Дизайн интерьера (http://balabukha.com/)
nickspring
На сайте с 29.03.2006
Offline
228
#3
dkameleon:
Такое чувство, что в скрипте есть код, который ПРИНУДИТЕЛЬНО идентификаторы сессий в урл пихает. Его надо вырезать.

Да нет там кода и не было никогда... PHPSESSID приписывается в PHP автоматом, ко всем ссылкам (в т.ч. и формам)... потому как сконфигурирован так... и тут налицо проблема с установкой опций, которые человек пытается через ini_set установить...

dkameleon
На сайте с 09.12.2005
Offline
386
#4

nickspring, Может, тогда расскажешь, с каким скриптом у топикстартера проблема, чтобы на кофейной гуще не гадали? ;)

Полагаю, ты к нему можешь иметь отношение :D

При

session.auto_start Off Off 

и закомментированном


session_start();
session_register("sess");
if (strlen($PHPSESSID)==0){
$PHPSESSID = md5(time());
}

сессия НЕ СТАРТУЕТ, если конечно ещё где-то не вызывать

session_start();

Но тем не менее у переменной сессии есть имя по умолчанию. Проверка:

<? echo(session_name()."=".session_id()); ?>

Приблизительно это и вылазит в урле.

Mr_Promoter,

Поищи это:

session_name()

session_id()

nickspring
На сайте с 29.03.2006
Offline
228
#5

dkameleon, спасибо что объяснил дуракам, но то что написано - это и так понятно...

тем не менее в приведенном авторе коде нет кода который бы дописывал урлы... соответственно, утверждаю что процентов 99 что дело в настройках php или apache...

dkameleon
На сайте с 09.12.2005
Offline
386
#6
nickspring:
тем не менее в приведенном авторе коде нет кода который бы дописывал урлы...

Топикстартер мог и пропустить ;)

Для большей уверенности всё же лучше сорс изучить, а потом уже ПХП ломать :)

СКОРПИОН
На сайте с 05.01.2006
Offline
120
#7

nickspring прав. Сначала нужно, потратив пять минут, сделать вот это:

nickspring:
Скрипт тут скорей всего не причем... похоже что кусок кода:

ini_set("session.use_trans_sid", 0);
ini_set("session.use_only_cookies", 1);

не работает... такое бывает... попробуйте создать новый скрипт на хостинге следующего содержания:

<?php
ini_set("session.use_trans_sid", 0);
ini_set("session.use_only_cookies", 1);
phpinfo();
?>

В выведенной информации проверьте, изменились ли конфигурационные параметры session.use_trans_sid и session.use_only_cookies...

А уже потом ломать скрипты, голову и т.д.

• Контекстные ссылки с внутренних страниц навсегда (/ru/forum/370882) • Качественные сайты для заработка на контекстной рекламе и ссылках
nickspring
На сайте с 29.03.2006
Offline
228
#8

кидайте исходник полный (можно в личку)... тогда скажу... настройки php+apache или скрипт...

ref
На сайте с 21.11.2004
Offline
91
ref
#9

Mr_Promoter,

Если хостинг позволяет, можно было бы сконфигурировать запуск php от "своей" копии php.ini, которую скажем положить прямо в корень. Тогда запрет передачи в sid можно прямо в php.ini сделать.

с уважением, Леонид
СКОРПИОН
На сайте с 05.01.2006
Offline
120
#10

Я обычно делаю так:

1. Положить в корень сайт файл .htaccess.

2. Добавить в него вот эти строчки:

php_flag session.use_trans_sid off

php_flag session.use_cookies on

Мало ли что в скриптах может быть. Так надёжнее.

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий