Php 通过while循环中的foreach循环设置cookie

Php 通过while循环中的foreach循环设置cookie,php,while-loop,setcookie,Php,While Loop,Setcookie,我试图通过while循环中的foreach循环设置这些cookie时出错。我得到的错误是注意:在 php脚本: while($row = mysql_fetch_array($sql)){ $path = "/"; $expire = time() + 2592000; $expire = date("Y-m-d h:i:s",$expire); $c = array( m

我试图通过
while循环中的
foreach循环设置这些cookie时出错。我得到的错误是<代码>注意:在

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>"; 
        }
while($row=mysql\u fetch\u数组($sql)){
$path=“/”;
$expire=time()+2592000;
$expire=日期(“Y-m-d h:i:s”,$expire);
$c=数组(
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作为$name=>$value){
setcookie($name、$value、$expire、$path);
}
echo“让您登录!
”; }
$expire
应为int。您有一个字符串。该行是不必要的,问题的原因是:

$expire =  date("Y-m-d h:i:s",$expire);

您可能会注意到expire参数带有Unix时间戳,而不是日期格式Wdy,DD Mon YYYY HH:MM:SS GMT,这是因为PHP在内部执行此转换


$expire
应为int。您有一个字符串。该行是不必要的,问题的原因是:

$expire =  date("Y-m-d h:i:s",$expire);

您可能会注意到expire参数带有Unix时间戳,而不是日期格式Wdy,DD Mon YYYY HH:MM:SS GMT,这是因为PHP在内部执行此转换

setCookie()的第三个参数“expire”需要一个整数,但您正在验证日期字符串。 这是一个Unix时间戳,因此是从纪元开始的秒数。 那么,评论一下 //$expire=日期(“Y-m-d h:i:s”,$expire)

然后它就会正常工作。

setCookie()的第三个参数“expire”需要一个整数,但您正在验证日期字符串。 这是一个Unix时间戳,因此是从纪元开始的秒数。 那么,评论一下 //$expire=日期(“Y-m-d h:i:s”,$expire)


然后它就可以正常工作。

您在哪一行得到错误?我解决了它,感谢老兄,它来自我格式化时间戳,我只是一直认为您可以在时间戳中添加任何日期(格式化或不格式化)。。。但显然你不能!:)为什么要对cookie数据名进行md5加密?只需对这些名称进行轻微的安全尝试md5,这样一个混蛋用户就可以停止使用像maxithon这样的黑客浏览器编辑cookie名了。。。。。他们是否是一个能够记录cookie数据的用户?你在哪一行中出现了错误?我解决了这个问题,感谢老兄,这是因为我格式化了时间戳,我一直认为你可以在时间戳中输入任何日期(格式化或不格式化)。。。但显然你不能!:)为什么要对cookie数据名进行md5加密?只需对这些名称进行轻微的安全尝试md5,这样一个混蛋用户就可以停止使用像maxithon这样的黑客浏览器编辑cookie名了。。。。。他们是否是一个可以对cookie数据进行详细操作的用户