使用jQuery,Ajax和PHP进行登录检查

在检查用户的登录详细信息时,我一直在努力了解jQuery的工作原理。 我创建了这些页面:

  1. db.php(数据库连接)
  2. signin.html(登录表格)
  3. check.php(登录检查 – MySQL选择)
  4. myscript.js(jQuery)

登录表格:

  



myscript.js

  $(document).ready(function (){ $("#submit").click(function (){ alert("hi"); if($("#email").val()==""||$("#pass").val()=="") $("div#ack").html("please enter email and pass"); else $.post( $("#myForm").attr("action"), $("#myForm :input").serializeArray(), function(data){ $("div#ack").html(data); }); $("#myForm").submit( function(){ return false; }); }); }); 

check.php

 $email = $_POST['emailid']; $pass = $_POST['password']; include "db.php"; $sql = "select count(*)from students where email = '$email' and password = '$pass';"; $result = mysqli_query($con,$sql); $row=mysqli_fetch_array($result); if($row[0]>0) echo "found result"; else echo "no result"; 

一切都很好。 唯一的问题是数据没有发布。 即使我输入了值,$ _POST []也会收到空值。

请帮忙。

更改了代码,它现在正在运行。 感谢您的投入。

我发布了错误的数据。

  $(document).ready(function (){ $("button#submit").click(function (){ alert("hi"); e = $("#email").val(); p = $("#pass").val(); if($("#email").val()==""||$("#pass").val()=="") $("div#ack").html("please enter email and pass"); else $.post( $("#myForm").attr("action"), //$("#myForm :input").serializeArray(), {emailid: e, password: p}, function(data){ $("div#ack").html(data); }); $("#myForm").submit( function(){ return false; }); }); }); 

改变表格行动

 

 

你应该逃避这些投入。 你永远不能相信用户输入。

  

请记住,您很可能需要包含活动数据库连接。

您应该发布到正确的文件,在您的表单中,您需要将操作从login.php更改为check.php

在表单标签中放置action =“javascript:void(0)”,一切都很棒