![](/img/trans.png)
[英]Why does it give an error when I add googlesnippets ld + json to my php page? 503 Service Unavaible
[英]Why does my page error when I add an IF statement?
我是編碼新手,也是 Bootstrap 新手。 我遇到了 Bootstrap Navbar 的問題,一切順利,直到我嘗試使用連續的 IF 語句來檢查 Session 並顯示或不顯示特定的菜單項。
我在大多數頁面上都有一個function drawTopMenu()
PHP function。 這個 header 正在使用 YUI,我正在將其更改為 Bootstrap。 這是代碼的第一部分,沒有給出任何問題。 這是一個測試文件,因為我在試圖找出原因時遇到了很多麻煩。
我試圖刪除 IF 語句,這解決了“HTTP 500 服務器錯誤”,但我確實需要向特定用戶顯示特定項目。 我還嘗試恢復到 YUI 菜單欄 cade,它可以很好地處理更多 IF 語句。
編輯:
IF {}
中的代碼替換為“...”,這當然不會導致問題。 這是 IF 語句,只要我添加額外的 IF 語句,代碼就會中斷。 即使我的primaryGroupId = 2
和第三個 IF 也應該被跳過。代碼現在看起來像這樣“//BREAKS THE CODE”是導致問題的 IF 語句:
function drawTopMenu () {
$session_int = $_SESSION['primaryGroupId'];
//Bootsrap menubar
$html = <<<EOS
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js" integrity="sha384-cVKIPhGWiC2Al4u+LWgxfKTRIcfu0JTxR+EQDz/bgldoEyl4H0zUF0QKbrJ0EcQF" crossorigin="anonymous"></script>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="/home.php">
<img src="http://192.168.42.30:8080/lqcadjust/logo-grey.png" alt="Home" width="153" height="34"></a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
EOS;
//Approval List
if (($session_int == 1) || ($session_int == 2)) {
$html .= <<<EOS
<li class="nav-item"><a class="nav-link" href="/home/event/approval_status.php">Approval List</a></li>
EOS;
}
//File Maintenance
if (($session_int == 1) || ($session_int == 2)) {
...
}
if (($session_int == 2)){
...
}
//BREAKS THE CODE
if (($session_int == 3)){
...
}
//BREAKS THE CODE
}
我通過使用switch
而不是if
找到了解決方法,這更優雅並且有效。 我不知道為什么會這樣!
編輯:我使用 IF 語句來解釋不同的用戶權限。 為此,我需要覆蓋每個菜單項的許多 IF 語句,現在我制作了 1 個 switch 語句,它覆蓋了整個菜單項。
從:
//File Maintenance item
IF ($session_int == 1){
...
}
IF ($session_int == 2){
...
}
IF ($session_int == 9){
...
}
IF ($session_int == 11){
...
}
TO (這里是關於如何使用switch
的解釋,由 w3 提供) :
//File Maintenance item
switch ($session_int){
case 1:
…
break;
case 2:
…
break;
case 9:
…
break;
case 11:
…
break;
}
我知道這不是解決方案,所以我不會將其標記為這樣,只是另一種方法。
如果有人對解決方案有建議,請分享。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.