使用php ajax检查用户名和密码

使用php ajax检查用户名和密码,php,mysql,ajax,Php,Mysql,Ajax,我正在做一个与php相关的家庭作业。在分配中,需要登录页面。在此登录页面中,每个用户都需要输入其用户名和密码。这些用户名和密码将与mysql数据库中customer表中的值进行比较。如果密码和用户名与customer表中“cid”和“name”列下的记录一致,则会显示成功登录的通知 我有3个php文件,分别是loginGUI.php、check_login.php和db_connect.php db_connect.php: <?php $db_name="ozcan_b";

我正在做一个与php相关的家庭作业。在分配中,需要登录页面。在此登录页面中,每个用户都需要输入其用户名和密码。这些用户名和密码将与mysql数据库中customer表中的值进行比较。如果密码和用户名与customer表中“cid”和“name”列下的记录一致,则会显示成功登录的通知

我有3个php文件,分别是loginGUI.php、check_login.php和db_connect.php

db_connect.php:

  <?php
     $db_name="ozcan_b"; // Database name 
     $tbl_name="customer"; // Table name 
     //connect to db
     $con=mysql_connect("127.0.0.1","xxxxxx","xxxxxx");
     mysql_select_db("ozcan_b")or die("cannot select DB");
    // Check connection
    if (mysqli_connect_errno($con))
    {
    echo "Failed to connect to MySQL: " . mysql_connect_error();
    exit(0);
    }
 ?>

loginGUI.php:

<?php
   session_start();
   require_once ('db_connect.php'); // include the database connection 

?>

<html>
<head>
<title>
Login page
</title>
</head>
<body>
<h1 style="font-family:Comic Sans Ms;text-align="center";font-size:20pt;
color:#00FF00;>
Login Page
</h1>
<form name="myForm" method="POST" >    
Username<input type="text" name="userid"/>
Password<input type="password" name="pswrd"/>
<input type="button" value="Login" id='checklogin' onclick="check()"/>  
<div id='username_availability_result'></div>
</form>

<script language="JavaScript">

var xhr_request = false;
var checking_html = 'Checking...';  

    //when button is clicked  
    function check(){ 

        //Check the fields
        if(document.forms['myForm'].userid.value=="" || document.forms['myForm'].pswrd.value=="")
        {
            alert('Please enter your password and your username!');
        }

        else
        {

            //else show the cheking_text and run the function to check  
             //$('#username_availability_result').html(checking_html);  
            check_availability();  
        }   
    }

    //function to check username availability  
 function check_availability(){  
    //get the username  
    var userid = document.forms['myForm'].userid.value;  
    var pswrd = document.forms['myForm'].pswrd.value;


    //use ajax to run the check 

    var request = $.ajax(
    {
      url:check.php,
      type:POST,
      data:{pswrd:pass, userid:username}
      success:function()
      {

        alert("Success");
      }
    });



   </script>






</body>
</html>

登录页面

实际上,您并没有将
userid
pswrd
发送到PHP脚本。你不能只发送
$.ajax
随机属性,希望它能工作。您的数据需要进入
data
参数

$.ajax({
    type:"POST",
    url: "check_login.php",
    cache: false,
    data:{
        userid:userid,
        pswrd:pswrd
    },
    success: function(result){
        //if the result is 1  
        if(result == 1){  
            //show that the username is available  
            $('#username_availability_result').html(username + ' is Available');  
        }else{  
            //show that the username is NOT available  
            $('#username_availability_result').html(username + ' is not Available');  
        }  
    }
});
在我看来,您使用的代码来自不同的地方。您应该验证用户名/密码组合是否存在,而不是检查它是否可用

对不起,没有人会帮你做作业。这是一个很好的理由

<?php
    session_start();
    require_once ('db_connect.php');
    if(isset($_POST['pswrd']) && isset($_POST['userid']))
    {
        $sql = "SELECT * FROM users WHERE username='".mysqli_real_escape($dbc,        trim($_POST['userid'])."' AND password= '".mysqli_real_escape($dbc,    trim($_POST['pswrd'])."'");
        $result = mysql_query($dbc, $sql) or die("Could Not make request");
        if(mysql_num_rows($result) == 1)
        {
            //redirect to the welcome page
         }
         else
         {
             echo "User Not Found";
     }
    }
 ?>

您可以使用jquery ajax

<input type='text' id='username'/>
<input type='text' id='password'/>
<input type='button' id='submit'/>

<script type='text/javascript'>
  $(document).ready(function()
  {
     var pass = $("#password").val();
     var username = $("#username").val();
     $().click(function()
     {
         var request = $.ajax(
         {
             url:server.php,
             type:POST,
             data:{password:pass, username:username}
             success:function()
             {                 
               alert("Success");
             }
         });
   });       

问题可能是由于脚本标记中缺少type属性。应该是:

<script type="text/javascript" >


这应该可以解决问题。

不,它不再工作了:(.我认为我的文档还没有准备好,因为当我使用$(document).ready(function(){…})时,它不工作了。我该怎么办,我只有几个小时。((不,我不知道。即使我根据建议更改了一些行,我的代码也不工作。):(你在哪里包括jQuery库?你有任何其他的JS或CSS吗?我没有包括任何jQuery库!!我应该包括在哪里?我正在mac上使用TextWrangler编写所有php文件。请将其放在loginGUI.php的
部分:
好,我添加了,但它不会影响结果。我已经按照请在这个编辑版本上帮助我。你需要提供一些关于你收到的错误的详细信息。是的,因为我是php新手。不,它不工作!已经,$(文档)。就绪(函数()不工作。我该怎么办?它应该从页面中删除所有javascript,然后尝试这样的操作。$(文档)。就绪(function(){alert(“Hello World”);});请记住,这只在调用jquery文件的目录时起作用,并且必须放在调用jquery文件的目录之后……还要确保文件已找到jquery文件
<input type='text' id='username'/>
<input type='text' id='password'/>
<input type='button' id='submit'/>

<script type='text/javascript'>
  $(document).ready(function()
  {
     var pass = $("#password").val();
     var username = $("#username").val();
     $().click(function()
     {
         var request = $.ajax(
         {
             url:server.php,
             type:POST,
             data:{password:pass, username:username}
             success:function()
             {                 
               alert("Success");
             }
         });
   });       
</script>
<?php
   if(isset($_POST['password']) && isset($_POST['username']))
   {
      $sql = "SELECT * FROM users WHERE username='".mysqli_real_escape($dbc, trim($_POST['username'])."' AND password= '".mysqli_real_escape($dbc, trim($_POST['password'])."'");

  $result = mysqli_query($dbc, $sql) or die("Could Not make request");
  if(mysqli_num_rows($result) == 1)
  {
    //redirect

  }
 else
 {
      echo "User Not Found";

 }


   }


?>
<script type="text/javascript" >