【问题标题】:Using variables with PHP session在 PHP 会话中使用变量
【发布时间】:2016-02-29 11:09:13
【问题描述】:

我正在尝试让我的网上商店的用户输入一个用户名,然后该用户名将显示在每个页面上。我已经在 header.php 中开始了会话并设置了用户名变量:

session_start();
$_SESSION['username'] = $username;
$username = ''; //set blank variable to be filled in index

然后我在 index.php 中调用 header.php:

<?php
include "header.php";
?>

在logIn div 中,我要求输入用户名(还没有提交的表单,如果没有遇到下面的问题,还没有走那么远)。如果用户没有在要登录的表单旁边登录,脚本应该显示一条消息,但如果他们已经提交了要使用的用户名,那么表单应该显示一条欢迎消息:

 <div class="logIn">
                <?php
                if (!isset($_SESSION['username'])) {
                    echo 'Welcome, '.$_SESSION['username'];
                } else {
                    echo 'Sorry, You are not logged in.';
                }
                ?>
 </div>

我目前收到此错误:

Notice: Undefined variable: username in /header.php on line 13

但我不知道为什么。我以为我将它声明为空,但即使我给它一个值,index.php 中的 if 语句也没有按预期工作。

如何设置一个简单的会话并接受一个用户名变量(无密码),然后将其显示在 index.php 上?

【问题讨论】:

    标签: php session


    【解决方案1】:

    你的错误很简单。

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

    您正在尝试使用$username分配它。

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

    应该会更好!

    【讨论】:

    • 没有任何愚蠢的问题,不要忘记将您的问题标记为已解决:)
    • 我会的,不过需要等待几分钟。再次感谢!
    【解决方案2】:

    我猜第 13 行是这个$_SESSION['username'] = $username; 吗?

    如果您将$username 分配给$_SESSION['username'],它必须在之前设置,我在您的示例中看不到。

    您的代码必须如下所示:

    //declare $username
    $username = "somename";
    $_SESSION['username'] = $username;
    

    或者,如果您将$username 设置为条件或其他内容,您可以试试这个:

    $_SESSION['username'] = ( isset( $username ) ) ? $username : '';
    

    【讨论】:

      猜你喜欢
      • 2011-03-08
      • 2017-08-29
      • 2012-04-23
      • 2016-03-12
      • 2011-04-05
      • 1970-01-01
      • 2012-08-03
      • 2013-05-01
      相关资源
      最近更新 更多