更多cookie问题,php


More cookie problems, php

很抱歉一直问一些愚蠢的问题,但我试着研究了一下,却找不到。

这一次,我希望能够在决定可以设置cookie之前,对照数组检查_POST。这是我的片段。

<?php
header( 'Location: http://www.site.com/ler.php' ) ;
?>
<?php
setcookie("choice1","true",time()+20);
?>

<?php
$match_id = strtoupper($_POST["arr"]);

//var_dump(implode($_POST));

$bArray = array(
"A"=>"1",
"B"=>"2",
"C"=>"3",
"D"=>"4",
"ETC"=>"5");

我需要在cookie之前设置数组和变量,因为我想使用array_key_exists条件。我试着改变顺序,但无济于事。我知道这不是头,因为其他带有cookie和头的代码运行良好。有什么想法吗??

不确定您在这里问的是什么,但很明显,您提供的代码可能不会像您预期的那样工作。

在调用setcookie()之前输出正文内容。因此,除非您启用了输出缓冲,否则它将失败。将到期时间设置为20秒也是一个愚蠢的想法——客户端时钟不太可能同步。

还有一些浏览器在重定向后会忽略所有后续的头。此外,根据处理的时间,一些浏览器会在重定向后断开连接——如果没有ignore_user_abort(),这可能会导致代码提前终止。

此外,解析数据/设置cookie可能是有原因的——在处理来自浏览器的重定向请求之前,如何确保这一过程已经完成?

在决定可以设置cookie 之前,我希望能够对照数组检查_POST

很明显,你提供的代码在设置cookie之前没有检查任何内容——你为什么要把它包含在你的问题中?

检查是否设置了post数组变量。

if(isset($_POST['arr']))
{
 if(in_array("value", $bArray)
{
setcookie("choice1","true",time()+20);
}
}