登录系统与会话和mysqli做错了什么

时间:2014-05-17 17:40:41

标签: php mysqli

大家好我正在尝试为学校项目制作一个简单的登录系统,当我没有实现数据库时,我让它工作。但正如你现在可以看到我试图实现数据库它不能很好地工作,因为我无法在回声的开始和结束时制作PHP标签,无论如何谁能帮助我? 正如我所说的那样,当我刚写了一个随机的用户名和密码,并且没有任何数据库的东西。

  <?php
    session_start();
    include('../inc/dbconnection_inc.php');
    $result=mysqli_query($dbconnection, 'SELECT * FROM users');
    $row=mysqli_fetch_array($result);

    $p=$_POST['password'];
    $u=$_POST['username'];

    if ($u==echo $row["username"] AND $p==echo $row["password"]);
    {
        $_SESSION['username'] = echo $row["username"];
        header("Location: admin.php");
    }
    else
    {
        header("Location: ../index.php");
    }

2 个答案:

答案 0 :(得分:0)

我不确定你需要echo。根据手册,echo不返回任何内容。

尝试从代码中删除所有echo,例如

...
if ($u === $row["username"] && $p === $row["password"])
{
    $_SESSION['username'] = $row["username"];
    header("Location: admin.php");
}

(我通常使用&&代替AND,这也可能是原因)

除了你的代码只检查第一个获取的行(我想你知道吗?)

答案 1 :(得分:0)

$p=$_POST['password'];
$u=$_POST['username'];

$query = 'SELECT * FROM users WHERE username = ?';
if($result=mysqli_query($dbconnection, $query)){

    mysqli_stmt_bind_param($result, "s", $u);

    mysqli_stmt_execute($result);
    $row=mysqli_fetch_array($result);

if ($u == $row["username"] && $p == $row["password"]);
{
    $_SESSION['username'] = echo $row["username"];
    header("Location: admin.php");
}
else
{
    header("Location: ../index.php");
}
}else{
    //fail
}
  • 删除回声
  • 通过添加Where Clasuse
  • 选择特定用户
  • 准备你的声明