我使用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输出显示:
会话中没有菜单
答案 0 :(得分:0)
我通过使用两个会话变量来解决此问题。
首先分配数据库值$ _SESSION ['MENU'] = $ row ['SALIDA'];
然后我检查一下。
if(!isset($_SESSION['MENU'])) {
$_SESSION['SALIDA'] = showmenuweb('USER');
}
感谢大家的帮助。