我无法让Safari将表单提交到受.htaccess保护的页面 我已将测试页面缩小为:
<html>
<body>
<?php
if(isset($_REQUEST["name"]))
echo "<p>You entered: ", $_REQUEST["name"], "</p>";
?>
<form method='post' action='index.php'>
<p><input type='text' NAME='name'>
<input type='submit' name='send' value='Send'></p>
</form>
</body>
</html>
如果我删除了.htaccess文件,则上面的页面运行没有任何问题 使用此.htaccess文件,Safari将永远不会完成加载页面:
AuthUserFile /xxxx/xxxx/.htpasswd
AuthGroupFile /xxxx/xxxx/.htgroup
AuthName Members
AuthType Basic
<Limit GET POST>
require group XXXXX
</Limit>
ErrorDocument 401 /errors/401.php
此问题是否有解决方法?
更新
我可以删除.htaccess文件中的POST限制:
<Limit GET>
require group XXXXX
</Limit>
这适用于上述测试用例,但我不会再登录了,这意味着:
$_SERVER["PHP_AUTH_USER"]
有什么想法吗?
更新2
我在上面的.htaccess文件中添加了一个缺失的行(ErrorDocument 401 /errors/401.php
)并提出了一个个人提醒,要求始终包含样本中的所有内容(我应该知道这一点)。在Marie Fischer的评论的帮助下,结果证明:
.htaccess
文件包含ErrorDocument,Safari将无法将表单提交到受.htaccess
保护的页面(这会限制POST):
ErrorDocument 401 /errors/401.php
答案 0 :(得分:1)
您的示例是否适用于其他浏览器?它适用于require user
而不是群组吗?你看过你的服务器错误日志吗?
编辑:我使用您的示例进行了快速测试,一切正常。
答案 1 :(得分:0)
如果您在拥有表单的页面上进行HTTP身份验证,该怎么办?然后你登录了它应该工作。或?