登录后,所有用户都被阻止

时间:2017-05-13 15:49:40

标签: javascript html ajax xml dom

我正在创建一个登录表单,如果用户尝试3输入登录,它将自动阻止。但问题是1次登录后才会阻止。并且所有用户都被阻止了。我只想在输入的用户名3次之后才会被阻止。有人可以帮助我吗?谢谢。

这是我的代码......

<!DOCTYPE html>
<?php
    function p(){
    $xmldoc=new DOMDocument();
    $xmldoc->load('person.xml');
    $root=$xmldoc->documentElement;
    $data=$root->getElementsByTagName('user');

    $status="Blocked";

    if($data){
        $domelemupdate=[];
        foreach ($data as $domElement) {

            $domElement->childNodes->item(5)->textContent=$status;
        }
    }
    foreach ($domelemupdate as $domElement) {
        # code...
        $domElement->parentNode->replaceChild($domElement);
    }

    $xmldoc->save('person.xml');
}
    ?>

<html>
    <head>
    <body>
    </body>
    </head>
</html>

var ctr=0;        
        window.login = function(e)


    {

        if (document.frmlogin.login_username.value == "") 
        {
            alert("User name is not blank");
            return;
        }
        else if(document.frmlogin.login_pass.value == "")
        {
            alert("Password is not blank");
            return;
        }

        else
        {
            var xmlDoc;
            var x;    
            var txt = "";

            if (window.XMLHttpRequest) {
                xhttp = new XMLHttpRequest();
            } else {    // IE 5/6
                xhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }

            xhttp.overrideMimeType('text/xml');

            xhttp.open("GET", "person.xml", false);
            xhttp.send(null);
            xmlDoc = xhttp.responseXML;


            var ktra=false;
            var xml=xmlDoc.childNodes[0];

            var name = xml.childNodes["username"];        
            var pass=xml.childNodes["password"];
            var status=xml.childNodes["status"];

            for(var i=0;i<xml.childNodes.length;i++){
                if(xml.childNodes[i].nodeName=="user"){
                    name = xml.childNodes[i].childNodes[3];
                    pass = xml.childNodes[i].childNodes[5];
                    status = xml.childNodes[i].childNodes[7];
                    position = xml.childNodes[i].childNodes[9];

                    if(name.textContent==frmlogin.login_username.value && pass.textContent==frmlogin.login_pass.value && status.textContent== "Active")
                    {
                        alert("Login Success!");

                }
            }
            if(ktra==false)
            {
                ctr+=1

                alert("Login Failed !!!" +ctr);

                if(ctr==3){

                    //alert("You are now Blocked!!!" );
                   x=p()
                   alert(x);



                }
            }
        }
    }

</script>

每当我在我的ctr == 3中调用该函数时。如果我运行该程序,例如我尝试首先登录错误的用户名。点击登录后,文字很容易更新到阻止,.i想要我的计数器3次才会被阻止,我希望我输入的用户只会被阻止而不是所有用户

1 个答案:

答案 0 :(得分:0)

您应该在数据库中跟踪失败的计数,或者每次无法使用有效凭据登录时向XML文件写入增量计数。