php& ajax返回错误的结果

时间:2013-12-14 02:54:15

标签: php html ajax

我是使用Javascript的新手,我想要做的是向php页面提交用户名和密码,然后检查它们是否存在于数据库中,以及它们是否加载了不同的页面。

目前,当我提交表单时,它返回值false。但是,如果我将值添加到php页面,则返回true。

所以我认为我必须在ajax和php之间遇到问题,但我无法看到我哪里出错了所以任何建议都会受到赞赏。

当我在chrome开发人员工具中运行代码时,控制台会显示以下警告:

event.returnValue已弃用。请改用标准event.preventDefault()

但我不确定它与它有什么关系,进行谷歌搜索似乎只是一个警告,但我没有看到任何其他警告。

HTML表单

 <label id="errorMessage"></label>
 <form  method="post" class="login">
   <input name="username" type="text" placeholder="Username"/>
   <input name="password" type="password" placeholder="Password"/>
   <input type="submit" name="login" class="login" value="Login" id="orange"/>
 </form>

Ajax

 $(document).ready(function(){
$('form.login').submit(function () {
var username = $(this).find('.username').attr('value');
var password = $(this).find('.password').attr('value');
// ...
    $.ajax({
        type: "POST",
        url: "login.php",
        data: "username="+ username +"& password="+ password,
        success: function(response){
         if(response == 'true')
                {
                     window.location.href='main.html';
                }
                else
                {
                    $("#errorMessage").html(response);
                }   
        }
    });
     return false;
      });
        });

PHP

   $username = mysql_real_escape_string($_POST['username']);
   $password = md5(mysql_real_escape_string($_POST['password']));

   if(!empty($username) && !empty($password))
   {
   $result = mysql_query("SELECT * FROM users WHERE username='$username' and  password ='$password'");
    $num_rows01 = mysql_num_rows($result);
    if($num_rows01 === 1)
     {
        echo 'true';
    }
    else
    {
        echo 'false';
    }
    }

1 个答案:

答案 0 :(得分:0)

您没有任何名为usernamepassword的课程。所以它不会检索这些值。

改变这个:

var username = $(this).find('.username').attr('value');
var password = $(this).find('.password').attr('value');

要:

var username = $("[name='username']").val();
var password = $("[name='password']").val();

注意:在客户端检索密码很危险,而且您的网站很有可能被黑客入侵。所以这种方法非常不安全,建议您使用正常的表单提交