我试图通过foreach loop
内的while loop
设置这些cookie时出错。我得到的错误是...... Notice: A non well formed numeric value encountered in
php脚本:
while($row = mysql_fetch_array($sql)){
$path = "/";
$expire = time() + 2592000;
$expire = date("Y-m-d h:i:s",$expire);
$c = array(
md5('id')=>$row['id'],
md5('name')=>$row['u'],
md5('sex')=>$row['s'],
md5('country')=>$row['co'],
md5('state')=>$row['st'],
md5('city')=>$row['ci'],
md5('timezone')=>$row['ti']
);
foreach($c as $name=>$value){
setcookie($name,$value,$expire,$path);
}
echo "Logging you in! <img src=\"source/image/50gl.gif\"><br>";
}
$expire
预计将是一个int。你有一个字符串。这条线是不必要的,问题的原因:
$expire = date("Y-m-d h:i:s",$expire);
您可能会注意到expire参数采用Unix时间戳,而不是日期格式Wdy,DD-Mon-YYYY HH:MM:SS GMT,这是因为PHP在内部执行此转换。
setCookie()的第3个参数“expire”需要一个整数但你要证明日期字符串。这是一个Unix时间戳,因此是自纪元以来的秒数。所以,评论// $ expire = date(“Y-m-d h:i:s”,$ expire);
然后它会正常工作。