我正在爲HTML模板使用一組令牌。其中兩個('{SYS_MENU}'和'{SUB_MENU}')用於爲Web應用程序生成控制按鈕。現在,在用戶的憑證被驗證之前,按鈕顯示在登錄頁面上,我需要更改代碼,以便按鈕隱藏,直到用戶登錄並進入主菜單。當某人在他們的瀏覽器中鍵入http:地址併到達登錄頁面時,系統將在USER_ID = 0的MySQL會話表中爲他們啓動會話。登錄後,USER_ID更改爲在初始註冊時分配給他們的任何號碼例如:USER_ID = 54),並在會話結束時退出到0之後。將此常量綁定到按鈕似乎是最佳解決方案,並且在類似情況下我發現它可以在過去使用。根據與用戶ID相關的常量返回不同的PHP數組值
原來這裏是數組:
$template_vars = array(
'{LANG_DIR}' => $lang_text_dir,
'{TITLE}' => theme_page_title($section),
'{CHARSET}' => $charset,
'{META}' => $meta,
'{GAL_NAME}' => $CONFIG['gallery_name'],
'{GAL_DESCRIPTION}' => $CONFIG['gallery_description'],
'{SYS_MENU}' => theme_main_menu('sys_menu'),
'{SUB_MENU}' => theme_main_menu('sub_menu'),
'{ADMIN_MENU}' => theme_admin_mode_menu(),
'{CUSTOM_HEADER}' => $custom_header,
'{JAVASCRIPT}' => theme_javascript_head(),
'{MESSAGE_BLOCK}' => theme_display_message_block(),
);
我做的第一件事就是直接引用在HTML模板工作。我在w3schools上看到一個例子,它使您看起來像只需在HTML中輸入PHP腳本並解決問題。除了隨機地將一堆文本回顯到頁面之外,這沒有任何作用。然後,我發現另一個引用,說你必須先使用.HTACCESS條目激活PHP,然後才能直接在HTML中工作。但是這也沒有達成交易。我知道將數組中的'{SYS_MENU}'和'{SUB_MENU}'值更改爲=>「」會產生我想要的結果(I.E.使菜單按鈕消失)。所以,我的下一個想法是,我會創建一個返回根據情況陣列的兩個版本的IF語句,是這樣的:
if(USER_ID != 0)
{
return $template_vars = //FIRST VERSION OF ARRAY WITH FULL VALUES//
}
else
{
return $template_vars = //SECOND VERSION OF ARRAY WITH ONLY => ""//
}
但是,一切都做的是使應用程序負載在一個白色的屏幕,沒有終止錯誤反饋。
我最近嘗試來自東西,我在這裏讀堆棧溢出。我知道你不能把IF語句放入數組中。但文章在這個環節中描述的解決方法:
If statement within an array declaration ...is that possible?
所以我改寫了數組如下:
template_vars = array(
'{LANG_DIR}' => $lang_text_dir,
'{TITLE}' => theme_page_title($section),
'{CHARSET}' => $charset,
'{META}' => $meta,
'{GAL_NAME}' => $CONFIG['gallery_name'],
'{GAL_DESCRIPTION}' => $CONFIG['gallery_description'],
'{SYS_MENU}' => ('USER_ID != 0' ? theme_main_menu('sys_menu') : ""),
'{SUB_MENU}' => ('USER_ID != 0' ? theme_main_menu('sub_menu') : ""),
'{ADMIN_MENU}' => theme_admin_mode_menu(),
'{CUSTOM_HEADER}' => $custom_header,
'{JAVASCRIPT}' => theme_javascript_head(),
'{MESSAGE_BLOCK}' => theme_display_message_block(),
);
,但似乎沒有任何效果可言。應用程序不會崩潰,但無論您是登錄還是註銷,按鈕都是靜態的。
我的問題是:我錯過了什麼?我可以看到這是可能的。但是我一直在嘗試一天半的事情,似乎在圍繞解決方案跳舞。你的想法將不勝感激。
不回...只是分配 – Orangepill