|
|
|
|
|
для: RV
(29.03.2007 в 14:03)
| | Э... magic quotes - это та еще кака.
Я её стараюсь отключить сразу и навсегда, благо из .htaccess это обычно можно сделать. | |
|
|
|
|
|
|
|
для: Trianon
(28.03.2007 в 17:35)
| | собственно проблема была в magic_quotes_gpc а не, как и следовало ожидать, в байт-стриме. | |
|
|
|
|
|
|
|
для: RV
(28.03.2007 в 17:17)
| | >то что после сериализации результат можно пихать куда угодно это факт.
Кто б спорил.
>плюс открываем и читаем маунал serialize() returns a string containing a byte-stream representation of value that can be stored anywhere.
Да, только не всякий байт-стрим можно совать куда угодно.
То есть засунуть - удастся - сто пудов.
Высунуть назад - может уже и не выйти.
Применительно к кукисам - не только байт-стрим, а даже керектер-стрим.
Насколько я помню, к критичным символам относится как минимум точка-с-запятой.
Собственно, флейм я раздувать ненамерен - повод не тот.
Я лишь предложил решение: неохота применять - никто ж не заставляет. | |
|
|
|
|
|
|
|
для: Trianon
(28.03.2007 в 16:55)
| | то что после сериализации результат можно пихать куда угодно это факт.
плюс открываем и читаем маунал serialize() returns a string containing a byte-stream representation of value that can be stored anywhere. | |
|
|
|
|
|
|
|
для: RV
(28.03.2007 в 16:48)
| | Код phpbb это, Вы считаете, истина в последней инстанции?
Ради бога, мне не жалко :))) | |
|
|
|
|
|
|
|
для: Trianon
(28.03.2007 в 16:30)
| | да ну
<?
// And now rebuild the cookie
$sessiondata['userid'] = $user_id;
$sessiondata['autologinid'] = $auto_login_key;
$cookiename = $board_config['cookie_name'];
$cookiepath = $board_config['cookie_path'];
$cookiedomain = $board_config['cookie_domain'];
$cookiesecure = $board_config['cookie_secure'];
setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);
?>
|
это код пхпбб последней версии.
впринципе 10 версиями назад в данном месте он не сильно отличается | |
|
|
|
|
|
|
|
для: RV
(28.03.2007 в 16:02)
| | результат сериализации нельзя в лоб в кукис совать.
Нужно его прогнать через base64_encode например .... ну и обратно. | |
|
|
|
|
|
|
| php 4.4.2.
Форма авторизации. Имя пользователя, пароль, батон, чекбокс сохранить или нет.
Сам скрипт, точнее часть с того места где идет проверка на сохранение (ставить куку или нет):
<?
if ($autologin)
{
$userkey = rand_string(); \\ получается обычная 32 строка типа мд5 хеша
//пара sql запросов;
$info['id'] = $usr['user_id']; \\ обычное число типа 10
$info['key'] = $userkey;
setcookie(COOKIE_NAME . '_сdata', serialize($info), time() + 31536000, COOKIE_PATH, COOKIE_DOMAIN); \\ COOKIE_NAME и остальные константы прописаны и корректны
}
?>
|
теперь кусок функции которая проверяет куку.
<?
if (isset($_COOKIE[COOKIE_NAME . '_cdata']))
{
$cookie = $_COOKIE[COOKIE_NAME . '_сdata'];
$cookieinfo = unserialize($cookie);
....
?>
|
Дома вин апач 2.0, пхп 5.1.4 все работает на раз два, сохраняет и все такое.
На хостинге пхп 4.4.2. После авторизации с чекбоксом Сохранить, Далее закрываю открываю броузер и вижу Notice: unserialize(): Error at offset 5 of 81 bytes in $cookieinfo = unserialize($cookie);
В чем проблема? | |
|
|
|
|