|
|
|
| Доброго времени суточек всем !!!
Есть вопрос:
Есть несколько доменов, скажем, http://mysait и http://cmssait необходимо вызвать скрипт из домена http://cmssait/index.php, но в http://mysait/index.php есть несколько определений define, которые почему то оказываются не определены в вызываемом скрипте.
http://mysait/index.php
<?
define("CMS_PATH", "html://cmssait/"); // Путь к системе управления порталом
include(CMS_PATH."index.php");
?>
|
http://cmssait/index.php
Вот это все выдает ошибку:
Notice: Use of undefined constant CSM_PATH - assumed 'CSM_PATH' in ......
В чем проблемв и как ее можно устранить?
надеюсь понятно все изложил :) | |
|
|
|
|
|
|
|
для: DIM@
(05.06.2009 в 22:57)
| | а вы думали, получите исходный код ПХП файла с другого домена?
НЕТ, вы попробуйте в http://cmssait/index.php написать к примеру такое:
<?php
echo $_SERVER['HTTP_HOST'];
?>
|
когда откроете mysait/index.php, то увидите текст: cmssait
П.С. сайт, по английски, пишется Site | |
|
|
|
|
|
|
|
для: nikita2206
(05.06.2009 в 23:16)
| | Хорошо, пусть будет site я не спорю.
Но вопрос в том, что скрипт выполняется, но переменные и константы оределенные в вызвавшем его скрипте не доступны в нем.
Даже при вызове по прямой ссылке D:\WWW\csmsait\index.php | |
|
|
|
|
|
|
|
для: DIM@
(05.06.2009 в 23:57)
| | При подключении скрипта с другого домена (если настройки вообще это позволят) вы получите не исходник скрипта (его переменные и константы), а результат его работы (сгенерированный код html, например) | |
|
|
|
|
|
|
|
для: DIM@
(05.06.2009 в 22:57)
| | если так можно было бы делать, тогда и программистам работы было бы намного меньше: скачал исходник с какого-нить сайта и все. | |
|
|
|
|
|
|
|
для: ride
(06.06.2009 в 08:51)
| | Это все понятно, я это делаю на localhost и пытаюсь теперь обращаться по прямому пути к файлу
http://mysait/index.php
<?
define("CMS_PATH", "D:/WWW/csmsait/index.php"); // Путь к системе управления порталом
include(CMS_PATH."index.php");
?>
|
http://cmssait/index.php
но результат тот же
Notice: Use of undefined constant CSM_PATH - assumed 'CSM_PATH' in ...... | |
|
|
|
|
|
|
|
для: DIM@
(06.06.2009 в 13:23)
| | Вы вообще понимаете, что выделаете? Вы вместо:
include(CMS_PATH."index.php");
выведите на экран, то чего сморозили:
echo CMS_PATH."index.php";
Что у вас получается?
PS. Не дожидаясь ответа, сразу дополняю, читайте:
Если "URL fopen-оболочки" включены в PHP (как в конфигурации по умолчанию), вы можете специфицировать файл, подключаемый с использованием URL (через HTTP), вместо локального pathname. Если целевой сервер интерпретирует целевой файл как PHP-код, переменные могут передаваться в подключаемый файл с использованием URL-строки запроса, как в HTTP GET. Строго говоря, это не то же самое, что подключение файла и наследование им области видимости переменных родительского файла; ведь скрипт работает на удалённом сервере, а результат затем подключается в локальный скрипт.
Предупреждение!
Windows-версия до PHP 4.3.0 не поддерживает доступ к удалённым файлам с помощью этой функции, даже если allow_url_fopen включена.
Пример include() через HTTP
<?php
/* Здесь предполагается, что www.example.com сконфигурирован для разбора .php *
* файлов, а не .txt файлов. Также 'работать' здесь означает, что переменные *
* $foo и $bar доступны в подключённом файле. */
// Не будет работать; file.txt не был обработан www.example.com как PHP
include 'http://www.example.com/file.txt?foo=1&bar=2';
// Не будет работать; ищет файл 'file.php?foo=1&bar=2' в локальной
// файловой системе.
include 'file.php?foo=1&bar=2';
// Работает.
include 'http://www.example.com/file.php?foo=1&bar=2';
$foo = 1;
$bar = 2;
include 'file.txt'; // Работает.
include 'file.php'; // Работает.
?>
|
| |
|
|
|
|
|
|
|
для: sim5
(06.06.2009 в 13:28)
| | Я так понял, что как бы я не старался, но передать значения переменных кроме как методом GET не получится, даже если я это делаю исколючительно на localhost и обращаюсь по прямому пути к файлу.
Мне это нужно только для того, чтобы управление контентом сайта было в одном месте, а админская часть вызывалась из разных проектов, устал отслеживать изменения в админской части в разных проектах. Вот решил сделать ее в одном месте, но как я понял, не все так просто. | |
|
|
|
|
|
|
|
для: DIM@
(06.06.2009 в 14:08)
| | всё как раз таки, довольно просто… | |
|
|
|
|
|
|
|
для: nikita2206
(06.06.2009 в 14:28)
| | объясните, если не сложно :) | |
|
|
|
|
|
|
|
для: DIM@
(06.06.2009 в 14:08)
| | Ну если изменения, это просто набор определяющих параметров, то достаточно получать их запросом. Если же подключением вы расчитываете на выполнение удаленного сценария "у себя", то конечно же нет. | |
|
|
|
|
|
|
|
для: sim5
(06.06.2009 в 14:30)
| | Спасибо за консультации, буду делать через GET :)
Думал что возможно гораздо проще :( | |
|
|
|