一直在尝试存储XML文件中的值,但它会发布错误。
我该如何解决这个问题?
<?php
session_start();
$success = 0;
session_unset();
$clients= simplexml_load_file('client.xml');
if(isset($_POST['submit'])){
foreach($clients -> client_info as $client){
if($_POST['username'] == $client->username && $_POST['pwd'] == $client->pwd ){
$success = $success + 1;
$_SESSION["id"] = $client['id'];
break;
}
}
}
if (isset($_SESSION["id"])) {
echo $_SESSION["id"];
}
else {
echo "no session";
}
这就是代码。
然而问题是,当我出门时,例如<?php
session_start();
echo $_SESSION["id"];
?>
它表示未定义的id。
这个问题的任何解决方案?
答案 0 :(得分:0)
如果需要保存simplexml_load_file()结果的完整元素,请使用asXML()
方法(将元素格式化为XML字符串)。要存储任何内容元素的字符串值,请使用__toString()
方法:
示例:
$_SESSION["id"] = $client['id']->__toString(); //for attributes
如果要保存xml标记的文本内容:
$_SESSION["clientContent"] = $client->__toString(); //text content of client tag
将整个xml部分保存为XML字符串:
$_SESSION["client"] = $client->asXML(); //for elements
并恢复$ client变量:
$client=simplexml_load_string($_SESSION["client"]); //$client as object again