2011-06-12 27 views
1

我正在構建PHP/MySQL Web應用程序。用戶登錄並設置各種會話變量。在PHP中應用.htaccess文件夾用戶名/密碼

在Web服務器上有一個用戶可以上傳文件的文件夾(任何種類 - 圖像,pdf,.doc等)。我想保護這個文件夾,以防止沒有登錄的人輸入網址並獲得這些文件。瀏覽該文件夾中的文件是不允許的。

我可以使用我的cpanel應用密碼,它很好地工作。但是,這意味着用戶必須登錄到應用程序,然後第一次導航到此受保護文件夾中的文件時,系統會提示他們輸入受保護文件夾的用戶名/密碼。我想這樣做,所以他們不必輸入受保護文件夾的用戶名/密碼。

有沒有什麼辦法,當用戶登錄,設置他們的會話變量,在同一時間 - 使用PHP - 也設置受保護的文件夾的用戶名/密碼 - 所以他們不提示? 謝謝。伊恩。

回答

0

我接觸到的方式是,他們認爲他們訪問的受保護文件夾不是實際的受保護文件夾,會發生什麼情況是您只能通過PHP與它進行交互,並且他們是否已登錄(您可以做一個假的。 htaccess通過發送相應的網絡驗證代碼見http://php.net/manual/en/features.http-auth.php

從那裏,如果他們「登錄」你可以告訴,他們可以顯示的代碼,如果沒有,你可以說「你沒有登錄,如果你希望訪問此區域,您將需要登錄「。

其簡單而有效。

當然記得,明智的人知道你是否做http://user:[email protected]/files它會自動發送網絡認證信息。

+0

感謝您的回覆,但我不太關注。我看了一下http auth頁面鏈接。是否可以將$ _SERVER ['PHP_AUTH_USER']&$ _SERVER ['PHP_AUTH_PW']的值設置爲加載頁面,這樣用戶不會被提示輸入受保護的文件夾user/pw?我不知道你可以將user/pw添加到url - 彈出式窗口中關於它們作爲純文本發送的警告現在有意義!我認爲這可能是答案,將用戶/ pw添加到從php頁面點擊的url--但是它在IE中不起作用。 – 2011-06-12 12:12:05

+0

取決於您如何檢查用戶名/密碼我猜,但它應該工作。它當然應該阻止用戶名/密碼提示。同樣可以通過IE使用ftp。 – BugFinder 2011-06-12 18:33:40

0

我不認爲你可以從.htaccess級別獲得PHP會話變量。

你可以做的是重寫對PHP腳本的任何訪問,檢查登錄用戶並返回文件或重定向到「未登錄」頁面。

0

我已經做了這幾年,但它與cPanel工作得很好:我編程調用cPanel的目錄保護設置頁面,並在那裏添加用戶名/密碼。所以cpanel負責管理服務器。但是,如果這仍然有效,我不知道。

有一個庫可供您用來創建.htaccess和.htpasswd文件。我從來沒有使用它,所以我不能說它是否工作:Class: PHP Functions Class

我有點記得一些其他的圖書館,以及只有.htaccess和.htpasswd的東西,所以你可能會發現別的東西在搜索互聯網。