2013-08-07 439 views
2

我從另一個網頁「http://www.javascriptkit.com/script/cut10.shtml」獲取了以下代碼。密碼保護頁面

<SCRIPT> 
function passWord() { 
    var testV = 1; 
    var pass1 = prompt('Please Enter Your Password',' '); 
    while (testV < 3) { 
     if (!pass1) history.go(-1); 
     if (pass1.toLowerCase() == "letmein") { 
      alert('You Got it Right!'); 
      window.open('protectpage.html'); 
      break; 
     } 
     testV+=1; 
     var pass1 = prompt('Access Denied - Password Incorrect, Please Try Again.','Password'); 
    } 
    if (pass1.toLowerCase()!="password" & testV ==3) history.go(-1); 
    return " "; 
} 
</SCRIPT> 
<CENTER> 
<FORM> 
<input type="button" value="Enter Protected Area" onClick="passWord()"> 
</FORM> 
</CENTER> 

它僅適用於第二次輸入密碼的情況,但不適用於第一次輸入密碼的情況。當你輸入密碼時,它說錯誤的密碼提示你再次輸入密碼,然後它會通過。我需要一個腳本,它會提示我正確的密碼,以防萬一我輸入了錯誤的密碼。因爲我是JavaScript的初學者,任何人都可以幫助我完成代碼。

+0

該鏈接工作正常嗎? –

+0

對我來說工作正常...... –

回答

0

試試這個..只需添加虛假的情況下,內拒絕訪問的提示...訪問鏈接時

function passWord() 
    { 
      var testV = 1; 
      var pass1 = prompt('Please Enter Your Password',' '); 
      while (testV < 3) 
      { 
        if (!pass1) 
        { 
          history.go(-1); 
          var pass1 = prompt('Access Denied - Password Incorrect, Please Try  
          Again.','Password'); 
        } 
        else if (pass1.toLowerCase() == "letmein") 
        { 
         alert('You Got it Right!'); 
         window.open('protectpage.html'); 
         break; 
        } 
        testV+=1; 

       } 
       if (pass1.toLowerCase()!="password" & testV ==3) 
       history.go(-1); 
       return " "; 
    } 
+0

「在虛假案件中拒絕訪問提示」我該怎麼做?初學者在這裏剛接觸腳本? – LouTrev

+0

你添加了這段代碼並試過了嗎? –

+0

Jus添加我在我的答案中提到的代碼..並嘗試讓我知道... –

3

您的代碼似乎工作

我知道你在學習。儘管如此,你不應該像這樣進行認證,因爲你並沒有真正保護任何東西。任何人都可以在任何瀏覽器中使用「查看頁面代碼」選項閱讀源代碼(通常在頁面上點擊右鍵)。這意味着任何人都可以輕鬆獲得您的密碼

對於真正的身份驗證,您應該使用服務器端語言(如PHP)或由您的Web服務器配置的HTTP Digest authentication。摘要有點過時了,因爲它使用MD5,但它比你所做的要好上百萬倍。

有關使用Apache Web服務器請參閱設置HTTP摘要的詳細信息:

http://httpd.apache.org/docs/2.2/mod/mod_auth_digest.html

做同樣與Nginx的:

http://wiki.nginx.org/HttpAuthDigestModule

HTTP Basic authentication工作過,但它以純文本形式從用戶瀏覽器傳輸密碼。使用HTTP摘要密碼是hashed

知道你在學習JavaScript,你最好的選擇是配置你正在使用的Web服務器。由於大多數虛擬主機服務都使用Apache,因此很可能使用.htaccess file。您可以搜索".htaccess http digest"以瞭解如何進行設置的教程。

某些虛擬主機服務具有控制面板,該控制面板具有使用摘要/基本身份驗證保護目錄的功能。在cPanel中,這很常見,它被稱爲"Password Protect Directories"

如果你更高級,我會建議用PHP來做,但這是一個相當複雜的主題。

+0

我想要做的只是用戶名進行密碼保護的頁面。當點擊按鈕進入時,他們會提示輸入密碼。如果你有一個好的腳本或頁面讓我知道謝謝... – LouTrev

+0

@ user2659279最好的辦法是在你的虛擬主機上設置HTTP摘要或基本身份驗證。大多數使用Apache,所以你可以用.htaccess文件來做到這一點。查看更新的答案。要點是,你的腳本並不能真正保護任何東西。文摘/基礎將爲您提供更好的保護(摘要首選)。 – Luke

0
//Add this to you script 
function run(){ 
var password = prompt("Password Please"); 
//Change to your own Password 
if(password != 'Sameer'){ 
document.body.innerHTML = ''; 
document.body.innerHTML = 'Password Failed! Reload to Renter Password'; 
}else{ 
alert('Success'); 
} 
} 
run(); 
0

我用了和你一樣的確切代碼,問題是第一次不知道在輸入前面加了一個空格是什麼原因。只要確保你沒有那個,那就沒問題。

+1

歡迎來到StackOverflow。其他用戶指出最佳答案中的鏈接代碼示例正常工作。我自己嘗試過,它也很好。 –