2017-05-13 16 views
0

私は3つの入力ログインを試行すると自動的にブロックするログインフォームを作成しています。しかし、問題は、1回のログイン後に既にブロックされていることです。すべてのユーザーがブロックされました。私は入力したユーザー名がブロックされる3回後にしか欲しくない。誰か助けてくれますか?ありがとう。ここログイン後にすべてのユーザーがブロックされました

私のコードがある...私は例えば、私は最初のログインを試みる場合、私は、プログラムを実行し、私のCTRの== 3 .IFで関数を呼び出すたび

<!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> 

間違ったユーザー名。私は簡単にブロックに更新するテキストをログイン]をクリックした後、.Iは、それがブロックがされる前に、私のカウンターを3回にしたいと私は入力のみがブロックされるユーザーを望んでいないすべてのユーザー

+0

セッションを使用してper usrrベースに保存することができます... –

+0

私はそれをすることができますか? –

答えて

0
あなたはを追跡する必要があります

データベース内でカウントに失敗したか、または有効な資格情報でログインに失敗するたびに増分カウントを書き込みます..

+0

どうすればいいですか? :( –

関連する問題