center » 2009.10.09 23:44

http://сайт.ру/index.php?mode=cat&id=14&sessiaID=6d88ea61a51d0bc943ecd18016b12ae8 а как сессию через реврайт убрать? скрыть их?

Gemorroj » 2009.10.09 23:47

никак. а зачем?

center » 2009.10.10 15:01

да а зачем ана? страшная ссылка выглядит
http://сайт.ру/index.php?mode=cat&id=14&sessiaID=6d88ea61a51d0bc943ecd18016b12ae8

http://сайт.ру/cat/14/ хотел вот так сделать а сессия та ана переменная ее непалучается чем нибуди заменить дапустим $ses=ses хатябы так http://сайт.ру/cat/14/ses
Добавлено спустя   4 минуты  37 секунд:
меня вчера даперла пачиму такой обмен в паблике он страшен проста )))) /index.php?mode=cat&id=14 это проста ужс , и сессию хрен скроеш наверна есле ее убрать то авторизация слитать будит.... и я хочу в реврайт перевести вчера начел но с сесиями нече непридумал ..........

Gemorroj » 2009.10.10 15:17

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

center » 2009.10.10 15:20

мне дле нравится ))
Добавлено спустя   5 минут  44 секунды:
#php_value session.use_trans_sid 1

вот этож? закаментировал я ее а кукисы какой код надо прописать?

Gemorroj » 2009.10.10 16:38

не комментируй, а 0 поставь

DarkDaNTe » 2009.10.10 18:01

Не устраивает ссылка вида http://сайт.ру/cat/14/6d88ea61a51d0bc943ecd18016b12ae8/ ?

center » 2009.10.10 20:41

DarkDaNTe такую нехочу 

не комментируй, а 0 поставь неработает

Gemorroj » 2009.10.10 21:08

center, можно ограничить количество символов в id сессии, но чем меньше вариантов id сессии, тем выше вероятность перезаписиси существующих сессий новыми.
Т.е. может так случится, что человек сидит с id сессии "dff4f", тут авторизуется новый человек, ему пристаивается id сессии с тем же именем, т.к. мало вариантов для выбора и оба человека сидят под одним аккаунтом.

center » 2009.10.11 00:23

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

RewriteRule ^.*-s([0-9]+)/.*-g([0-9]+)\.html$/obmennik/html_red.php?style=$1&group=$2 [L]



http://сити ру/obmennik/html_red.php?mode=cat&id=5

cat переменная -s([0-9]+ из за етого?

AND » 2009.10.15 20:07

Gemorroj написал:

center, можно ограничить количество символов в id сессии, но чем меньше вариантов id сессии, тем выше вероятность перезаписиси существующих сессий новыми.
Т.е. может так случится, что человек сидит с id сессии "dff4f", тут авторизуется новый человек, ему пристаивается id сессии с тем же именем, т.к. мало вариантов для выбора и оба человека сидят под одним аккаунтом.

Напиши плиз как ограничить количество символов в id сессии, гугл не знает...

Gemorroj » 2009.10.15 21:17

Код:

1
2
session_id(mt_rand(1000, 9999));
session_start();

=))
Кстати, насчет того что сессия перезапишется, я был не прав, PHP лочит файл с сессией. Так что новая сессия не запустится.

AND » 2009.10.15 21:43

Спасибо, сделал так:

Код:

1
span style="color: #0000BB"><?php$i = 0;$sid = '';$array = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';while($i < 10) { $sid .= $array[mt_rand(0, 61)]; $i++; }session_id($sid);session_start();?>
Gemorroj » 2009.10.15 21:54

Код:

1
$sid = substr(str_shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'), 0, 10);
AND » 2009.10.16 17:49

Если самому устанавливать session_id, сессии не работают, при каждом обновлении новая сессия. Как исправить?

Код:

1
span style="color: #0000BB"><?phpsession_id(substr(str_shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'), 0, 10));session_start();if(!isset($_SESSION['counter'])) { $_SESSION['counter'] = 0;}echo 'Вы обновили эту страницу '.$_SESSION['counter']++.' раз. <br /><a href='.$_SERVER['PHP_SELF'].'>обновить</a>'; ?>
Gemorroj » 2009.10.16 20:16

ну правильно, ты же генеришь каждый раз новый идентификатор сессии.

AND » 2009.10.16 21:08

Так правильно?

Код:

1
2
3
4
if(!isset($_REQUEST[session_name()])) {
session_id(substr(str_shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'), 0, 10));
}
session_start();

Теперь другая проблемка....
Массив $_REQUEST не содержит данные массива $_COOKIE, php.ini коряво настроил?

Gemorroj » 2009.10.16 22:20

мммм... ну а что в директиве variables_order ?

AND » 2009.10.16 22:22

variables_order = "GPCS"
PHPINFO

Gemorroj » 2009.10.16 23:48

домашний сервер?)
Вроде все ок. А Сами сессии точно стартуют? т.е. там папка для хранения файлов сессий /tmp, она есть и в ней есть файлы с сессиями?

AND » 2009.10.17 00:00

Gemorroj написал:

домашний сервер?)

ну да, раньше стоял STPServer, теперь сам поставил сборку Apaсhe+PHP+MySQL, видимо где-то накосячил...

С сессиями все норм.

...
Первый массив $_REQUEST, второй - $_COOKIE

Gemorroj » 2009.10.17 00:15

Вообще пока не знаю в чем дело. Но могу сказать что это дело в PHP 5.3 и выше.
Проверил у себя, на 5.2.11 - есть и $_COOKIE и $_REQUEST, а вот на 5.3.2-dev есть $_COOKIE, но нету $_REQUEST
Надо погуглить)
Добавлено спустя   3 минуты  58 секунд:
Ага...)
В php.ini 5.3 появилась новая директива request_order
и по умолчанию стоит request_order = "GP"
Судя по всему это то что нам нужно)
Стоит изменить на GPC, вероятно. Почему убрали кукисы пока не понимаю.

AND » 2009.10.17 00:21

Cпс, теперь работает :)