在嵌套if块中排除"解析错误:语法错误,意外T_ELSE"故障

Chr*_*her 0 php if-statement

我的网站上有以下代码:

<?php
$loggedout = $_GET["loggedout"];
if ($loggedout=="true") { 
echo '<body class="slider-header" onload="Modalbox.show(\'/data/loggedout\',{width: 576, title: \'Logged Out\'}); return false;">'; else { 
if (isset($_COOKIE["hide"]))
  echo '<body class="slider-header">';
else
  echo '<body class="slider-header" onload="Modalbox.show(\'/data/surveyinvite\',{width: 576, title: \'Website Survey\'}); return false;">';
}; ?>
Run Code Online (Sandbox Code Playgroud)

这应该做的是确定是否$loggedout等于true,如果是,则显示/data/loggedout.如果$loggedout不是真的(或不存在),则应继续确定cookie是否hide存在.如果cookie确实存在,则应该没有onload,如果cookie不存在,则应该显示/data/surveyinvite.

但是,我转到我的页面时收到以下错误:

解析错误:语法错误,第16行/home/briefs/public_html/index.php中的意外T_ELSE

16号线是

echo '<body class="slider-header" onload="Modalbox.show(\'/data/loggedout\',{width: 576, title: \'Logged Out\'}); return false;">'; else { 
Run Code Online (Sandbox Code Playgroud)

我已经确定问题在下面的某个地方(如果我摆脱它,$loggedout按预期工作):

if (isset($_COOKIE["hide"]))
  echo '<body class="slider-header">';
else
  echo '<body class="slider-header" onload="Modalbox.show(\'/data/surveyinvite\',{width: 576, title: \'Website Survey\'}); return false;">';
}; 
Run Code Online (Sandbox Code Playgroud)

这段代码中的问题在哪里?

El *_*obo 5

如果你正确地缩进你的代码并且总是使用括号(我知道它们不是必需的;无论如何都要这样做,因为它可以防止像这样的愚蠢错误)然后你会发现更容易做出这么简单的错误.你错过了几个大括号,就是这样.

<?php
$loggedout = $_GET["loggedout"];
if ($loggedout=="true") { 
    echo '<body class="slider-header" onload="Modalbox.show(\'/data/loggedout\',{width: 576, title: \'Logged Out\'}); return false;">'; 
} else { 
    if (isset($_COOKIE["hide"])) {
        echo '<body class="slider-header">';
    } else {
        echo '<body class="slider-header" onload="Modalbox.show(\'/data/surveyinvite\',{width: 576, title: \'Website Survey\'}); return false;">';
    }
}
?>
Run Code Online (Sandbox Code Playgroud)