将XML值存储到会话变量中

时间:2016-05-06 13:30:28

标签: php session

一直在尝试存储XML文件中的值,但它会发布错误。

我该如何解决这个问题?

enter image description here

   <?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。

这个问题的任何解决方案?

1 个答案:

答案 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