如果未使用PHP

时间:2019-03-20 09:11:58

标签: php

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

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

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

所以,我尝试一下。如果$ _SESSION ['showmenu']为空,则调用数据库函数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
  • menu3
  • 菜单1
  • 菜单2
  • menu3
  • 1 个答案:

    答案 0 :(得分:0)

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

    首先分配数据库值$ _SESSION ['MENU'] = $ row ['SALIDA'];

    然后我检查一下。

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

    感谢大家的帮助。