Ajax请求不能在我的PHP代码中工作

时间:2015-06-07 16:26:13

标签: php jquery mysql ajax

我正在向php页面发送ajax请求,我正在检查我的用户名和密码。这可能是ajax代码:

success: function(response)
            {
                if(response === "success"){             
                                                    $(location).attr('href','adminHome.php');
                                        }
                else
                    $("#message").html('<p class="error">ERROR: Invalid username and/or password.'+response+'</p>');
            }   

在PHP代码中我连接到数据库。并检查用户名密码是否存在。

这是我的PHP代码

  $sql="SELECT * FROM mainadmin where username='$username' and password='$password'";
            $result = mysql_query($sql);
            $numrows = mysql_num_rows($result);
            while ($row = mysql_fetch_array($result))
            {
                echo $row['username']." ".$row['password'];
            }
            if($numrows>0)
            {
                $_SESSION['username'] = $username;
                echo "success";                  
            }

正在从数据库返回正确的用户和密码,而不是将其重定向到adminHome.php页面。我在做什么错误?代码总是在ajax中执行成功的else部分,显示警告消息。

1 个答案:

答案 0 :(得分:0)

试试此代码

  $sql="SELECT * FROM mainadmin where username='$username' and password='$password'";
  $result = mysql_query($sql);
  $numrows = mysql_num_rows($result);
  $row = mysql_fetch_array($result);

  if($numrows>0)
  {
      $_SESSION['username'] = $username;
      echo "success";                  
  } else {
      echo 'error';
  }

我认为问题是因为你正在回显用户名和密码,然后成功,所以当你检查$ result的值时,它与你的想法不相符。

我真的希望你也在清理$ username和$ password变量,我建议你迁移到使用PDO而不是mysql_函数,因为它们已被弃用,并且将在不久的将来从PHP中删除。如果您不能或不希望使用PDO,那么只需迁移到使用mysqli_ *函数或对象即可。我强烈建议您使用绑定参数为PDO选择PDO的路径。