VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Пытаюсь заставить плагин vbJournal для форума vBulliten работать корректно на php5 (хотя официально написано что на 5м пхп работать не должно).
Начал ковыряться сам
выдает ошибку
---
Parse error: syntax error, unexpected T_PRIVATE, expecting ']' in z:\home\test1.ru\www\journal.php(629) : eval()'d code on line 188
----
в строке 629 написано
eval('print_output("' . fetch_template('JOURNAL') . '");');
вот как вижу вся проблема с eval но как обойтись без нее ума не приложу. Дайте идею, либо подскажите где можно найти уже готовое решение данной проблемы. заранее спасибо. На сайте то написано что с пхп5 не работает. но все же хотелось бы завести его. ОЧЕНЬ НАДО! СПАСИТЕ
Parse error: syntax error
-------------------------
У меня все на пхп5 - ошибки исправляю так - смотрю не работающую функцию
eval()'d code on line 188
, в данном случае и тут так, и ищу аналогичную в мануале по пхп5. Исправляю и все работает.
добавлено через 4 минуты
Функция eval возвращает значение, являющееся результатом выполнения кода.
execfile(file[, globals[, locals]])
Функция работает идентично функции eval, за тем исключением, что выполняет не строку кода, а целый файл, в остальном см описание функции eval.
--------------------------
Со «слабостью» PHP-шной функции eval(), касающейся безусловного завершения скрипта при ошибке E_ERROR, мы никак бороться не можем. Тем не менее, формирование «лицеприятной» ссылки на файл, содержащий ошибку, нам все же по силам!
Мы воспользуемся одним «побочным эффектом», имеющим место во всех версиях PHP 4 и 5. Речь идет о «срабатывании» обработчика выходного потока, установленного по ob_start(), при любом завершении скрипта — не важно, ошибочном или легальном.
Проще всего продемонстрировать этот эффект может следующий код:
Листинг 5 скопировать код в буфер обмена
<?php
# Устанавливаем обработчик выходного потока скрипта.
ob_start('ob_handler');
# Печатаем что-нибудь.
echo "Something";
# Вызываем неопределенную функцию внутри eval!
eval('undefinedFunc();');
# Печатаем еще что-то (к этому моменту скрипт уже мертв!).
echo "Other";
# Функция-обработчик просто добавляет некоторый "хвост"
# к тексту, выведенному скриптом ранее.
function ob_handler($text)
{
return "$text<hr>Hello from handler!";
}
?>
Вы увидите, что, несмотря на неперехватываемую ошибку класса E_ERROR, обработчик ob_handler() успешно запустился:
Листинг 6 скопировать код в буфер обмена
Something
Fatal error: Call to undefined function: undefinedfunc() in e.php(7) :
eval()'d code on line 1
--------------------------------------------------------
Hello from handler!
Как же в обработчике определить, завершился скрипт аварийно или же корректно? Существует всего лишь один способ сделать это, но он довольно «грязен». Необходимо разобрать регулярным выражением «хвост» текста, переданного в функцию, и грубо проверить, содержится ли в нем сообщение об ошибке «в eval()'d code». В случае необходимости именно это сообщение и нужно заменить на текст, содержащий «фальшивое» имя файла.
Last edited by Igord : 03-20-2006 at 05:19 PM.
Reason: Добавлено сообщение