【问题标题】:Retrieve session content from DB if session value is not set with PHP如果会话值未使用 PHP 设置,则从数据库中检索会话内容
【发布时间】:2019-03-20 09:11:58
【问题描述】:

我正在使用 DB 函数从数据库动态生成菜单。此功能取决于用户配置文件。因此,当用户登录时,该函数将绘制菜单内容如下:

<li>menu1</li>
<li>menu2</li>
<li>menu3</li>

问题是每次访问其中一个页面时,php 代码都会调用 DB 函数,因此我想将菜单内容存储在 _SESSION 值上并使用它直到会话结束。

所以,我试试这个。如果 $_SESSION['showmenu'] 为空,则调用 DB 函数 showmenuweb() 并将菜单内容分配给 $_SESSION['showmenu'] 如果它不为空,则只需 $_SESSION['showmenu'];内容。

if(!isset($_SESSION['showmenu'])) {
     echo "there is no menu on session";
     $_SESSION['showmenu'] = showmenuweb('ADMIN');
} else {
     echo "there is menu on session";
     echo $_SESSION['showmenu'];

}

然后我调用会话内容:

<php

echo $_SESSION['showmenu'];

?>

但是这段代码总是调用函数 showmenuweb(),它看起来总是 $_SESSION['showmenu'] 是空的。

我们将不胜感激。

更新:这是代码:

<?php

include_once('init.php');

if(!isset($_SESSION)) 
    { 
        session_start(); 
    } 

echo  $_SESSION['showmenu'];

if(!isset($_SESSION['showmenu'])) {
     echo "there is no menu on session";
     $_SESSION['showmenu'] = showmenuweb('ADMIN');
} else {
     echo "there is a menu on session";


}

?>

<!DOCTYPE html>
<html lang="en">
<body>
    <?php
    echo $_SESSION['showmenu'];
    echo '<br />';
    echo '<br />';
    showmenuweb('ADMIN');
    ?>



  </body>
</html>

html输出显示:

会话中没有菜单

  • 菜单1
  • 菜单2
  • 菜单3
  • 菜单1
  • 菜单2
  • 菜单3
  • 【问题讨论】:

    • 每个页面都调用 session_start 吗?
    • 是的,在每一个上。
    • 您的 sn-p 是正确的,您的错误必须在其他地方。会话是否有效?你不会不小心取消你的会话吗? ...
    • 您是否检查过 showmenuweb() 确实返回了您期望的结果?如果你这样做echo showmenuweb('ADMIN'); die;,你会得到什么?
    • 是的,它会返回。如果我放回声。事实上它总是所有的db函数。一个新手问题,一个SESSION值可以存储HTML内容吗?

    标签: php


    【解决方案1】:

    我通过使用两个会话变量来解决问题。

    首先分配db值 $_SESSION['MENU'] = $row['SALIDA'];

    那我检查一下。

    if(!isset($_SESSION['MENU'])) {
              $_SESSION['SALIDA'] = showmenuweb('USER');
    }
    

    感谢大家的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-18
      • 1970-01-01
      • 1970-01-01
      • 2013-10-18
      • 2013-05-13
      • 1970-01-01
      相关资源
      最近更新 更多