为什么这认为它是正确的?

时间:2014-02-07 04:49:00

标签: javascript

我是js的新手,我有这个非常简单的代码。它应该是一个登录,它不起作用。我不需要任何关于使其更好的提示,我打算在这开始工作时这样做。

<!DOCTYPE html>
<head> Sign-in  </head>
<body>
<script type="text/javascript">
    var em = prompt("Enter E-mail Here:")
        if(em = "I hid this to prevent spam"){
            var pa = prompt("Enter Password Here:")
                if(pa = "jct28if5"){
                    alert("Welcome!")
                 }
                else{
                    alert("Incorrect password!")
        }
    }
        else {
            alert("Invalid e-mail!")
}
</script>
</body>
</html>

它现在正在做的是无论如何,它认为使用了正确的电子邮件和密码。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

我已经修改了你的代码了。有些事情需要注意。

您不能将原始内容放在<head>

您的密码位于页面的原始源中,因此任何人都可以查看页面源并查看正确的密码。这是一个绝对可怕的设计。密码应该传递到服务器端,在那里检查它们的有效性。

在C之类的编程语言中,例如Javascript,==测试相等性并返回一个布尔值。 =符号为变量赋值。

<!DOCTYPE html>
<head>
<title>Sign-in
</title>
<script type="text/javascript">
    var em = prompt("Enter E-mail Here:")
        if(em == "I hid this to prevent spam"){
            var pa = prompt("Enter Password Here:")
                if(pa == "jct28if5"){
                    alert("Welcome!")
                 }
                else{
                    alert("Incorrect password!")
        }
    }
        else {
            alert("Invalid e-mail!")
}
</script>
</head>
<body>
</body>
</html>

答案 1 :(得分:0)

已修复

var em = prompt("Enter E-mail Here:")
            if(em === "I hid this to prevent spam"){
                var pa = prompt("Enter Password Here:")
                    if(pa === "jct28if5"){
                        alert("Welcome!")
                     }
                    else{
                        alert("Incorrect password!")
            }
        }
            else {
                alert("Invalid e-mail!")
    }

当您为变量赋值时,使用单个=。像var x = 1。 但是如果要检查相等性,请使用===。喜欢if(x === 1)

答案 2 :(得分:0)

只需添加一个:

==检查值 ===检查值和类型

停用js或不支持curl / wget和其他人的人不会被此停止,除非你用js加载整个网站,可能是愚蠢的原因搜索引擎可能不会索引内容

希望这有帮助。