форум вебмастероff на AlfaSpace.NET

Ubuntu и Linux |реактивный бесплатный хостинг | Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга | правила форума

  Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ °
Форум вебмастеров на AlfaSpace.NET / Создание сайта / Как передать объект на другую страницу?
Автор Сообщение
Jadd
Участник

106
# Дата: 20 Окт 2007 17:35


PHP.
Есть объект созданного мной класса.
Необходимо передать его на другую страницу сайта.
Через суперглобальные массивы типа $_SESSION[] не получается.
Есть варианты?

Андрей
Алексеевич

2123
# Дата: 20 Окт 2007 17:49


Всё должно работать, класс должен быть объявлен на обоих страницах, объект записываем в переменную сессии. В файле сессии на диске он записывается в serialized-виде, который поддерживает сохранение объектов.

Jadd
Участник

106
# Дата: 20 Окт 2007 19:25


Может и должно, но об этом не знает )
А может от версии PHP зависит... или я заглючил.
В общем, код:

case 'import': //страница index.php?f=import
$_SESSION['dialog_table'] = $dialog_table;
print $_SESSION['dialog_table']->GetHTMLTable(); //выводит данные - метод работает
break;
case 'dialog': //страница index.php?f=dialog - следующая, после index.php?f=import
print $_SESSION['dialog_table']->GetHTMLTable(); //объект передается, но метод уже не работает.


Решение проблемы с помощью функции serialize()
-----------------------------------------------

serialize() возвращает строку с байтово-поточным представлением значения value, которое может храниться где угодно.

Это используется для хранения или передачи PHP-значений повсюду без потери их типа и структуры.
-----------------------------------------------

case 'import': //страница index.php?f=import
$_SESSION['dialog_table'] = serialize($dialog_table);
print $_SESSION['dialog_table']->GetHTMLTable(); //выводит данные - метод работает
break;
case 'dialog': //страница index.php?f=dialog - следующая, после index.php?f=import
$dialog_table = unserialize($_SESSION['dialog_table']);
print $dialog_table->GetHTMLTable(); //объект передается, метод работает.

Андрей
Алексеевич

2123
# Дата: 20 Окт 2007 21:40 ° Поправил: Андрей


page1.php
<?php 
session_start(); 
 
class testClass { 
	var $testvar1; 
 
	function set($var) 
	{ 
		$this -> testvar1 = $var; 
	} 
} 
 
$obj = new testClass(); 
$obj -> set('testTestTest!'); 
 
$_SESSION['obj'] = $obj; 
print_r( $_SESSION['obj'] );






page2.php
<?php 
session_start(); 
 
class testClass { 
	var $testvar1; 
 
	function set($var) 
	{ 
		$this -> testvar1 = $var; 
	} 
} 
 
 
$_SESSION['obj'] -> set('testTestTest2!'); 
print_r( $_SESSION['obj'] ); 



У меня работает.

Ваш ответ

Quote  Bold Style  Italic Style  Underlined Style  URL Link  Email Link  Script AutoTab  Preformatted Text  Отменить *Что это?
... Запретить смайлы


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль 
 
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:23479, gzipped size:7760

Mp3 Download || Мир Спанч боба || Song's Lyrics
eXTReMe Tracker Rambler's Top100 Рейтинг@Mail.ru Форум ТвойWeb [Valid RSS]