尝试启动会话时出现以下错误:
Warning: session_start() [function.session-start]: Node no longer exists in file.php on line 3
该脚本使用SimpleXML从远程主机解析XML文件。它运行在使用PHP 5.2.6的Linux Ubuntu服务器上。
有没有人在此之前遇到此消息或对其含义有所了解?
答案 0 :(得分:4)
请参阅this page
底部的说明[2009-09-25 11:41 UTC] rrichards@php.net
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 :(得分:3)
从这里开始:
http://bytes.com/topic/php/answers/831550-session_start-node-no-longer-exists
看起来你正在使用的变量不是传统意义上的数组或变量:它更像是一种资源。你将不得不像使用MySQL $结果那样循环输出值。
答案 2 :(得分:2)
您无法在会话中存储SimpleXML结果。将其转换为数组或使用唤醒和睡眠魔术方法扩展它。
答案 3 :(得分: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;
答案 4 :(得分:0)
您也无法使用会话名称中的xml
作为.. $_SESSION[xml];
答案 5 :(得分:0)
您可以在codeigniter中的应用程序文件夹中的配置文件中更改加密密钥,它对我有用..