我从另一个网页“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 :(得分:3)
访问链接时,您的代码似乎工作。
我知道你在学习。尽管如此,你不应该像这样进行身份验证,因为你并没有真正保护任何东西。任何人都可以在任何浏览器中使用“查看页面代码”选项来阅读源代码(通常是右键单击页面)。这意味着任何人都可以轻松获取您的密码。
对于真正的身份验证,您应该使用服务器端语言(如PHP)或Web服务器配置的HTTP Digest authentication。 Digest因使用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服务器。由于大多数Web托管服务都使用Apache,因此您最有可能使用.htaccess file。您可以搜索".htaccess http digest"以获取有关如何进行设置的教程。
某些网络托管服务的控制面板具有使用Digest / Basic身份验证保护目录的功能。在cPanel中,这很常见,它被称为"Password Protect Directories"。
如果你更高级我建议用PHP做,但这是一个相当复杂的主题。
答案 1 :(得分:2)
//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();
答案 2 :(得分: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 " ";
}
答案 3 :(得分:0)
我使用的是与您完全相同的代码,问题是第一次不知道它在输入前面添加了一个空格的原因。只要确保你没有那个就可以了。