进行一些处理后,我想为用户输入设置一个 cookie 值,然后将它们重定向到新页面。但是,cookie 尚未设置。如果我注释掉重定向,则 cookie 设置成功。我认为这是某种标题问题。对于这种情况,最好的解决方法是什么?
if($form_submitted) {
...
setcookie('type_id', $new_type_id, time() + 60*60*24*30);
header("Location: $url");
exit;
}
请注意 setcookie 返回true
无论哪种情况,我都没有收到错误/警告/通知。
EDIT:我正在使用 Unix/Apache/MySQL/PHP
如果您有人类可读的网址或子文件夹(例如www.domain.com/path1/path2/ http://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/ 。默认
value 是当前目录
正在设置 cookie。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)