2013-08-07 73 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。其他用户指出最佳答案中的链接代码示例正常工作。我自己尝试过,它也很好。 –