我的网站上有以下代码:
<?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)
这段代码中的问题在哪里?
如果你正确地缩进你的代码并且总是使用括号(我知道它们不是必需的;无论如何都要这样做,因为它可以防止像这样的愚蠢错误)然后你会发现更容易做出这么简单的错误.你错过了几个大括号,就是这样.
<?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)