[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: что это __PHP_Incomplete_Class
Страницы: 1, 2
Gradus
я думаю что в сессию закидываются переменные как обьекты класса (хотя они локальные в чём и странность), поэтому когда обращаешься к сесии(открыть/записать/удалить), класс от которого пришли обьекты должен быть уже загружен.Ну или сессия стартует до того как php обработается.Если есть возможность открыть файл сессии посмотри что туда попадает,есть ли там имя класса.Вывести сессию за пределы

//В классе
$mysql->query($str) or die(mysql_error());
return array($user=> $temp);
//а потом в не класса
if($user=$auth->signup())
{
session_start();
$_SESSION=$user;
header('Location: ' . ADM_SRV);
}

ну или написать функцию которая запишет данные в сессию,
$mysql->query($str) or die(mysql_error());
session_write( array($user=> $temp));


Цитата
функция не помогла. или я чего то не понял..(объясни пожалуйста подробней что с ней делать...  )

когда php проходит десиреализацию и встречаеются обьекты не известного класса , срабатывает эта функция и в аргументе передаётся название не найденного класса.

_____________
ДАВАЙ ДЕНЬГИ
R543264623869
Crash2007
ну смотри как я сделал. инклудил файл с классом и инициализировал его перед session_start().

+

вместо $_SESSION['admin'][$user] = $temp; написал:
session_register(admin);
$_SESSION['admin'] = array($user => $temp);

и все получилось.......... dry.gif
smile.gif

_____________
Рисую на PHP :)
Crash2007
после этого у меня были некие проблемы (какая та ошибка была) с некоторыми функциями из этого класса. но мне ничего не помешало их вывести оттуда.)

_____________
Рисую на PHP :)
Shra
Все крутится вокруг преждевременной десериализации объекта. Обычно такие вещи происходят когда автостарт сессии прописан в настройках PHP. На дервере, допустим, отключен автостарт, а на хостинге включен. При этом грузятся данные сессии, а файлы классов не подключены ещё. Если концы найти не удается можно восстановить объект как делают тут - http://shra.ru/2014/12/vosstanavlivaem-obe...ete_class_name/
volter9
Цитата (Crash2007 @ 10.05.2011 - 15:52)
привет всем! =)

прошу помощи...
записую в сессию массив (print_r() выводит):
Array ( [admin] => Array ( [moderator] => 7552adf6ebc2af528972aa404e978120 ) )
-- это "дома" на денвере.
а
Array ( [admin] => __PHP_Incomplete_Class Object ( [__PHP_Incomplete_Class_Name] => admin ) )
-- это на хостинге.

у кого практика в этом что делать. скажите какие еще подробности нужны.
на локале РНР 5.3.3, а на хостинге РНР 5.2.16.
зы.у меня голова сейчас взорвется!(надо забухать!!) )))
помогите решить проблему..

Да это же PHP4 класс. Все что вам нужно сделать это заменить function внутри класса на public function и должны получить Admin класс.

PHP4 классы имели очень ограниченное ООП и по этой причине там все свойства и методы были только публичными, и синтаксис объявления был жутью. Потом появился PHP5 там все изменилось с ООП, и теперь там более или менее нормальное ООП. __PHP_Incomplete_Class это скорее всего PHP5 создает совместимый объект с PHP4. Все что нужно сделать это объявить все методы публичными (т.е. просто добавить слово public перед function) и var заменить на public.

_____________
Мой блог
Valick
Господа обращайте внимание на даты постов smile.gif



_____________
Стимулятор ~yoomoney - 41001303250491
volter9
Упс blink.gif

Блин, а я даже не заметил.

_____________
Мой блог
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.