【问题标题】:Session Values are not coming会话值未到来
【发布时间】:2016-12-31 02:07:57
【问题描述】:

我有一个 homepage.php 和 messages.php 页面,用于两个常见的“menu.php”,所以我已经在 homepage.php 和 messages.php 中启动了一个会话并且我没有在菜单页面中启动任何会话. 我正在尝试获取这些值,这是我的菜单代码:

HTML 代码:

<a href="#" class="dropdown-toggle dropdown-at" data-toggle="dropdown">
    <span class=" name-caret">
        <?= $_SESSION['name'] ?><i class="caret"></i>
    </span>
    <img src="../images/user/<?= $_SESSION['image'] ?>" style="width:100px; height: 61px;">
</a>

主页.PHP

<?php
ob_start();
session_start();
if (!isset($_SESSION['id'])) {
    header('location:index.php');
}
include_once('includes/config.php');
include_once('includes/header.php');
include_once('includes/menu.php'); 
?>

所以我可以在主页和消息页面的菜单上显示名称和图像的登录用户数据。

【问题讨论】:

  • 您需要在使用会话变量的每个页面上进行 session_start()。
  • 在菜单页面中也开始会话
  • 删除ob_start();
  • @Dagon 在所有页面中..?
  • 使用会话有一定的规则。无需启动会话两次。在包含的页面中。在页面开始时仅使用一次 session_start(),删除文件中包含的其他 session_start()。这可能会引发警告。

标签: php html session


【解决方案1】:

您需要在 PHP 中使用 echo 来显示值。像这样:

<a href="#" class="dropdown-toggle dropdown-at" data-toggle="dropdown">
  <span class=" name-caret"><?php echo $_SESSION[name]; ?>
    <i class="caret"></i>
  </span>
  <img src="../images/user/<?php echo $_SESSION[image]; ?>" />
</a>

【讨论】:

  • 语法不正确。 &lt;?= 标签已经意味着&lt;?php echo,所以你的语法&lt;?= echo 类似于&lt;?php echo echo。第二个错误是将变量放在单引号中。那只是一个字符串。
  • 不,您仍在打印字符串,而不是使用变量。伙计,如果您不了解基本的 PHP 语法,请不要发布答案。顺便说一句,OP的语法是有效的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-11
  • 2014-03-12
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
  • 2021-08-30
相关资源
最近更新 更多