在做了一些处理之后,我想为用户输入设置一个cookie值,然后将它们重定向到一个新页面.但是,cookie没有设置.如果我注释掉重定向,则cookie已成功设置.我认为这是某种类型的标题问题.这种情况的最佳解决方法是什么?
if($form_submitted) { ... setcookie('type_id', $new_type_id, time() + 60*60*24*30); header("Location: $url"); exit; }
请注意,setcookie true
在任何一种情况下都会返回,我没有收到任何错误/警告/通知.
编辑:我使用的是Unix/Apache/MySQL/PHP
如果您有人工网址或子文件夹(例如www.domain.com/path1/path2/),则必须将cookie路径设置为/以适用于所有路径,而不仅仅是当前路径.
if($form_submitted) { ... setcookie('type_id', $new_type_id, time() + 60*60*24*30, '/'); header("Location: $url"); exit; }
从PHP手册:
服务器上可以使用cookie的路径.如果设置为"/",则cookie将在整个域中可用.如果设置为'/ foo /',则cookie只能在/ foo /目录和所有子目录中使用,例如/ foo/bar/of domain.默认值是设置cookie的当前目录.