Вопрос № 95207: Здравствуйте.
У меня стоит PHP Version 4.4.4.
Я планирую такую структуру.
К главному файлу в самом начале подключается файл
main.php, содержащий набор базовых переменных сайта.
Потом подключающиеся остальные файлы должны эти базо...
Вопрос № 95.207
Здравствуйте.
У меня стоит PHP Version 4.4.4.
Я планирую такую структуру.
К главному файлу в самом начале подключается файл
main.php, содержащий набор базовых переменных сайта.
Потом подключающиеся остальные файлы должны эти базовые переменные использовать.
На что выдается ошибка:
Use of undefined constant SERVERURL - assumed 'SERVERURL' in z:home est2.ruwww emplateshead.php
Я думаю, что проблема связана с приципом обработки данных в php.
Подскажите, пожалуйста, как исправить эту ситуацию, потому что в каждом файле, который надо include(), делать внутри еще много include(), по-моему не рационально.
Ваш вариант делает include результата работы скрипта http://test2.ru/templates/head.php, а не его исходного кода.
Если просто запустить http://test2.ru/templates/head.php, он ничего не знает о константе SERVERURL.
Ответ отправил: Селев Валерий (статус: 5-ый класс)
Ответ отправлен: 15.07.2007, 16:40
Отвечает: Flynn
Здравствуйте, Кривоносов Олег Юрьевич!
Основная ошибка у тебя в том, что ты инклюдишь файлы через http - этого делать не стоит. То, что css грузится через него - правильно, а вот подключать модули - нет.
Просто перед каждым инклюдом ставь точку. Либо же замени свой define('SERVERURL',"http://test2.ru"); на define('SERVERURL',"."); Тогда все работает.
Так же посоветовал бы разобраться с шаблонизаторами (smarty, xtpl,...) - не потребуется выдумывать велосипед заново.
Ответ отправил: Flynn (статус: 2-ой класс)
Ответ отправлен: 15.07.2007, 20:54
Отвечает: Magister
Здравствуйте, Кривоносов Олег Юрьевич!
Несколько вариантов:
1. в файле php.ini директиве "auto_prepend_file" присвоить имя подключаемого файла.
Правда эта директива будет работать для ВСЕХ php-скриптов, да и хостинг-провайдеры не разрешают менять настройки в php.ini. А посему еще вариант: