[英]Retrieve session content from DB if session value is not set with PHP
我使用數據庫功能從數據庫中生成菜單。 此功能取決於用戶配置文件。 因此,當用戶登錄時,該功能將繪制菜單內容,如下所示:
<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輸出顯示:
會議上沒有菜單
我通過使用兩個會話變量來解決問題。
首先分配db值$ _SESSION ['MENU'] = $ row ['SALIDA'];
然后我檢查一下。
if(!isset($_SESSION['MENU'])) {
$_SESSION['SALIDA'] = showmenuweb('USER');
}
感謝大家的幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.