【问题标题】:display user profile from mysql database with php sessions [duplicate]使用php会话显示来自mysql数据库的用户配置文件[重复]
【发布时间】:2023-03-04 10:20:01
【问题描述】:

我是新来的,我在显示登录的用户资料时遇到问题,希望你们能提供帮助,这是我的代码:

<?php session_start(); include 'dpconfig.php'
<?php $run = mysqli_query($conn,"Select * from user Where id = $_SESSION['uid]"); 
$row = mysqli_fetch_array($run, MYSQLI_BOTH); { }


    $showid = $row[0];
$showfirst = $row[1]; 
  $showlast = $row[2];
  $showuid = $row[3];



 echo  $showid; echo $showfirst; echo  $showlast; echo  $showuid;

现在基本上这段代码给了我数据库中第一个 id 的详细信息,即使我登录了不同的用户,我需要帮助从表名(用户)中选择数据来显示登录的用户配置文件,使用会话。谢谢

【问题讨论】:

  • 您当前正在从表中选择 所有 条记录:Select * from user 您想要添加一个 WHERE 子句来选择一个特定 从表中记录:dev.mysql.com/doc/refman/5.7/en/select.html
  • 如果您在 SQL 语句中没有 WHERE 子句,那么您将获得数据库中的所有行(以随机顺序)。如果你想要一个特定的用户,你需要添加类似 WHERE user_id =
  • 您这样发布的代码包含太多错误和一些未知数。调试你的代码。

标签: php mysql session


【解决方案1】:
$run = mysqli_query($conn,"Select * from user where username='xxx' and pass='xx'"); 

它将返回登录用户详细信息。

【讨论】:

  • 你应该选择id,而不是用户和密码。
  • 我的意思是 .user 是当前用户的用户 ID
  • 即便如此,您并不总是希望选择 当前 用户。有一个更一般的声明是要走的路,即SELECT * FROM users WHERE `id`=?
  • 我读了一些文章,他们说使用 SELECT * FROM users WHERE id= '$_SESSION ['id']'";,但它也没有工作
  • @Davies 假设您使用 'id'(或者在您的编辑情况下,'uid')密钥将经过身份验证的用户的 ID 存储在 @987654327 中,这将获取当前登录用户的配置文件@。但是你可能想要更通用的东西,比如$_GET['id']。但是请注意,这会导致 SQL 注入,因此您应该使用参数化查询。
【解决方案2】:

尝试这样的事情,你需要记住检查数组是否也包含值,然后你可以响应它......

$conn = dbconfig;
$id = $_SESSION['id'];
$sql = "SELECT * FROM user WHERE id='$id'";
$check = mysqli_query($conn, $sql) or die ("err $id " . mysqli_error ($conn));
$check2 = mysqli_num_rows($check);
if ($check2 != 0) {
    while ($row = mysqli_fetch_assoc($check)) {
        $userid = $row['id']; // repeat for all db columns you want
    }
}

抱歉,如果有任何拼写错误,请在我的手机上快速完成。如果您需要进一步的帮助,请大声喊叫。

更新了代码以在错误消息中显示更多信息,以帮助您了解为什么它不适合您。

【讨论】:

  • 谢谢..但它说Notice: Undefined index: id in C:\xampp\htdocs\login\dashboard.php on line 22 errYou have an error in your SQL syntax;检查与您的 MariaDB 服务器版本相对应的手册,以了解在第 1 行的 '' 附近使用的正确语法
  • @Davies 简单;您的会话数组从未设置/为空且从未启动。
  • 我已经开始了会话,只是没有将它与上面的代码一起复制..
  • 为您更新了答案以帮助调试。正如 Fred -ii- 所说,检查你的变量。
  • 运行上述代码后出现 Parse error: syntax error, unexpected '$id' (T_VARIABLE),请问我该怎么办
猜你喜欢
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 2015-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-15
  • 1970-01-01
相关资源
最近更新 更多