2010-03-17 4 views
2

Получение следующее сообщение об ошибке при попытке запуска сеанса:PHP Ошибка: Внимание: session_start() [function.session пуск]: Узел больше не существует

Warning: session_start() [function.session-start]: Node no longer exists in file.php on line 3

Скрипт использует SimpleXML для синтаксического анализа XML файлы с удаленных хостов. Он работает на сервере Linux Ubuntu с PHP 5.2.6.

Кто-нибудь сталкивался с этим сообщением раньше или имел представление о том, что это значит?

+0

Что именно вы делаете? – Gumbo

+0

@ Gumbo Me лично или сценарий? – Camsoft

+4

Ну, так как мы говорим о вашем скрипте ... – Gumbo

ответ

4

См объяснение в нижней части this page

[2009-09-25 11:41 UTC] [email protected] 

Thank you for taking the time to write to us, but this is not 
a bug. Please double-check the documentation available at 
http://www.php.net/manual/ and the instructions on how to report 
a bug at http://bugs.php.net/how-to-report.php 

Cannot serialize object wrapping 3rd party library structs. Must 
serialize the xml (to a string) and store that to session and reload the 
xml when restoring from session 
+1

Пример здесь: http://www.php.net/manual/en/book.simplexml.php#87083 – Rabbott

+0

спасибо! это сводило меня с ума. Замечательная вещь. – split19

+0

Пример объясняет проблему очень хорошо, спасибо! –

3

Начало здесь:

http://bytes.com/topic/php/answers/831550-session_start-node-no-longer-exists

Похоже переменной вы работаете не является массивом или переменной в традиционном смысл: он действует скорее как ресурс. Вам придется зацикливать значения, как вы могли бы, с результатом MySQL $.

2

Вы не можете сохранить результаты SimpleXML в сеансе. Преобразуйте его в массив или расширьте его с помощью методов магии пробуждения и сна.

2

У меня был тот же вопрос и получил исправление с сайта http://www.ossramblings.com/simple_xml_breaks_sessions

Собственно сессия не будет хорошо работать при попытке сохранить данные XML, так что просто преобразовать данные XML (я имею в виду объекты) в строку, как ниже:

$temp_max_markers = (string)$Response->owner->max_markers; 

$_SESSION['max_markers'] = $temp_max_markers; 
0

также и не может использовать xml во имя сеанса, как .. $_SESSION[xml];

0

Вы можете изменить ключ шифрования в файле конфигурации в папке приложения в CodeIgniter она работает на м e ..