html
  • forms
  • safari
  • 2009-07-21 32 views 0 likes 
    0

    我無法讓Safari將表單提交到受.htaccess保護的頁面。
    我減少了我的測試頁: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. 我有一個安全漏洞

    任何想法?

    我添加了一個缺失行.htaccess文件中上述(ErrorDocument 401 /errors/401.php),並提出了個人的提醒更新始終包括樣品中的一切(我應該知道這一點)。從Marie Fischer的意見幫助其結果是:

    Safari瀏覽器將無法提交表單到由.htaccess保護的頁面(這限制POST)如果.htaccess文件包括像的ErrorDocument:

    ErrorDocument 401 /errors/401.php 
    

    回答

    1

    您的示例是否可以與其他瀏覽器一起使用?它是否適用於require user而不是組?你看過你的服務器錯誤日誌嗎?

    編輯:我用你的例子做了一個快速測試,一切正常。

    +0

    它適用於Windows上的IE,Firefox和Chrome 2。 Mac上的Firefox偶爾會工作。 要求組和要求用戶之間沒有區別。 我還沒有發現任何特別的服務器日誌。 – 2009-07-21 10:30:17

    +0

    Windows上的Safari如何?如果您在Mac上遇到問題,那麼您是否嘗試完全關閉瀏覽器(小紅點不行,選擇退出菜單)並重新開始? – 2009-07-21 10:48:55

    0

    如果您在擁有表單的頁面上進行HTTP身份驗證,該怎麼辦?然後你登錄,它應該工作。要麼?

    相關問題