如果有人可以做一个更好的标题,请编辑它。
我遇到的问题是无法在他们的帖子中显示用户名。代码的快速片段。
if (isset($_SESSION['username']) )
{
$name = $_SESSION['username'];
}
else
{
$name = $_POST['name'];
}当用户发表帖子时,我如何才能检查是否有会话,然后在帖子中显示他们的名字。
发布于 2012-05-22 14:36:59
您在这里所做的并没有什么特别的错误。$_SESSION‘’username‘是否真的有值?
此外,确保在使用会话时,在保存或提取会话数据之前调用session_start()。
<?php
session_start();
$_SESSION['username'] = 'Greg';
if (isset($_SESSION['username']) )
{
$name = $_SESSION['username'];
}发布于 2012-05-22 14:41:55
请尝试以下操作
session_start();
if (isset($_SESSION['username']) )
{
$name = $_SESSION['username'];
}
else
{
$name = $_POST['name'];
$_SESSION['username'] = $name;
}然后重新加载页面,$_SESSION‘’username‘现在应该包含用户名
发布于 2012-05-22 14:43:51
Garrett我是否正确地认为您的路由是先创建$_SESSION['name'],除非他们已经登录,否则$_SESSION['name']将变为$_SESSION['username']
如果我是对的,并且您在登录时创建了$_SESSION‘’username‘,那么您需要做的就是检查$_SESSION['name']是否为$_SESSION['username'],如果设置为unset,则将其取消。例如:
// YOUR LOGIN CODE TO CHECK ASSUME SQL QUERY OF SOME DESCRIPTION AND 'true' IS YOUR RESULT and 'false' NOT A USER
if(true) {
$_SESSION['username'] = $result;
if($_SESSION['name'] && $_SESSION['name'] == $_SESSION['username'] ){
unset($_SESSION['name'])
}
// ACTION TO GO TO PAGE
} else {
// YOUR ERROR ACTION
}https://stackoverflow.com/questions/10696821
复制相似问题