【问题标题】:global a $_SESSION variable全局 $_SESSION 变量
【发布时间】:2014-04-12 22:29:14
【问题描述】:

我正在尝试在 PHP 上进行登录会话,但似乎 $_SESSION['username'] 死在 IF 语句中(我认为 $_SESSION 默认情况下是全局变量),我无法将其回显中频

这是我的代码

if($name=="admin" && $password=="admin")
{
session_start();
$_SESSION['username'],$_SESSION['sesion'];
$_SESSION['username']=$name;
$_SESSION['sesion']=1;
echo $_SESSION['username'];
echo "<br>";
echo $_SESSION['sesion'];
}
echo "<br>";
echo $_SESSION['username'];

最后一个回显没有打印它的值,所以当我将它重定向到另一个页面时,该页面没有使用用户名值

我对这件事有点陌生 所以不要对我这么苛刻:P 我该怎么做??

【问题讨论】:

    标签: php session global


    【解决方案1】:

    session_start()移动到文件顶部:

    // foo.php
    <?php
      session_start();
    
      //....
    
      if($name=="admin" && $password=="admin")
      {
        // $_SESSION['username'],$_SESSION['sesion']; // Remove this line
        $_SESSION['username']=$name;
        $_SESSION['sesion']=1;
        echo $_SESSION['username'];
        echo "<br>";
        echo $_SESSION['sesion'];
      }
      echo "<br>";
      echo $_SESSION['username'];
    

    【讨论】:

      【解决方案2】:

      当您在 php 中使用会话时,您必须在要获取或设置会话值的每个文件/页面中以 session_start() 开头,因此只需将此行添加到该文件和您要重定向到的那个文件。

      【讨论】:

        【解决方案3】:

        session_start() 应该在 if 语句之上。最好把它放在 ?php 的正下方

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-07-26
          • 1970-01-01
          • 2014-10-19
          • 1970-01-01
          • 2015-06-12
          • 2019-07-24
          • 2017-11-08
          相关资源
          最近更新 更多