虽然在阅读了关于设置 cookie 的解释并且第一次不工作后,我发现很难解决以下问题,因为我是 php 和 cookie 的新手。
我有一个网页,其中包含(例如)cp.php、login.php、header.php、maindata.php、bottom.php。每当我登录到网页时,cp.php 将从那里处理 1.header.php 将首先被调用 2.maindata.php 将被调用,3.bottom.php 将被调用。
所以我在 maindata.php 设置我的 cookie,代码就像,
<?php
$cid = $_GET["id"];
$XmlPath = $_GET["path"];
$numpath = $_GET["numpath"];
$finepath =$_GET["finepath"];
$Tech =$_GET["tech"];
$read_str="";
function read($Path)
{
$temp="";
if(file_exists($Path))
{
$library = new SimpleXMLElement($Path,null,true);
foreach($library->children("SAS") as $info){
foreach($info->children("SAS") as $attributes){
$nameVal = $attributes->Name."=".$attributes->Value;
$str_temp .=$nameVal."#";
}
}
}else
{
$str_temp ="NA";
}
return $str_temp;
}
$arrpath =explode(",",$XmlPath);
/*Reading and storing arrpath[0] has the path of xml to be parsed*/
$strG=read($arrpath[0]);
$strC=read($arrpath[1]);
$strB =read($arrpath[2]);
setcookie($cid.'strE',$strG);
setcookie($cid.'comstr',$strC);
setcookie($cid.'basstr',$strB);
(....)
在同一个文件中,我正在使用以下代码读取 cookie,
$read_str =$_COOKIE[$cid.'strE'].$_COOKIE[$cid.'comstr'].$_COOKIE[$cid.'basstr'];
完成此过程后,将调用bottom.php并第一次完成加载。正如我第一次说我没有在$ read_str中获得任何值,但是如果我刷新页面并再次执行所有过程,我就是获得价值。
由于 SETCOOKIE 将在成功设置 cookie 的情况下返回 TRUE,因此我尝试将其放入 if 循环中,即使是第一次也返回 false。
请帮助我找出问题所在!