我想将数组存储在cookie中,下面只在脚本执行一次时才有效(cookie在用户浏览器中)。第一次执行脚本时,会收到以下错误(正在存储cookie),执行第二次,第三次等时间,脚本没有问题。关于为什么会发生这种情况的任何想法都是对所需cookie值的初始化。
The below errors are displayed 3 times within the while loop.
Notice: Undefined index: cookievalue1 in C:\domain\cookies.php
Notice: Undefined index: cookievalue2 in C:\domain\cookies.php
Notice: Undefined index: cookievalue3 in C:\domain\cookies.php
<?PHP
$i = 1;
$x = 4;
$username = "Username";
$orderno = "12345678";
$item1 = "Firstitem";
$price1 = "$50";
$item2 = "Seconditem";
$price2 = "$46";
$subtotal = "$96";
$tax = "5%";
$total = "$100";
$var = NULL;
$cookiearray = array($username,$orderno,$item1,$price1,$item2,$price2,$subtotal,$tax,$total);
print_r($cookiearray);
while ($i < $x) {
$cookiearray1 = serialize($cookiearray);
setcookie("cookievalue" . $i, $cookiearray1, time()+3600);
print "printing cookie "; $cook1 = $_COOKIE['cookievalue'.$i];
print $cook1; print '<br></br>';print '<br></br>';
$var = unserialize($cookiearray1);
print "printing var"; print $var[1];
print '<br></br>';print '<br></br>';
$var2 = unserialize($cook1);
print $var2[$i];
print '<br></br>';print '<br></br>';
$i = $i + 1;
}
?>
答案 0 :(得分:1)
然后manual清楚地解释了这一点:
常见陷阱:
在下次加载页面之前,Cookie才会显示 cookie应该是可见的。测试cookie是否成功 设置,检查cookie之前的下一个加载页面上的cookie 到期。过期时间通过expire参数设置。一个很好的方式 通过简单调用来调试cookie的存在 的print_r($ _ COOKIE);