2013-12-26 3 views
-4

Они получают имя пользователя и пароль, введенные пользователем, и ожидается, что они будут отправлены в файл validate.php, чтобы проверить, имеются ли записи в базе данных или нет. и получает ответ.Проверка формы входа в систему с помощью php и javascript

<script type="text/javascript"> 
function validatelogin() { 
    var user=document.forms["login"]["username"].value; 
    var pass=document.forms["login"]["password"].value; 
    if(user==null || user=="") { 
     alert("Please enter username"); 
     $('#username').focus(); 
     return false; 
    } else if(pass==null || pass=="") { 
     alert("Please enter password"); 
     $('#password').focus(); 
     return false; 
    } else if(user!==null || user!=="" || pass!==null || pass!=="") { 
     // These gets the username and password inputted by the user and is 
     // expected to be sent to the validate.php file to check whether the 
     // records is present in the database or not. and receives a response. 
     $.ajax({ 
      url : "validate.php", 
      type : 'POST', 
      data : $('#login').serialize(), 
      success : function(msg) { 
       $('#login-box').html(msg); 
      } 
     }); 
     return false; 
    } else { 
     alert("form submitted"); 
    } 
} 
</script> 

PHP файл используемый в запросе базы данных, чтобы проверить существующие записи и, как ожидается, вызовет истинный или ложный ответ обратно Аякс -Пожалуйста, как я могу сделать this.then оттуда код теперь может решить, следует ли войдите в систему или нет.

<?php 
    error_reporting(0); 
    mysql_pconnect("localhost","root",""); 
    mysql_select_db("sim_tracker"); 
    $username=$_POST['username']; 
    $password=$_POST['password']; 
    mysql_query("select * from tbl_user where 
     username='$username' and password='$password'"); 
    $row=mysql_affected_rows(); 
    if($row>0) { 
     return false; 
     echo"$username,$password"; 
    }  
?> 

HTML

<div id="login-box" class="login-popup"> 
    <a href="#" class="close"> 
     <img src="images/close_pop.png" class="btn_close" 
      title="Close Window" alt="Close" /> 
    </a> 
    <form method="post" id="login" class="signin" 
     action="#" onSubmit="return validatelogin()"> 
     <fieldset class="textbox">  
      <label class="username"> 
       <span>Username or email</span> 
       <input id="username" name="username" value="" 
        type="text" autocomplete="on" placeholder="Username"> 
      </label> 
      <label class="password"> 
       <span>Password</span> 
       <input id="password" name="password" value="" 
        type="password" placeholder="Password"> 
      </label> 
      <button class="submit button" type="submit">Sign in</button> 
      <p> 
       <a class="forgot" href="#">Forgot your password?</a> 
      </p> 
     </fieldset> 
    </form> 
</div> 
+0

Я думаю, что люди с трудом находя вопрос в этом. У вас есть вопрос о чем-то конкретном? –

ответ

0

Я вижу, по крайней мере, 2 проблемы в вашем коде:

  • mysql_affected_rows() не будет ссылаться запроса на выборку, вы ищете mysql_num_rows()
  • Ваш echo-оператор никогда не будет выполнен, потому что перед ним стоит возврат, поэтому ваш сценарий будет в обоих случаях (либо информация для входа была правильной, либо n ot) ничего не возвращает. Так вот некоторые лучше код:
 
    $result = mysql_query("select * from tbl_user where username='$username' and password='$password'"); 
    $row_count = mysql_num_rows(); 
    if ($row_count > 0) { 
     // login correct, add some code to actually log the user in (i. e. some session stuff) 
     echo "You were logged in!"; // if you want just true or false say echo 1 instead 
    } 
    else { 
     // login incorrect 
     echo "Wrong username or password!" // or again echo 0 
    } 
Смежные вопросы