[@downvote 和白痴言论,殴打别人并不酷。在提出问题之前,我花了整整 3 天时间重新检查了文档和课程笔记 - . 像詹姆斯所做的那样,关闭它是为了防止一群白痴发表无用且实际上不正确的评论。感谢 Charles 和 Brent B 的帮助。事实证明这不是 Safari 问题,所以我删除了这些标签。]
$_SESSION 未在 Safari 中设置,因此我的多页表单中断。$_POST, $_REQUEST 确实被设置(但显然在后续页面上消失)。版本是 PHP:5.3.1,Safari 5。
帮助!以下任何一项都不是问题,我检查了所有内容,并阅读了所有其他相关问题:
- session_start() 有效。SID/PHPSESSID 跨页面保留。
- session.use_cookies = 1,session.use_only_cookies = 1
- 我检查了php.ini并认为它没问题
- 我确实将 Safari 配置为接受所有 cookie(现在)。没有不同。
- 我可以手动设置$_SESSION['debug']并且确实跨页面保留(并且会话文件被正确写出)。除非我这样做,否则$_SESSION永远不会被定义。
我没有时间调试这种废话,那么以下最后一分钟的解决方法中哪个最不难看?(这是一个编程作业,不是生产代码)根据课程说明,$_SESSION 应该合并 $_POST、$_REQUEST、$_GET、会话和全局变量对吗?
- 手动执行$_SESSION = array_merge($_SESSION,$_POST); [这有效]
- 使用隐藏表单在后续表单上重新发布$_POST
- 其他?
(更广泛地说,是否应该简单地认为 PHP 在 Safari (5) 上被破坏了?)