您好我是PHP新手并试图找出一个Joomla模块的黑客攻击。
由于某种原因,'else'语句不起作用。我不明白为什么......
<? if (KRequest::get('get.view', 'string') != 'event' || isset($module)) : ?>
<? $desc = $event->description; ?>
<? $desc = preg_replace("/\{[^\)]+\}/","", $desc) ?>
<? $desc = substr(strip_tags($desc, '<p><ul><li><b><i><strong><br>'), 0, 180)?>
<? if (strlen($desc) == 180) $desc .= '...'; ?>
<div itemprop="description" class="ohanah-event-short-description">
<?=$desc?>
</div>
<? else : ?>
<!--here is where I want to end it --!>No description.
<?
$description = $event->description;
// Create temporary article
$item =& JTable::getInstance('content');
$item->parameters = new JParameter('');
$item->text = $description;
$joomlaVersion = JVersion::isCompatible('1.6.0') ? '1.6' : '1.5';
if ($joomlaVersion == '1.5') {
$results = JFactory::getApplication()->triggerEvent('onPrepareContent', array (&$item, &$params, 1));
} else {
$dispatcher = JDispatcher::getInstance();
JPluginHelper::importPlugin('content');
$results = $dispatcher->trigger('onContentPrepare', array ('com_content.article', &$item, &$params, 1));
}
$description = $item->text;
?>
<div style="display:none"><span itemprop="name"><?=$event->title?></span></div>
<div itemprop="description" class="full-description">
<?=$description?>
</div>
<? endif ?>
答案 0 :(得分:0)
那是你所有的代码吗?你需要结束结束。
也就是说,考虑大括号语法,我发现避免错误更容易。
另外,当每一行都是PHP时,你不必每行都有<?php
和?>
,你可以将php块保持打开几行。
<?php
if (...) {
// stuff
} else {
// other stuff
}
?>
如果我理解你的代码流,它看起来像这样
<?php
if (KRequest::get('get.view', 'string') != 'event' || isset($module)) {
$desc = $event->description;
$desc = preg_replace("/\{[^\)]+\}/","", $desc)
$desc = substr(strip_tags($desc, '<p><ul><li><b><i><strong><br>'), 0, 180)
if (strlen($desc) == 180) {
$desc .= '...';
}
?>
<div itemprop="description" class="short-description">
<?php echo $desc; ?>
</div>
<?php } else { ?>
No description.
<?php } ?>
答案 1 :(得分:0)
我只是猜测,但是你不需要在IF语句中删除分号来告诉解析器那里还有一个else块,即
if (strlen($desc) == 180) $desc .= '...'
答案 2 :(得分:0)
大括号错了。应该是这样的(或类似的 - 不确定你需要$ desc的地方):
if (strlen($desc) == 180)
{
$desc .= '...';
echo '<div itemprop="description" class="short-description">';
echo $desc;
echo '</div>';
}
else
{
echo 'No description.';
}