Safari不适用于.htaccess网站上的表单

时间:2009-07-21 10:01:45

标签: html forms safari

我无法让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>

这适用于上述测试用例,但我不会再登录了,这意味着:

  1. 我无法访问$_SERVER["PHP_AUTH_USER"]
  2. 我有一个安全漏洞
  3. 有什么想法吗?

    更新2

    我在上面的.htaccess文件中添加了一个缺失的行(ErrorDocument 401 /errors/401.php)并提出了一个个人提醒,要求始终包含样本中的所有内容(我应该知道这一点)。在Marie Fischer的评论的帮助下,结果证明:

    如果.htaccess文件包含ErrorDocument,Safari将无法将表单提交到受.htaccess保护的页面(这会限制POST):

    ErrorDocument 401 /errors/401.php
    

2 个答案:

答案 0 :(得分:1)

您的示例是否适用于其他浏览器?它适用于require user而不是群组吗?你看过你的服务器错误日志吗?

编辑:我使用您的示例进行了快速测试,一切正常。

答案 1 :(得分:0)

如果您在拥有表单的页面上进行HTTP身份验证,该怎么办?然后你登录了它应该工作。或?