PHP, не отрабатывает require?

[Wed Jun 22 13:13:41 2011] [error] [client 82.207.46.177] PHP Warning: require_once() [<a href="http://function.require-once">function.require-once</a>]: URL using bad/illegal format or missing URL in /data/domains/dev2.random.net.ua/public_html/classes/smarty/smarty.class.php on line 799<br/>
[Wed Jun 22 13:13:41 2011] [error] [client 82.207.46.177] PHP Warning: require_once(/data/domains/dev2.random.net.ua/public_html/classes/smarty/sysplugins/smarty_internal_template.php) [<a href="http://function.require-once">function.require-once</a>]: failed to open stream: operation failed in /data/domains/dev2.random.net.ua/public_html/classes/smarty/smarty.class.php on line 799<br/>
[Wed Jun 22 13:13:41 2011] [error] [client 82.207.46.177] PHP Fatal error: require_once() [<a href="http://function.require">function.require</a>]: Failed opening required '/data/domains/dev2.random.net.ua/public_html/classes/smarty/sysplugins/smarty_internal_template.php' (include_path='.:/opt/csw/php5/lib/php/') in /data/domains/dev2.random.net.ua/public_html/classes/smarty/smarty.class.php on line 799


function smartyAutoload($class)<br/>
{<br/>
 $_class = strtolower($class);<br/>
 if (substr($_class, 0, 16) === 'smarty_internal_' || $_class == 'smarty_security') {<br/>
 print SMARTY_SYSPLUGINS_DIR . $_class . '.php';<br/>
 require_once(SMARTY_SYSPLUGINS_DIR . $_class . '.php');//Строка 799<br/>
 }<br/>
}



Вывод:
/data/domains/dev2.random.net.ua/public_html/classes/smarty/sysplugins/smarty_internal_data.php<br/>
/data/domains/dev2.random.net.ua/public_html/classes/smarty/sysplugins/smarty_internal_template.php



При более детальном анализе, было обнаружено что после require_once 'MDB2.php'; в одном из классов не хочет инклудится ничего через автолоад.


PHP 5.2.9

SunOS random.net.ua 5.10 Generic_142910-17 i86pc i386 i86pc


Есть мысли?
  • Вопрос задан
  • 6137 просмотров
Пригласить эксперта
Ответы на вопрос 9
@MrCrock
В функции smartyAutoload() замените require_once() на require(). Вы подключаете класс внутри функции, а значит весь код, который находится в подключаемом файле будет определен только внутри данной функции.
Ответ написан
Juggler
@Juggler
Мысль такая, что неправильно указывается абсолютный путь SMARTY_SYSPLUGINS_DIR. Напечатайте путь для текущего файла

__FILE__

— по нему можно уточнить что не так.
Ответ написан
Juggler
@Juggler
или каталог для текущего файла
— dirname(__FILE__)
Ответ написан
Комментировать
/data/domains/dev2.random.net.ua/public_html/classes/smarty/sysplugins/smarty_internal_data.php

А эти файлы существуют?
Ответ написан
Juggler
@Juggler
Вот интересный вариант www.rsdn.ru/forum/web/2930077.flat.aspx

Смысл в том, что не хватает памяти для PEAR, и дальше идут непонятные глюки. Попробуйте чистый вариант — сделать простой скрипт, где просто включить PEAR, а потом включить другой файл.
Ответ написан
Juggler
@Juggler
А чистый файл такого вида
require_once('/data/domains/dev2.random.net.ua/public_html/classes/smarty/smarty.class.php');
работает?
Ответ написан
conf
@conf
Ruby developer
Проверьте права на чтение в родительских директориях, может быть в этом проблема. И да, apc.stat = 0 бывает кэширует намертво.
Ответ написан
Комментировать
Juggler
@Juggler
Если кода не много — можно попробовать слить все в один файл и провести визуальную ревизию. Или просто отследить, в каком месте (после какой команды) начинает сбоить.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы