儘管在閱讀關於設置cookie並且第一次不工作的解釋之後,我發現很難將下面的問題解決爲php和cookie的新問題。第一次設置cookie失敗,但在刷新時工作
我有一個用於(例如)cp.php,login.php,header.php,maindata.php,bottom.php的網頁。每當我登錄到網頁cp.php將從那裏處理1.header.php將首先被調用2.maindata.php將被調用並且3.bottom.php將被調用。
所以我設置我的cookie在maindata.php和代碼是這樣,
<?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將返回TRUE成功設置Cookie,我試着把它放在if循環中,即使是第一次它也返回false。
請幫助我找出存在的問題!
'setcookie'只設置一個你的瀏覽器會收到的cookie,它不*修改'$ _COOKIE'。 – DCoder
@DCoder請你解釋一下。 – user2572985
'setcookie'用於*發送cookie至瀏覽器*,'$ _COOKIE'表示服務器*已經收到的cookie *。瞭解差異。如果您需要通過'$ _COOKIE'訪問新設置的cookie,則必須手動將其放置在那裏。 – DCoder