Как включить страницы, созданные CodeIgniter? - PullRequest
4 голосов
/ 01 декабря 2009

Какой самый простой способ включить файл CI? Допустим, я хочу включить http://example.com/ci/index.php/mycontroller/ на example.com

example.com не запускает CI, и я не могу включить include ('ci / index.php / mycontroller').

Ответы [ 4 ]

3 голосов
/ 08 декабря 2009

Поскольку я не мог вызвать функции контроллера CI, я решил, что проще всего загрузить страницу с помощью jQuery:

$('#myDiv').load('ci/index.php/mycontroller', {}, function(){
        $('#myDiv #loading').hide();
        $('#myDiv #data').slideDown(500);
});
1 голос
/ 01 декабря 2009

Предполагается, что PHP настроен на разрешить URL включает , просто ...

include('http://example.com/ci/index.php/mycontroller/');

(Требуется PHP 4.3.0 +)

0 голосов
/ 01 декабря 2009

Если вы хотите просто отобразить вывод скрипта CI, вы можете открыть URL-адрес, прочитать содержимое и вывести их - или использовать readfile(). С точки зрения приложения CI, запрос будет исходить от включающего сервера (не конечного пользователя), и для передачи файлов cookie / сеансовых переменных потребуется использование чего-то вроде cURL.

Если вы действительно хотите включить исходный код , это возможно, но это угроза безопасности. Есть несколько SO вопросов по этой теме:

Они отмечают (среди прочего), что для включения источника вам необходимо убедиться, что сайт CI не выполняет страницу, а просто выводит содержимое файла php, и что на самом деле код из URL является удивительно опасно

Вы, по сути, доверяете включенному сайту (и всем серверам, через которые проходит запрос) предоставлять (хороший) код, который затем включающий сервер будет выполнять без вопросов.

0 голосов
/ 01 декабря 2009

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

РЕДАКТИРОВАТЬ : На самом деле, я думаю, что было бы лучше пойти другим путем, если это возможно (опять же, это зависит от того, что именно вы хотите сделать - поэтому, пожалуйста, сообщите нам). Я имею в виду создание контроллера CodeIgniter, который просто включает ваш скрипт ...

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