__PHP_Incomplete_Class_Name неверноPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 __PHP_Incomplete_Class_Name неверно

Сообщение Anonymous »

Решено, см. принятый ответ
Мы случайно получаем очень странные журналы ошибок. Они не происходят при каждом посещении страницы, даже с одинаковыми параметрами/действиями/и т. д., и они не кажутся повторяемыми, каждый из них отличается местом сбоя и контекстом. Но почти у всех причиной является неправильное __PHP_Incomplete_Class_Name.
Одна из таких ошибок:

main(): сценарий пытался выполнить метод или получить доступ к свойству неполного объекта. Убедитесь, что определение класса «LoginLogging» объекта, с которым вы пытаетесь работать, было загружено до вызова unserialize(), или предоставьте функцию __autoload() для загрузки определения класса

Проблема в том, что нет класса «LoginLogging». Объект, на который он ссылается, имел тип ScormElement, когда он был сохранен в сеансе.
Выполнение дампа переменной дает:
__PHP_Incomplete_Class::__set_state(array(
'__PHP_Incomplete_Class_Name' => 'LoginLogging',
'intUserId' => '64576',
'__intUserId' => '64576',
'intScormId' => '665',
'__intScormId' => '665',
'intScoId' => '9255',
'__intScoId' => '9255',
'strElement' => 'cmi.core.lesson_location',
'__strElement' => 'cmi.core.lesson_location',
'strValue' => '1',
'dttTimeModified' => QDateTime::__set_state(array(
'blnDateNull' => false,
'blnTimeNull' => false,
'strSerializedData' => '2011-08-31T08:05:22-0600',
'date' => '2011-08-31 08:05:22',
'timezone_type' => 1,
'timezone' => '-06:00',
)),
'__strVirtualAttributeArray' => array (),
'__blnRestored' => true,
'objUser' => NULL,
'objScorm' => NULL,
)

Все свойства сохраняются правильно и соответствуют определению класса ScormElement. Но имя класса неверное. не существует класса с именем LoginLogging.
Что является причиной этого и как это исправить???
Изменить: это всего лишь пример. Другие ошибки очень похожи по структуре, но затрагивают другие типы классов и имеют другие неполные имена. Однако ВСЕ неполные имена имеют одинаковую длину строки правильного имени класса.
Изменить 27 октября 2011 г.: я все еще вижу эти журналы ошибок и не смог найти решение. Будем признательны за любую помощь.
PHP 5.3.3, APC, обработчик сеанса по умолчанию.
Изменить 09.01.2026. Если это продолжает появляться в результатах поиска, это произошло из-за состояния гонки между APC и обработчиком сеанса. Я больше не использую PHP, поэтому не знаю, исправлено ли это, но обходной путь заключается в том, чтобы гарантировать, что сеанс будет записан до того, как APC удалит определения классов:
register_shutdown_function('session_write_close');


Подробнее здесь: https://stackoverflow.com/questions/727 ... name-wrong
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»