Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteBase /roots_web/
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteRule ^contact-us.html/$ contact-us.php
RewriteRule ^contact-us.html$ contact-us.php
我通过以下方式设置cookie:
setcookie("reports_cookie[".$report_id."][report]", $report_id);
当我转到其他页面并检查
if(isset($_COOKIE['reports_cookie']) && count($_COOKIE['reports_cookie'])>0)
{
}
它不认为这种情况为真。
答案 0 :(得分:0)
确定
setcookie("reports_cookie[".$report_id."][report]", $report_id, time()+3600,"/");
在对浏览器完成任何输出之前使用。
例如
<html>
<head>
<title>
hello world
</title>
</head>
<?php
setcookie("reports_cookie[".$report_id."][report]", $report_id, time()+3600,"/");
?>
</html>
将使其失败,因为html输出将在cookie标头之前发送。
通过所谓的header字段设置和读取Cookie。这些必须在任何输出之前发送。
即使在打开php标记之前有一个空格也可能使它失败。即使调用setcookie函数之前“包含”了文件中的空格。
<?php setcookie("reports_cookie[".$report_id."][report]", $report_id, time()+3600,"/");
^-- a space making your cookies fail
如果没有看到空格,则可能在php文档的开头有一个UTF8 BOM字段。建议将文本编辑器设置为其他文本编码(例如ANSI),以便能够编辑UTF8 BOM,以便可以将其删除然后保存并还原为不带BOM的UTF8。
还要确保在整个域上设置cookie。如果您未指定cookie,则只能在其设置页面上读取cookie。
还请记住设置一个过期时间,在这种情况下,我将cookie设置为5分钟。
setcookie("reports_cookie[".$report_id."][report]", $report_id, time()+3600,"/");
另外,请考虑一下为什么要将报表ID存储为数组键和值...