我想显示登录用户的信息,也就是他们的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
答案 0 :(得分:0)
检查您的SQL语句,您有WHERE username !=
,而您的要求决定了WHERE username =
。
此外,您应该避免直接在SQL语句中使用原始输入,即使它是从会话中获得的当前登录用户名,也存在安全隐患。请改用准备好的语句。参见How to change from mysql to pdo using prepared statements in PHP?,但您也可以使用google,在线上有很多示例。
如果评论中的人提供了正式答案,请随时接受他们的回答。欢迎来到SO:)。