我正在尝试构建一个不依赖于用户启用第三方Cookie的网站。
出于某种原因,当第三方cookie被阻止时(IE很好),我注意到仅在Firefox和Chrome中的一个简单的$ _POST变量。这只是POST。来自同一脚本的GET变量通常存储数据。
我已将IE隐私设置为“高”,以便“阻止所有没有隐私政策的Cookie”并且仍允许我的POST数据正常工作,可能是因为我在每个页面都有隐私政策。
当我在FF或Chrome中并取消选中“阻止第三方”Cookie时,那就没关系了。当我访问$ _POST ['foo']时,我得到了我期望的常用值。
有没有人知道可能会发生什么以及如何在这种情况下使用POST检索表单数据?我的代码如下。
感谢。
<form id="submission" enctype="plain" name="submission" method="post" action="../index.php?pub_path=<?php echo $path;?>" >
<input type="text" id="pubcomments" name="pubcomments" ></input>
<input type="submit" id="postIt" value="Post to forum"></input>
的index.php:
if (isset($_GET['pub_path'], $_POST['pubcomments'])) {
$path = $_GET['pub_path']; //shows the path
$comment = $_POST['pubcomments']; // $comment is null
}
答案 0 :(得分:0)
删除无效的enctype
- 浏览器不知道如何编码变量,PHP不知道如何解码它们。
参数在某些浏览器中作为请求主体正确发送(您可以使用file_get_contents('php://input')
看到),但不正确的内容类型请求标头意味着PHP不会将POST参数解码为$_POST
。