Включение файлов в php не найдено - PullRequest
0 голосов
/ 13 ноября 2011

Я работаю над проектом php, и у меня проблемы с включением файлов.

У меня есть скрипт php, который находится в myapp / reports / index.php.Когда форма отправляется, она отправляет сообщение ajax другому phpscript, расположенному по адресу myapp / reports / phpHander / submit.php.

Submit.php, затем должен включить php-скрипт, который используется для отправки электронного письма.Это сделано для того, чтобы один и тот же код можно было использовать снова и снова, без необходимости вводить его каждый раз, когда это необходимо.Этот сценарий php находится по адресу ../../administrator/classes/send.php.

До этого момента все работало нормально, однако сценарий send.php включает другой файл для получения параметров конфигурации приложения, который находитсяв администратор / appConfig.php.Проблема в том, что этот appConfig.php не найден, даже если я ввел полный веб-адрес http://localhost/myapp/administrator/appConfig.php.

Что я делаю не так.Я использую функцию php include, чтобы сделать это, и она работает для всего остального, но, похоже, возникла проблема с включением другого скрипта из другого места.

Спасибо за любую помощь, которую вы можете предоставить.

Ответы [ 2 ]

5 голосов
/ 13 ноября 2011

http://localhost/myapp/administrator/appConfig.php - это только URL-путь.

Вам нужен абсолютный путь к файлу, например C:/wamp/www/myapp/administrator/appConfig.php (Windows) или /var/www/myapp/administrator/appConfig.php (Linux)


В любом случае, лучший способ - создать файл "dirs.php" в корневом каталоге приложения с константой:

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

где dirname(__FILE__) будет абсолютным путем к каталогу вашего приложения.

С этим знанием вы можете включать файлы следующим образом:

MyApp / отчеты / index.php:

require_once('../../dirs.php');
include(ROOT_DIR . '/administrator/appConfig.php');

MyApp / отчеты / phpHander / submit.php:.

require_once('../../../dirs.php');
include(ROOT_DIR . '/administrator/appConfig.php');
1 голос
/ 13 ноября 2011

Когда вы включаете другой скрипт PHP, все пути относятся к вызывающему скрипту.Итак, похоже, что ваш скрипт находится в myapp / reports / phpHander / submit.php и включает в себя ../../administrator/classes/send.php, который затем включает в себя другой скрипт в этом же каталоге.В этом случае вам нужно использовать путь "../../administrator/appConfig.php".В качестве альтернативы вы можете использовать абсолютные пути относительно корня файловой системы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...