|
| |
|
|
| |
для: ddhvvn
(11.01.2007 в 19:13)
| | | Спасибо за ответ!
А кто-нибудь как-нибудь удаляет сессию то? :-( Например, когда пользователь нажал кнопку ВЫХОД или что-то подобное? | |
| |
|
|
| |
|
|
| |
для: RomantikPro
(11.01.2007 в 02:38)
| | | >так ведь скрипт запрашивает номер сессии и если его нет в базе данных, то добавляет номер текущей сессии. А в конце стоит session_destroy(), которая по идее удаляет текущую сессию и следующая сессия, которая стартует при обновлении будет уже другая и пользователь будет иметь другой номер сессии!!! Разве не так???
по теории - не знаю, а на практике - удостоверился, что не так.
id сессии нужно менять с помощью session_id();
<?php
session_id(md5(time));
session_start();
?>
|
Примерно так | |
| |
|
|
| |
|
|
| |
для: RomantikPro
(11.01.2007 в 02:38)
| | | up | |
| |
|
|
| |
|
|
| |
для: LuxeMate
(11.01.2007 в 02:26)
| | | так ведь скрипт запрашивает номер сессии и если его нет в базе данных, то добавляет номер текущей сессии. А в конце стоит session_destroy(), которая по идее удаляет текущую сессию и следующая сессия, которая стартует при обновлении будет уже другая и пользователь будет иметь другой номер сессии!!! Разве не так???
В общем id сессии остается таким же после session_destroy(). Как мне удалить полностью сессию, чтобы при обновлении сттраницы был другой id(т.е. совершенно новая сессия)????
В php.ini выставленно ограничение жизни сессии в 20 минут...только после этого присваивается другой носер сессии, который уже и добавляется в БД к предыдущей занесенной строчке.. | |
| |
|
|
| |
|
|
| |
для: RomanTikPro
(11.01.2007 в 01:41)
| | | В общем чтобы увидеть изменения...первый раз вы обновляете страницу происходят изменения....а обновляя второй раз, вы видете результат... | |
| |
|
|
| |
|
|
| | В БД есть таблица users с такими полями:
id_session int not null primary key,
id_session varchar(255) unique key
и т.д.
и вот такой код:
<?php
session_start();
include_once("utils/conf/config.php");
$id_session = session_id();
$query="select `id_session` from users where id_session='$id_session'";
$result=mysql_query($query);
if(mysql_num_rows($result) == 1)
{
echo "Пользователь уже есть в системе";
}
{
$query2="insert into users (id_user,id_session,surname,last_date) values (NULL,'$id_session', 'Anonymous', NOW())";
mysql_query($query2);
$SESSION['name']='Anonymous';
exit("Вы добавлены");
}
if(session_destroy())
{
echo "Сессии больше нет";
}
?>
|
При первом срабатывании скрипта одна запись добавляется в базу данных, а при втором не добавляется, пишет, что пользователь уже добавлен. Почему же так? Ведь в конце скрипта стоит функция sesssion_destroy(), которая удаляет сессию. И если обновить окно, то должна получится сессия с уже другим sid?
Поясните, пожалуйста, что я делаю не так!!! | |
| |
|
|
|