Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подключение скрипта из другого доменв
 
 автор: DIM@   (05.06.2009 в 22:57)   письмо автору
 
 

Доброго времени суточек всем !!!

Есть вопрос:

Есть несколько доменов, скажем, 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

<?
echo CMS_PATH
?>


Вот это все выдает ошибку:
Notice: Use of undefined constant CSM_PATH - assumed 'CSM_PATH' in ......

В чем проблемв и как ее можно устранить?

надеюсь понятно все изложил :)

  Ответить  
 
 автор: nikita2206   (05.06.2009 в 23:16)   письмо автору
 
   для: DIM@   (05.06.2009 в 22:57)
 

а вы думали, получите исходный код ПХП файла с другого домена?
НЕТ, вы попробуйте в http://cmssait/index.php написать к примеру такое:
<?php
echo $_SERVER['HTTP_HOST'];
?>

когда откроете mysait/index.php, то увидите текст: cmssait

П.С. сайт, по английски, пишется Site

  Ответить  
 
 автор: DIM@   (05.06.2009 в 23:57)   письмо автору
 
   для: nikita2206   (05.06.2009 в 23:16)
 

Хорошо, пусть будет site я не спорю.

Но вопрос в том, что скрипт выполняется, но переменные и константы оределенные в вызвавшем его скрипте не доступны в нем.
Даже при вызове по прямой ссылке D:\WWW\csmsait\index.php

  Ответить  
 
 автор: mihdan   (06.06.2009 в 00:01)   письмо автору
 
   для: DIM@   (05.06.2009 в 23:57)
 

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

  Ответить  
 
 автор: ride   (06.06.2009 в 08:51)   письмо автору
 
   для: DIM@   (05.06.2009 в 22:57)
 

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

  Ответить  
 
 автор: DIM@   (06.06.2009 в 13:23)   письмо автору
 
   для: 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

<? 
echo CMS_PATH 
?>
 


но результат тот же

Notice: Use of undefined constant CSM_PATH - assumed 'CSM_PATH' in ......

  Ответить  
 
 автор: sim5   (06.06.2009 в 13:28)   письмо автору
 
   для: 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';  // Работает.
?>

  Ответить  
 
 автор: DIM@   (06.06.2009 в 14:08)   письмо автору
 
   для: sim5   (06.06.2009 в 13:28)
 

Я так понял, что как бы я не старался, но передать значения переменных кроме как методом GET не получится, даже если я это делаю исколючительно на localhost и обращаюсь по прямому пути к файлу.

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

  Ответить  
 
 автор: nikita2206   (06.06.2009 в 14:28)   письмо автору
 
   для: DIM@   (06.06.2009 в 14:08)
 

всё как раз таки, довольно просто…

  Ответить  
 
 автор: DIM@   (06.06.2009 в 14:30)   письмо автору
 
   для: nikita2206   (06.06.2009 в 14:28)
 

объясните, если не сложно :)

  Ответить  
 
 автор: sim5   (06.06.2009 в 14:30)   письмо автору
 
   для: DIM@   (06.06.2009 в 14:08)
 

Ну если изменения, это просто набор определяющих параметров, то достаточно получать их запросом. Если же подключением вы расчитываете на выполнение удаленного сценария "у себя", то конечно же нет.

  Ответить  
 
 автор: DIM@   (06.06.2009 в 14:37)   письмо автору
 
   для: sim5   (06.06.2009 в 14:30)
 

Спасибо за консультации, буду делать через GET :)

Думал что возможно гораздо проще :(

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования