php - Ajax 请求在我的 php 代码中不起作用

标签 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 部分,显示警告消息。

最佳答案

试试这个代码

  $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 的方式,为变量绑定(bind)参数。

关于php - Ajax 请求在我的 php 代码中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30695837/

相关文章:

javascript - 点击后滚动到顶部

javascript - 更改选项卡或最小化浏览器后日历再次出现

kubernetes 上的 MYSQL HA (vmware)

php - 无法将从数据库中检索到的信息插入到表单中

php - mysqli_fetch_assoc()性能PHP5.4与PHP7.0

PHP Str 用特殊 html 字符替换函数

php - 我的 SELECT COUNT 查询返回一个数组而不是整数

td标签内的javascript onclick

PHP/MySQL/AJAX - 使用 AJAX 刷新查询值

mysql - Scrapy/Pipeline 未将数据插入 MySQL 数据库