0

我正在为我的网站创建登录系统,并且在用户登录后无法打印出用户名。

从数据库验证后,我已经这样做了:

  $_SESSION['userName'];
  $_SESSION['password'];
  header("location:success.php");

这是在success.php文件中打印用户名的代码:

   session_start();
   if($_SESSION['userName']!='')
   {
    header("location:login_form.php");

    }
    else
    {
     echo '<h2>Successfully Login <br /> Welcome '.$userName.'</h2>';

     echo '<a href="logout.php"> Log Out</a>';
     }

但不打印用户名。

4

4 回答 4

2

我想你想要:

echo '<h2>Successfully Login <br /> Welcome '.$_SESSION['userName'].'</h2>';

if($_SESSION['userName']!='')

应该

if($_SESSION['userName']=='')
于 2012-12-31T15:18:05.277 回答
2

首先,您没有将会话分配给任何值。

$_SESSION['userName'];
$_SESSION['password'];

header("location:success.php");

应该:

$_SESSION['userName'] = 'My Username';
$_SESSION['password'] = 'My Password';
header("location:success.php");

其次,您还没有定义变量$userName。将其更改为:$_SESSION['userName']

die()附带说明一下,您不应该在会话中存储密码,此外,您应该exit()在使用header().

编辑:

只需重新阅读您的代码。尽管我之前的回答者建议您更改此行:

if ($_SESSION['userName'] != '')

至:

if ($_SESSION['userName'] == '')

使用逻辑运算符检查会话是否存在实际上是一种不好的做法。正确的方法是使用该isset()功能:

if (isset($_SESSION['userName']))

祝你好运!

于 2012-12-31T15:20:53.353 回答
0

这一行:

if($_SESSION['userName']!='')

应该:

if($_SESSION['userName']=='')
于 2012-12-31T15:18:01.787 回答
0

除非您在其他地方省略了代码,否则不会定义此变量:$userName

您缺少将其定义为变量。尝试:

$userName= $_SESSION['userName'];
$password = $_SESSION['password'];
于 2012-12-31T15:35:26.727 回答