2015-06-10 532 views
-1

我想創建一個密碼保護的網站。在這裏,我想要如果用戶第一次訪問我的網站,然後需要插入密碼來訪問我的網站。他們第一次輸入密碼就可以自由訪問我的網站。網站訪問通過密碼保護

這是它使用javascriptphp我該怎麼辦:

<?php if($page == 'index'): ?> 
    <script language="Javascript"> 
      //prompt. 
      var password; 
      var correctPass = "123456"; 
      password = prompt("Enter in the password:",""); 

      if(password == correctPass) { 
        alert('click OK to view this site'); 
      } else { 
        window.location = "http://google.com" 
      } 
      //-> 
    </script>    
<?php endif; ?> 

這是工作,但我的問題是,如果用戶去索引頁他們又需要插入密碼。

任何人都可以告訴我如何解決這個問題。 謝謝。

+0

您需要的邏輯不會工作使用cookies或會話數據庫中保存的用戶IP地址並且每次請求將來自同一個IP時檢查。如果相同,則允許其他驗證。 – Deep

+1

對於匿名用戶,考慮將信息存儲在cookie中,因爲您無法記住哪個用戶輸入了密碼,但它將依賴於瀏覽器! – Rohit416

+0

@DeepKakkar,我可以在不使用數據庫的情況下執行此操作嗎?謝謝 – user3733831

回答

5

不要在JavaScript中執行此操作。任何人都可以查看您的源代碼並查看密碼。改爲使用PHP進行密碼檢查。然後使用$_SESSION變量來保存他們在您的網站上的狀態。您也可能想要使用$_COOKIE變量進行長期訪問,但只有$_SESSION本身通常在密碼訪問的大多數情況下更受歡迎。

另一種方法是使用您的Web服務器。例如,如果您使用的是Apache,則可以在網站的根目錄下創建一個.htaccess文件以詢問名稱和密碼。這樣你甚至不需要編寫任何代碼。

要執行第二個選項,請在Web目錄的根目錄下創建一個名爲.htaccess的文件。在把這個文件:

AuthType Basic 
AuthName "Password Protected Area" 
AuthUserFile /opt/passwords/.htpasswd 
Require valid-user 

(這裏的/ opt /密碼是一個目錄位置,你的web目錄之外它可以是任何你想要的,你只是想確保它是不是你的網絡內的任何地方。目錄(否則它將可供公衆查看))。

在該目錄中,創建一個名爲.htpasswd的文件。這個文件只需要一個用戶名和加密的密碼。此頁面將允許您使用密碼加密創建您的名字:http://www.htaccesstools.com/htpasswd-generator/。只需將其粘貼到您的.htpasswd文件中即可。

即便如此,如果您只使用http而不是https,但您使用的任何密碼都可以被攔截,但如果您之前沒有使用http,則設置https會有點困難。

+0

你能告訴我一個例子嗎?謝謝。 – user3733831

+0

你更喜歡哪種選擇? (我添加了一個替代我的答案)。 – kojow7

+0

第二種方法更好... – user3733831

1

這並不安全。用戶可以禁用JS。

正確的方法之一是使用http auth

1

首先你把簡單的密碼在java腳本本身? 從來沒有做到這一點,也

如果($頁==「指數」)

始終構成爲true,以便