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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Запуск нескольких сессий сразу.
 
 автор: Евгений Петров   (18.06.2005 в 02:14)   письмо автору
 
 

Подскажите пожалуйста, как можно запустить сразу две сессии с различным SID. Или подскажите где можно хранить одно единственное значение (изменяющееся) так чтобы его видели все скрипты. (база данных, сессия, файл). Где лучше.

   
 
 автор: cheops   (18.06.2005 в 02:41)   письмо автору
 
   для: Евгений Петров   (18.06.2005 в 02:14)
 

Для этого необходимо воспользоваться функцией session_name(), которая позволяет задать имя сессии. Вызов этой функции осуществляется до вызова функции session_start().
<?php
  
// Переключаемся на сессию name1
  
session_name("name1");
  
// Инициируем сессию 
  
session_start();
?>

Если вам понадобится другая сессия, то воспользуйтесь кодом
<?php
  
// Переключаемся на сессию name2
  
session_name("name2");
  
// Инициируем сессию 
  
session_start();
?>

   
 
 автор: Евгений Петров   (18.06.2005 в 16:08)   письмо автору
 
   для: cheops   (18.06.2005 в 02:41)
 

Почему тогда не работает следующий код?
(некоторые части кода пропущены для экономии места)

<?
  
// объявление переменных
  
session_id("h4gf95kw04fr7hjto39tj58fh395jr8s");
  
session_name("chatsettings");
  
session_start();
  
  
// далее следует некоторый код где вызывается функция ClearList()

  
function ClearList()
  {  
    
// некоторый код
    
$findusers=mysql_query("select * from tUsers where $time-lasttime > '$timeout'");
    for(
$i=0;$i<mysql_num_rows($findusers);$i++)
    {
      
$users=mysql_fetch_array($findusers);     
      
fwrite($fmsg,"@;system;blue;;;;timeout для $users[login]\n");     
      
session_id($users['id']);
      
session_name("chat");
      
session_save_path("sessions");
      
session_start(); // 33 строка
      
unset($_SESSION['color']);
      
session_destroy(); // 35 строка
    
}
  }
?>


Ругается следующим образом:
Notice: A session had already been started - ignoring session_start() in D:\SERVER\www\users.php on line 33

Warning: session_destroy() [function.session-destroy]: Session object destruction failed in D:\SERVER\www\users.php on line 35

   
 
 автор: cheops   (18.06.2005 в 16:59)   письмо автору
 
   для: Евгений Петров   (18.06.2005 в 16:08)
 

На одной странице наверное не получиться использовать разные группы сессий - нельзя ли обойтись одной сессией, зачем именно две?

   
 
 автор: Евгений Петров   (18.06.2005 в 17:02)   письмо автору
 
   для: cheops   (18.06.2005 в 16:59)
 

Мне нужно где то хранить одну (а может в дальнейшем и не одну) переменную, которая будет видна отовсюду и всегда, в файл я записывать не хочу, выделять целую таблицу в базе данных для этой переменной тоже вроде как то. Может у вас будут какие то предложения? Заранее благодарен.

   
 
 автор: cheops   (18.06.2005 в 17:08)   письмо автору
 
   для: Евгений Петров   (18.06.2005 в 17:02)
 

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

   
 
 автор: Евгений Петров   (18.06.2005 в 17:42)   письмо автору
 
   для: cheops   (18.06.2005 в 17:08)
 

Всем сразу.

   
 
 автор: cheops   (18.06.2005 в 20:51)   письмо автору
 
   для: Евгений Петров   (18.06.2005 в 17:42)
 

Тогда сессией не получится - она действует только в рамках одного посетителя...

   
 
 автор: Евгений Петров   (18.06.2005 в 20:55)   письмо автору
 
   для: cheops   (18.06.2005 в 20:51)
 

Но ведь если знать идентификатор сессии можно извлеч данные для любого пользователя?

   
Rambler's Top100
вверх

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