2011-02-12 26 views
2

我試圖將文件上傳到受保護文件夾的子文件夾。下面是層次結構是什麼樣子:PHP:使用PHP在上傳到受保護文件夾的子文件夾時使用.htaccess進行身份驗證

/basefolder(.htaccess)/tool/script.php

/basefolder(.htaccess)/tool/uploadhandler.php

/basefolder(。 htaccess的)/工具/文件/這裏(子文件夾)/

我basefolder簡單的.htaccess文件是:

AuthUserFile "/path/" 
AuthType Basic 
AuthName "Admin Dashboard" 
require valid-user 

該腳本將數據發送到典型的php上傳處理程序,該程序會嘗試將文件保存在子文件夾中。當代碼到達這個階段時,我的瀏覽器會提示我再次輸入用戶名/密碼。

有沒有一種方法來使用PHP進行身份驗證,以便我不會每次都提示輸入密碼?

+1

的可能欺騙[#2694697](HTTP:/ /stackoverflow.com/questions/2694697/htaccess-authentication-from-a-php-script-to-prevent-a-browser-dialog-box) – drudge 2011-02-12 00:53:02

+0

如果您的上傳處理程序將文件直接保存在工具文件夾中,那麼您仍然第二次獲得提示?必須檢查以確保工具文件夾,文件夾或子文件夾中沒有其他.htaccess文件? – 2011-02-12 00:55:30

回答

0

從HTTP密碼保護中免除upload.php文件,並使用會話或cookie設置允許用戶上傳。

例如,在與上載形式PHP文件:

session_start(); 
$_SESSION['can_upload'] = true; 
// this would only be set if the user could successfully access the upload form 
// page; sessions are preferable to cookies since anyone could set a cookie named 
// "is_allowed" to "1"—you would have to use some kind of token for validation 
// if you used a cookie 

然後在PHP文件處理文件上傳,

session_start(); 

if (! isset($_SESSION['can_upload'])) { 
    header("403 Forbidden"); 
    echo("You are not authorized!"); 
    die(); 
} 

// user is OK, put your upload logic here 
相關問題