Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Сессии - не срабатывает функция sesssion_destroy()

Сообщения:  [1-6] 

 
 автор: RomantikPro   (11.01.2007 в 23:37)   письмо автору
 
   для: ddhvvn   (11.01.2007 в 19:13)
 

Спасибо за ответ!
А кто-нибудь как-нибудь удаляет сессию то? :-( Например, когда пользователь нажал кнопку ВЫХОД или что-то подобное?

   
 
 автор: 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 в 18:51)   письмо автору
 
   для: RomantikPro   (11.01.2007 в 02:38)
 

up

   
 
 автор: RomantikPro   (11.01.2007 в 02:38)   письмо автору
 
   для: LuxeMate   (11.01.2007 в 02:26)
 

так ведь скрипт запрашивает номер сессии и если его нет в базе данных, то добавляет номер текущей сессии. А в конце стоит session_destroy(), которая по идее удаляет текущую сессию и следующая сессия, которая стартует при обновлении будет уже другая и пользователь будет иметь другой номер сессии!!! Разве не так???
В общем id сессии остается таким же после session_destroy(). Как мне удалить полностью сессию, чтобы при обновлении сттраницы был другой id(т.е. совершенно новая сессия)????

В php.ini выставленно ограничение жизни сессии в 20 минут...только после этого присваивается другой носер сессии, который уже и добавляется в БД к предыдущей занесенной строчке..

   
 
 автор: LuxeMate   (11.01.2007 в 02:26)   письмо автору
 
   для: RomanTikPro   (11.01.2007 в 01:41)
 

В общем чтобы увидеть изменения...первый раз вы обновляете страницу происходят изменения....а обновляя второй раз, вы видете результат...

   
 
 автор: 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?
Поясните, пожалуйста, что я делаю не так!!!

   

Сообщения:  [1-6] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования