更多的cookie问题,php
我很抱歉不断询问愚蠢的问题,但我试图研究这个,并找不到它。更多的cookie问题,php
这次,我想能够检查一个数组的_POST,然后决定可以设置cookie。这是我的片段。
<?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的原因 - 在浏览器发出重定向请求之前,您如何确定这已完成?
我希望能够检查_POST对数组,决定它的确定设置Cookie
前的明显,您所提供的代码不设置cookie前检查什么 - 为什么你把它包含在你的问题中?
检查post数组变量是否设置。
if(isset($_POST['arr']))
{
if(in_array("value", $bArray)
{
setcookie("choice1","true",time()+20);
}
}
嘿纳文,谢谢,但我想要做的不只是接受它,如果它被设置,但如果它匹配的数组值之一。 – user1159454
我已经更新了答案 –
你的问题可能不是愚蠢的,但它绝对是不可理解的。你想达到什么目的? – Gumbo
我想设置一个cookie,但只有当所有的条件($ _POST值在数组中作为键之一)是真的)我的问题是它看起来不像是在设置cookie之前设置数组或允许的,所以我不知道如何去比较它与允许的值。所有这些cookie都会告诉页面重定向到提交值成功。 – user1159454
[Headers already sent](http://*.com/questions/8028957/headers-already-sent-by-php)可能有重复,如果您的实际问题确实是声明顺序。 – mario