这是我的问题:
$query = ("UPDATE users SET username='$username', password='$password', email='$email' WHERE userID = '79'");
$result = mysqli_query($connection, $query);
我想更新已登录的用户,而不是更新用户79.因此,我会放79
而不是放$_SESSION
。如果是,则会话链接到用户名,而不是用户ID。所以我想知道,如何将该用户登录的用户名与与之关联的用户ID链接起来?
抱歉,我是这个论坛的新手。
当他们登录时,他们只输入他们的用户名和密码。他们不输入他们的userID。那么,如果没有通过表单发布,我如何获取用户ID?我不知何故需要将用户名(他们输入的内容)与他们的用户ID相关联。
答案 0 :(得分:0)
在$ _SESSION中存储用户名时,也存储用户ID。你只需要写$_SESSION['UserID']='USER_ID_VALUE'
这样做,您就可以在用户拥有活动会话时访问用户ID。
答案 1 :(得分:0)
这是滚动自己的会话管理系统的风险之一。如果你在犯下很多错误之前从未这样做过。其中一些错误将非常严重。这就是为什么使用development framework给你一个良好的基础几乎总是一个好主意。
一般情况下,当您成功登录时,您应该捕获已登录用户的ID。用户名不能被推定为一致的,但ID将是。
然后,您可以对此ID执行更新。
答案 2 :(得分:0)
$identity = new stdClass(); $identity->user_id =123; $identity->username = 'john'; $_SESSION['identity'] = $identity; // usage without checks, $identity = $_SESSION['identity']; echo $identity->user_id;