Включение класса PHP из субдомена - PullRequest
0 голосов
/ 24 мая 2011

По сути, у меня есть класс Avian, который содержит логику для некоторых основных вещей, таких как:

  1. Подключение к MySQL
  2. Проверка статуса входа
  3. Отображение панели навигации

Эти файлы хранятся в "projectavian", который является папкой в ​​корневом каталоге моего хоста и является папкой для всех файлов, которые будут отображаться на mydomain.com.

Я пошел и настроил несколько поддоменов, таких как dev.mydomain.com. Мой хост создает папки для поддоменов в корневом каталоге вместе с папкой "projectavian". Самая дальняя спина, на которую я, похоже, могу перейти из HTML / PHP-страницы в «projectavian» или папка для моего субдомена, относится только к этой папке (то есть я не могу получить доступ к корню, набрав "/subdomain_folder" или добавив столько "../"s, сколько я хочу.

Все, что мне нужно сделать, это использовать include или требовать, чтобы получить мой класс PHP от mydomain.com на странице, которая находится на dev.mydomain.com. Очевидно, вы не можете сделать include "http://somedomain.com/file.php". Может быть, есть функция PHP, которая может получить доступ к корневому каталогу сервера?

Ответы [ 3 ]

1 голос
/ 24 мая 2011

Тот факт, что вы не можете отскочить назад и войти в свои папки поддоменов, является ограничением вашего хоста - вы можете поговорить с ним об этом.

Вы можете сделать include "http://somedomain.com/file.php",но file.php должен выводить действительный PHP, а не результат обработки этого PHP.Это означает, что файл становится общедоступным, и любой может просмотреть ваш код, что может быть проблемой безопасности.Может быть, обернуть его в PHP аутентификация ?

1 голос
/ 24 мая 2011

Вы можете использовать магические константы в сочетании с dirname следующим образом:

$root = dirname(dirname(__FILE__));

, который позволяет вам получить доступ к вашему корневому каталогу, и оттуда вы можете сделать что-то вроде:

$path = $root . '/subdomain_folder/' . $filename;

проверьте эти ссылки как для dirname, так и для магической константы

http://php.net/manual/en/function.dirname.php

http://php.net/manual/en/language.constants.predefined.php

0 голосов
/ 24 мая 2011

Какую ошибку вы получаете? Скорее всего, это могут быть неверные разрешения или ограничение PHP open_basedir (скорее всего). Вы можете отключить open_basedir и / или безопасный режим PHP через php.ini.

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