我想要显示登录用户的信息,也就是他们的ID,名字,姓氏,等等,在运行下面显示的代码后,它显示了数据库中的其他所有人,并排除了应该显示数据的“用户”。
include("server.php");
if (!isset($_SESSION['username'])) {
$_SESSION['msg'] = "You must log in first";
header('location: login.php');
}
if (isset($_GET['logout'])) {
session_destroy();
unset($_SESSION['username']);
header("location: login.php");
}
$sql = "select id, username, fname, lname, email from users WHERE username != '{$_SESSION['username']}'";
$result = mysqli_query($db, $sql);
if(mysqli_num_rows($result) > 0 ){
while($row = mysqli_fetch_assoc($result)){
?>
<tr>
<td><?=$row['id']?></td>
<td><?=$row['username']?></td>
<td><?=$row['fname']?></td>
<td><?=$row['lname']?></td>
<td><?=$row['email']?></td>
<br>
</tr>
<?php发布于 2019-06-10 09:50:48
检查你的SQL语句,你有WHERE username !=,而你的需求是WHERE username =。
此外,您应该避免在SQL语句中直接使用原始输入,即使它是从会话中获得的当前登录的用户名,因为这存在安全风险。请改用预准备语句。看看How to change from mysql to pdo using prepared statements in PHP?,但你也可以用谷歌搜索,网上有很多例子。
如果评论中的人提供了正式的回答,请随时接受他们的回答。欢迎来到SO :)。
https://stackoverflow.com/questions/56519123
复制相似问题