需要关于PHP/SQL登录函数的帮助吗

需要关于PHP/SQL登录函数的帮助吗,php,sql,Php,Sql,在你说之前:我知道密码应该加密/散列,但我想先记下来: 我有这个登录功能和一个SQL数据库。然而,登录功能似乎不起作用,我一点也不知道为什么。我可能错过了一些愚蠢的事情,但我已经为此奋斗了一段时间。任何帮助都将不胜感激 注意:文件db_connect.php实际上只是一个与数据库的基本连接,没有什么问题 FUNCTION.PHP: <? function login($username, $password, $con) { $myQuery = "SELECT *

在你说之前:我知道密码应该加密/散列,但我想先记下来: 我有这个登录功能和一个SQL数据库。然而,登录功能似乎不起作用,我一点也不知道为什么。我可能错过了一些愚蠢的事情,但我已经为此奋斗了一段时间。任何帮助都将不胜感激

注意:文件db_connect.php实际上只是一个与数据库的基本连接,没有什么问题

FUNCTION.PHP:

<?
function login($username, $password, $con) 
{       
    $myQuery = "SELECT * FROM Members WHERE Username = '$username' and Password = '$password';";
    $result = mysqli_query($con, $myQuery);

    if (mysql_num_rows($result) == 0)
    {
        return false;
    } 
    else
    {
return true;
    }
}
?>

您正在将MySQLi(
MySQLi\u query
)与MySQL(
MySQL\u num\u rows
)混合使用-选择其中一种(最好是前者)

如果您使用的是MySQL,
MySQL\u query
的参数顺序错误

除此之外,您无法将连接作为参数(as)传递到
登录


您似乎正在学习的一些其他信息:

  • login
    return
    语句可以简化为
    returnmysql\u num\u rows($result)==1。如果找到一条记录,则返回
    TRUE
    ,否则返回
    FALSE
    ——此处不需要
    if/else
    语句,您已经拥有了所需的逻辑
  • 现在,只要在浏览器中键入地址,任何人无需登录即可访问
    welcome.html
    。这可以通过使用来避免
  • 由于您没有正确地转义用户输入(用户永远不应该信任它!),因此很容易受到SQL注入的攻击
    mysql\u real\u escape\u string
    是一个开始,但是。如果你用另一只手,你就不用担心了
您正在将MySQLi(
MySQLi\u query
)与MySQL(
MySQL\u num\u rows
)混合使用-选择其中一种(最好是前者)

如果您使用的是MySQL,
MySQL\u query
的参数顺序错误

除此之外,您无法将连接作为参数(as)传递到
登录


您似乎正在学习的一些其他信息:

  • login
    return
    语句可以简化为
    returnmysql\u num\u rows($result)==1。如果找到一条记录,则返回
    TRUE
    ,否则返回
    FALSE
    ——此处不需要
    if/else
    语句,您已经拥有了所需的逻辑
  • 现在,只要在浏览器中键入地址,任何人无需登录即可访问
    welcome.html
    。这可以通过使用来避免
  • 由于您没有正确地转义用户输入(用户永远不应该信任它!),因此很容易受到SQL注入的攻击
    mysql\u real\u escape\u string
    是一个开始,但是。如果你用另一只手,你就不用担心了
您正在将MySQLi(
MySQLi\u query
)与MySQL(
MySQL\u num\u rows
)混合使用-选择其中一种(最好是前者)

如果您使用的是MySQL,
MySQL\u query
的参数顺序错误

除此之外,您无法将连接作为参数(as)传递到
登录


您似乎正在学习的一些其他信息:

  • login
    return
    语句可以简化为
    returnmysql\u num\u rows($result)==1。如果找到一条记录,则返回
    TRUE
    ,否则返回
    FALSE
    ——此处不需要
    if/else
    语句,您已经拥有了所需的逻辑
  • 现在,只要在浏览器中键入地址,任何人无需登录即可访问
    welcome.html
    。这可以通过使用来避免
  • 由于您没有正确地转义用户输入(用户永远不应该信任它!),因此很容易受到SQL注入的攻击
    mysql\u real\u escape\u string
    是一个开始,但是。如果你用另一只手,你就不用担心了
您正在将MySQLi(
MySQLi\u query
)与MySQL(
MySQL\u num\u rows
)混合使用-选择其中一种(最好是前者)

如果您使用的是MySQL,
MySQL\u query
的参数顺序错误

除此之外,您无法将连接作为参数(as)传递到
登录


您似乎正在学习的一些其他信息:

  • login
    return
    语句可以简化为
    returnmysql\u num\u rows($result)==1。如果找到一条记录,则返回
    TRUE
    ,否则返回
    FALSE
    ——此处不需要
    if/else
    语句,您已经拥有了所需的逻辑
  • 现在,只要在浏览器中键入地址,任何人无需登录即可访问
    welcome.html
    。这可以通过使用来避免
  • 由于您没有正确地转义用户输入(用户永远不应该信任它!),因此很容易受到SQL注入的攻击
    mysql\u real\u escape\u string
    是一个开始,但是。如果你用另一只手,你就不用担心了

    • 您没有为登录功能提供$con参数

      function login($username, $password, $con)
      
      你把它叫做

      login($username, $password)
      
      尝试提供连接参数,看看它是否有效


      还请注意kingkero的回答。您正在使用来自不同库的函数。

      您没有为登录函数提供$con参数

      function login($username, $password, $con)
      
      你把它叫做

      login($username, $password)
      
      尝试提供连接参数,看看它是否有效


      还请注意kingkero的回答。您正在使用来自不同库的函数。

      您没有为登录函数提供$con参数

      function login($username, $password, $con)
      
      你把它叫做

      login($username, $password)
      
      尝试提供连接参数,看看它是否有效


      还请注意kingkero的回答。您正在使用来自不同库的函数。

      您没有为登录函数提供$con参数

      function login($username, $password, $con)