douzhong5902
douzhong5902
2011-05-23 02:00
浏览 50
已采纳

在嵌套if块[关闭]中排除“解析错误:语法错误,意外T_ELSE”故障

I have the following code on my website:

<?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;">';
}; ?>

What this should do is determine if $loggedout equals true and, if so, display /data/loggedout. If $loggedout is not true (or not present), it should then go on to determine if the cookie hide exists. If the cookie does exist, there should be no onload and if the cookie does not exist, it should display /data/surveyinvite.

However, I get the following error when going to my page:

Parse error: syntax error, unexpected T_ELSE in /home/briefs/public_html/index.php on line 16

Line 16 is

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

I have determined that issue is somewhere in the following (if I get rid of it, $loggedout works as expected):

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;">';
}; 

Where is the issue in this code?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dsjklb0205
    dsjklb0205 2011-05-23 02:06
    已采纳

    If you indent your code properly and always use brackets (I know they're not required; do it anyway, because it prevents stupid mistakes like this) then you'll find it much easier to not make such a simple mistake. You were missing several curly brackets, that's all.

    <?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;">';
        }
    }
    ?>
    
    点赞 评论
  • douji8033
    douji8033 2011-05-23 02:06

    You are missing some curly brackets "{" and "}" should read:

    <?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"])) { # <-- here
      echo '<body class="slider-header">';
      }   else { # <-- here
       echo '<body class="slider-header" onload="Modalbox.show(\'/data/surveyinvite\',{width: 576, title: \'Website Survey\'}); return false;">';
      } # <-- and here
    }; ?>
    
    点赞 评论

相关推荐