你好,我有一个登录会话的问题。当我登录的用户我创造会话登录问题,如果我编辑用户名,而我登录
$_SESSION['username']
将用户重定向
header('location:profile.php?user='.$_SESSION['username']);
当我在编辑数据库用户的用户名,因为会话不匹配的用户名再出现问题。我尝试销毁会话并在更新时创建新会话,但用户显示为未登录,并且在链接中显示的是旧会话。
你好,我有一个登录会话的问题。当我登录的用户我创造会话登录问题,如果我编辑用户名,而我登录
$_SESSION['username']
将用户重定向
header('location:profile.php?user='.$_SESSION['username']);
当我在编辑数据库用户的用户名,因为会话不匹配的用户名再出现问题。我尝试销毁会话并在更新时创建新会话,但用户显示为未登录,并且在链接中显示的是旧会话。
在这种情况下,您需要一个唯一的永久标识符,可将会话与您的数据库行关联起来。与此匹配的典型行是用户标识,而不是用户名。
如果您需要用户名,您可以根据您的标识符运行查询,并从该处继续执行脚本。
当然,还有其他领域和方法可以帮助您实现这一目标,但从中获得的主要想法是不使用可以修改的标识符。正如你已经发现的那样,这样做会导致你的会话和数据库不同步。
我想使用ID然后我想显示用户名在链接,而不是id = 232131。 :) – user3058067
在您的用户登录页面上,当检查用户的存在时,拉下找到的行并获取用户名。然后你可以使用它重定向到'profile.php?user = $ xyz'(: – Sean
**为什么**你在编辑数据库中的用户名?这是你经常做的事还是仅仅是为了特定的情况? – anurupr
使用用户标识代替用户名。 – GuyT
更新后设置新的会话值,像这样'$ _SESSION ['username'] = $ new_user_name;' – krishna