помогите с сессиями!
Скажите пожалуйста,как можно сохранить индитификатор сессии в куках,с тем
чтобы когда пользователь когда-нибудь, через пару дней заходит на сайт, а
из его(пользователя) кук извлекается индитификатор старой сессии и она(старая сессия) запускается для дальнейшего использования?
И еще, кому не лень скинте пару ссылок про куковую авторизацию...
Заранее спасибо!
Кроме того можно написать свой обработчик: [phpdoc]session_set_save_handler[/phpdoc]
А что касается Cookies-based авторизации, то все просто:
1. Генерируешь уникальный ID
2. Записываешь в базу данных все данные пользователя и его ID
3. Устанавливаешь ID в Cookies
Потом, если ID в Cookies найден, то по нему извлекаешь данные пользователя из базы и используешь по своему усмотрению.
Можно обновить данные и записать обратно в базу и многое другое.
А нельзя сохранять ID сессии(кот. генерится случайно)в куку а потом извлечь из куки и по нему запустить сессию(старую).Если можно, то как запустить?И по поводу поиска в куках-автоматически хоть что-то ищется или абсолютно все "вручную" через http_cocies_vars?
А вот в вашем фореме по гет запросу передается s=44gtdds...Это я так понимаю ИН сессии,так что вы после авторитизации из БД сгружаете переменные в сессию?
Цитата:
Originally posted by andrey_IMS
А нельзя сохранять ID сессии(кот. генерится случайно)в куку а потом извлечь из куки и по нему запустить сессию(старую).Если можно, то как запустить?
А нельзя сохранять ID сессии(кот. генерится случайно)в куку а потом извлечь из куки и по нему запустить сессию(старую).Если можно, то как запустить?
Нет, сессионные даные, те что хранятся на сервере, будут уже стерты. (Обычно файлы /tmp/sess_*)
Цитата:
И по поводу поиска в куках-автоматически хоть что-то ищется или абсолютно все "вручную" через http_cocies_vars?
То что ты называешь вручную - на самом деле автоматически. Вручную - это когда ты сам разбираешь HTTP запрос.
Нет, сессионные даные, те что хранятся на сервере, будут уже стерты. (Обычно файлы /tmp/sess_*)
Почему же сессии стираются?У меня например в ПХП они долго хранятся в папке sessiondata.
Темболее есть фуекции благодаря которым они могут хранится хоть до второго пришествия
( sesston.cookie_lifetime(),session.gc_maxlifetime(),session.gc_probability()(вероятность удаления
устаревшей сессии)).Проблема в том, КАК запустить эту сохраненную сессию...
<?php
if(isset($HTTP_COOKIE_VARS['id'])) //если есть кука
{
$id=$HTTP_COOKIE_VARS['id']; //извлекаем ин сессии
$err=session_id($id); //устанавливаем этот ин
session_start(); //стартуем ,теперь,старую сессию
$ch=++$HTTP_SESSION_VARS["ch"];//декремент кол-ва посещений
echo"Вы посещаете этот сайт уже в $ch раз!";
}
else
{
$err=session_name("id"); //задаем имя для сессии
session_start();
$id=session_id();//узнаем ин новой сессии
$tr=time()+2678400;//время хранения новой куки месяц
setcookie('id',$id,$tr); //ставим куку длиной в месяц
$ch=1;
session_register("ch");
$HTTP_SESSION_VARS["ch"]=$ch;
echo"Поздравляем! Вы впервые пришли на наш сайт!";
}
?>
вроде работает, получается можно запустить старую
сессию и никуда она не стирается!
Цитата:
вроде работает, получается можно запустить старую
сессию и никуда она не стирается!
И это не правильно !