ISSET($_SESSION) 显示 $_SESSION 名称


isset($_SESSION) display $_SESSION name

如果有人能做出更好的标题,请编辑它。

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

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

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

你在这里所做的没有什么特别的错误。$_SESSION['用户名'] 真的有价值吗?

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

    <?php
    session_start();
    $_SESSION['username'] = 'Greg';
    if (isset($_SESSION['username']) )
    { 
    $name = $_SESSION['username'];
    }

请尝试以下操作

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

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

Garrett,我认为您的路线首先创建$_SESSION['name'],除非他们已登录,否则无论$_SESSION['name']变得$_SESSION['username']

如果我是对的,并且您在登录时正在创建 $_SESSION['用户名'],您需要做的就是检查 $_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
}