【问题标题】:Displaying username with $_SESSION['username'] [closed]使用 $_SESSION['username'] 显示用户名 [关闭]
【发布时间】:2019-12-20 10:37:40
【问题描述】:

我有一些关于 PHP 的问题,我想显示登录用户的用户名。我现在从 php 开始,所以我需要一些帮助,我在互联网上找到了这段代码,但有人可以解释它的含义吗?将不胜感激!

if (!empty($_SESSION['username'])) {
$username = $_SESSION['username'];

【问题讨论】:

  • 它表示如果在键 username 下的超全局 $_SESSION 中有一个不被视为空的值,请将变量 $username 设置为相同的值。
  • 这太宽泛了,无法解释。有很多教程和手册可供参考。

标签: php session


【解决方案1】:

您的代码检查超全局数组 SESSION 的键用户名的值是否不为空,如果是,则将其值保存到变量 $username 中。 如果你想显示它的价值,你可以使用

echo($_SESSION["username"]);

直接从 SESSION 获取它,或者在将用户名从会话设置为变量 $username 时(如您的代码中所示),您也可以使用

echo($username);

//编辑

正如其他人提到的,您必须在要使用函数 session_start(); 的每个文件的开头启动会话

然后您可以保存数据或从中读取数据,就像从任何其他数组中一样。 有关数组的更多信息(如果您不知道它们是如何工作的),您可以访问W3Schools - PHP arrays

例如:

session_start();

//setting value "Ben" into session array to key "username"
$_SESSION["username"] = "Ben";

//displaying value of key "username" from session
echo($_SESSION["username"]);
    //output: Ben

有关会话的更多信息,您可以访问W3Schools - PHP session

【讨论】:

  • 我遇到了一个问题,上面写着 undefined id.. 我该如何解决这个问题
  • 您可能没有将用户名设置为会话。正如其他答案中提到的那样,您必须在每个文件中启动会话,您想将它与函数 session_start(); 一起使用。检查我编辑的答案。
  • 我解决了,谢谢,我还有一个问题。当我有 foreach ($users as $entry) 时,我需要声明变量条目还是应该这样保留它?
  • 你不必声明它。
【解决方案2】:

$_SESSION 是 PHP 中的几个 superglobals 之一,这意味着无论范围如何都可以访问它。 每个超全局都是一个数组,因此代码 sn-p 验证键 'username' 存在且不为空,在这种情况下将其值分配给变量 $username

顺便说一句,为了能够使用 PHP 的会话,您需要以 sessions_start() 启动它们。

【讨论】:

    【解决方案3】:

    你应该使用 session_start() 开始页面...

    
    session_start();
    
    echo $_SESSION['username'] ?: "Session username not exist";
    
    
    

    会话是超级全局变量,可以从任何地方访问

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-20
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多