0

我现在坐了大约 3 个小时,我无法解决这个问题。

每次我想登录它都会说错误(未找到用户)。

下面是登录功能:

if($_SERVER['REQUEST_METHOD'] === 'POST' && $_POST['submit']=="login") {
    if(!empty($_POST['username']) && !empty($_POST['password']) && checkAnum($_POST['username']) && checkAnum($_POST['password'])) 
    {

      $Cmdlogin = "SELECT * FROM database.account WHERE username='".$_POST['username']."' AND password=PASSWORD('".$_POST['password']."') LIMIT 1";
      $sqllogin = mysqli_query($sqlHp,$Cmdlogin);
      if(mysqli_num_rows($sqllogin)>0)
      {
        $getAdmin = mysqli_fetch_object($sqllogin);
        $_SESSION['user_id'] = $getAdmin->id;
        $_SESSION["user_username"] = $getAdmin->username;
     }else{echo'error';}
    }
  }

这是表格:

<FORM action="index.php?s=login" method="POST">
                <TD>
                    <TABLE>
                        <TR>
                            <TD align="left">Username</TD>
                            <TD align="left"><input type="text" name="username" maxlength="15"/></TD>
                        </TR>
                        <TR>
                            <TD align="left">Password</TD>
                            <TD align="left"><input type="password" name="password" maxlength="30"/></TD>
                        </TR>
                    </TABLE>
                    <BR>
    <input type="submit" class="button" value="login" name="submit" />
</FORM>

有谁可能知道出了什么问题?我不明白。这真的让我发疯了,stackoverflow 是我最后的希望。

编辑:我已经修好了。密码行的长度设置得太 30,而密码需要超过 30 个字母。

4

2 回答 2

0

添加session_start();

session_start();
$_SESSION['user_id'] = $getAdmin->id;
$_SESSION["user_username"] = $getAdmin->username;
于 2013-11-07T05:50:09.737 回答
0

我认为你应该把 $_POST 放在变量中

$user = $_POST['username'];
$pass = $_POST['password'];
$Cmdlogin = "SELECT * FROM database.account WHERE username='".$user."' AND password=PASSWORD('" . $pass . "')' LIMIT 1";
于 2013-11-07T06:44:31.500 回答