ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Обьект уничтожается раньше времени
  #1  
Старый 16.05.2009, 11:39
Аватар для Doom123
Doom123
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме:
3941248

Репутация: 668


Отправить сообщение для Doom123 с помощью ICQ
По умолчанию Обьект уничтожается раньше времени

возникла проблема ... у меня есть класс для работы с сессиями через БД потом от нех делать рнешил сделать тоже самое но с использованием

session_set_save_handler

вот что я делаю ..

PHP код:
<?php

//Различные функции
require_once ('includes/func.php');
//Файл конфигурации\\
require_once ('includes/config.php');

$a 'aa';

function 
ses_open($save_path,$ses_name) {
    return 
true;    }
function 
ses_close() {    return true;    }

function 
ses_read($key
{
    global 
$db;
    
$res $db->mysql_qw('SELECT `val` FROM `session` WHERE `key`=?',$key) or die();
    
$fetch $db->mysql_fetch($res);
    
    return 
$fetch['val'];
}

function 
ses_write($key,$val
{
    global 
$db;

    
$db->mysql_qw('REPLACE INTO `session` SET `val`=?,`key`=?',$val,$key) or die();

    return 
true;
}

function 
ses_destroy($key)
{
    global 
$db;
    
$db->mysql_qw('DELETE FROM `session` WHERE `key` = ?',$key) or die();
    return 
true;
}

function 
ses_gc($maxlifetime)
{
    global 
$db;
    
$time time() - $maxlifetime;
    
$db->mysql_qw('DELETE FROM `session` WHERE UNIX_TIMESTAMP(`time`) <= ?',$time) or die();
    return 
true;
}


session_set_save_handler("ses_open","ses_close","ses_read","ses_write","ses_destroy","ses_gc");




session_start();

$_SESSION['test'] =  1;

?>
Выводит ошибку

Fatal error: Call to a member function mysql_qw() on a non-object in test.php on line 29

Я сделал вывод массива $GLOBALS в ф-ции ses_read и ses_write

И удивился когда обьект $db существует в ses_read

а в ses_write он уже уничтожен ... думал изза
__destruct() в классе mysql но нет =\\


кто может обьеснить что тут произошло?

Последний раз редактировалось Doom123; 16.05.2009 в 11:47..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Убийца iPod" от Microsoft поступил в продажу раньше времени KPOT_f!nd Мировые новости 1 13.11.2006 18:19
Обзор Файловых Серверов NIGHT_WOLF Чужие Статьи 9 22.04.2006 23:13



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ