PHP 查询无法检查数据库中的用户名

标签 php mysql ajax

所以我创建了一个函数来检查用户输入的数据是否已经在我的用户数据库中。该函数在测试环境中运行(但在页面打开时运行)。由于某种原因,它会将用户输入分配给 $username 函数,而不管查询的结果如何。我想我可能必须 AJAX 它,但我不知道如何。

  <?php

  function checkIfEntered($data, $conn)
  {
     $query = "SELECT * FROM users
        WHERE username= '" . $data . "'";

        if ($result = mysqli_query($conn, $query)) {

      /* determine number of rows result set */
      $row_cnt = mysqli_num_rows($result);

      /* close result set */
      mysqli_free_result($result);

    }

    if (($row_cnt) >= 1)
    {
      return TRUE;
    }

    if (($row_cnt) == 0)
    {
      return FALSE;
    }
  }

  error_reporting(E_ALL);
  ini_set('display_errors',1);
  // define variables and set to empty values
  $servername = "localhost"; $username = "root";
  $password = "root";
  $dbname = "MyDatabase";

  // Create connection
  $conn = new mysqli($servername, $username, $password, $dbname);
  // Check connection
  if ($conn->connect_error) {
      die("Connection failed: " . $conn->connect_error);
  }
  $email = '';
  $emailErr = '';
  $usernameErr = '';
  $UserPasswordErr = '';
  $username = '';
  $UserPassword = '';
  $confirm = '';
  $confirmErr = '';
  function test_input($data) 
  {
     $data = trim($data);
     $data = stripslashes($data);
     $data = htmlspecialchars($data);
     return $data;
  }
  if ($_SERVER["REQUEST_METHOD"] == "POST") 
    {
     if (empty($_POST["username"])) 
     {
       $usernameErr = "username is required";
     } 
     else 
     {
      if (checkIfEntered($username, $conn))
     {
      $usernameErr = "There is already a user with the username: " . $username;
     }
     else
     {
       $username = test_input($_POST["username"]);
     }
     }

最佳答案

您甚至没有调用“checkIfEntered”函数。相反,您正在调用“isEnteredUsername”函数,我在这里没有看到它。所以代码总是进入 else 并将 POST 值分配给 $username。 我不知道为什么你认为 AJAXing 可以解决问题,但你可以在文档准备好或像 $.ajax({ ... }) 这样的事件上使用 AJAX 调用,如此处所述。 http://api.jquery.com/jquery.ajax/

关于PHP 查询无法检查数据库中的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37517417/

相关文章:

MySQL - 根据相同日期条目删除重复项

php - 浏览器忽略来自 ajax 响应的 header 刷新

php - 通过 JS 更新的表单输入未提交

php - 正则表达式 - Unicode 属性引用和示例

php - mysql 到 php 电子邮件设置

php - 如果用户在浏览器上单击关闭,则从 mysql 表中删除用户 session

php - yii向第三张表插入数据

javascript - 如何使用 Javascript/Ajax 但不使用 jQuery 获取远程 url 的状态代码?

javascript - 如何从javascript下载文件

php - 1064 预约 Pro 出错