isset($ _ SESSION)显示$ _SESSION名称

时间:2012-05-22 06:28:17

标签: php session if-statement

如果有人可以制作更好的标题,请进行编辑。

我遇到的问题是无法在帖子中显示用户名。快速剪切代码。

if (isset($_SESSION['username']) )
{ 
$name = $_SESSION['username'];
}
else 
{
$name = $_POST['name']; 
}

如何在用户发布时进行检查,检查是否有会话,然后在帖子中显示其名称。

3 个答案:

答案 0 :(得分:2)

你在这里所做的事并没有什么特别的错。 $ _SESSION ['username']实际上是否有值?

另外,在保存或拉取会话数据之前,请确保在使用调用session_start()的会话时。

    <?php
    session_start();

    $_SESSION['username'] = 'Greg';

    if (isset($_SESSION['username']) )
    { 
    $name = $_SESSION['username'];
    }

答案 1 :(得分:0)

请尝试以下

session_start();

if (isset($_SESSION['username']) )
{ 
    $name = $_SESSION['username'];
}
else 
{
    $name = $_POST['name']; 
    $_SESSION['username'] = $name;
}

然后重新加载页面,$ _SESSION ['username']现在应该包含用户名

答案 2 :(得分:0)

Garrett我正确地认为您的路线首先是创建$_SESSION['name'],除非他们已经登录,否则$_SESSION['name']变为$_SESSION['username']

如果我是对的并且您在登录时创建了$ _SESSION ['username'],那么您需要检查$_SESSION['name'] = $_SESSION['username']是否取消设置示例:

// 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
}