Я не могу заставить 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
Есть ли решение этой проблемы?
Обновление
Я могу снять ограничение POST в файле .htaccess:
<Limit GET>
require group XXXXX
</Limit>
Это будет работать для приведенного выше теста, но я больше не буду входить в систему, что означает, что:
- У меня нет доступа к
$_SERVER["PHP_AUTH_USER"]
- У меня дыра в безопасности
Есть идеи?
Обновление 2
Я добавил отсутствующую строку в файл .htaccess выше (ErrorDocument 401 /errors/401.php
) и сделал личное напоминание, чтобы всегда включать все в примеры (я должен это знать). Благодаря комментариям от Мари Фишер получается, что:
Safari не сможет отправить форму на страницу, защищенную .htaccess
(которая ограничивает POST), если файл .htaccess
содержит ErrorDocument, например:
ErrorDocument 401 /errors/401.php