大家好,我正试图为学校项目做一个简单的登录系统,当我没有实现数据库时,我得到了它的工作。但正如你现在看到的,我试图实现数据库它工作得不太好,因为我不能使PHP标记在echo的开始和结束,无论如何,谁可以帮助我?正如我所说,当我只是写一个随机的用户名和密码,没有任何数据库的东西。
<?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");
}
我不确定那里是否需要echo
。根据使用手册,echo不返回任何值。
尝试从代码中删除所有的echo
,如
...
if ($u === $row["username"] && $p === $row["password"])
{
$_SESSION['username'] = $row["username"];
header("Location: admin.php");
}
(我通常用&&
代替AND
,这也可能是原因)
除此之外,你的代码将检查仅第一次获取行(我想你知道吗?)
$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类来选择特定用户
- 准备你的声明