0

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

我遇到的问题是无法在他们的帖子中显示用户名。快速截取代码。

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

当用户发布它检查是否有会话然后在他们的帖子中显示他们的名字时,我怎样才能做到这一点。

4

3 回答 3

2

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

此外,请确保在使用会话时调用 session_start(),然后再保存或提取会话数据。

    <?php
    session_start();

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

    if (isset($_SESSION['username']) )
    { 
    $name = $_SESSION['username'];
    }
于 2012-05-22T06:36:58.643 回答
0

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

如果我是对的并且您在登录时创建 $_SESSION['username'] ,那么您需要做的就是检查 if $_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
}
于 2012-05-22T06:43:50.890 回答
0

请尝试以下

session_start();

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

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

于 2012-05-22T06:41:54.790 回答