С нами с 02.01.04
Сообщения: 1246
Рейтинг: 54
|
Добавлено: 23/04/09 в 04:42 |
на пхп сделал такую вещь, напр в файле есть инклуд и код:
Код: |
<?
@include "somedomain.com/site.php?site=81";
echo $title;
?>
|
Переменная title инициируется в инклуде, но значение не сохраняет когда используется в файле, откуда вызывается инклуд. Вроде должно работать.. пробовал объявлять переменную перед include в этом же файле, где и вызывается, не помогло
Может нужно не .php а .inc файл инклудить, или еще что..
Последний раз редактировалось: Proo (23/04/09 в 14:30), всего редактировалось 1 раз
|
|
|
|
С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096
|
Добавлено: 23/04/09 в 05:19 |
|
|
|
|
С нами с 19.10.05
Сообщения: 351
Рейтинг: 755
|
Добавлено: 23/04/09 в 11:06 |
allow_url_include = On
В php.ini если включён то должно работать!
|
|
|
|
С нами с 19.10.05
Сообщения: 351
Рейтинг: 755
|
Добавлено: 23/04/09 в 12:01 |
хотя переменную брать небудет всёравно с другого хоста. но подтянуть файл сможеш!
|
|
|
|
С нами с 10.12.02
Сообщения: 31
Рейтинг: 49
|
Добавлено: 23/04/09 в 13:01 |
Поможет комбинация
site.php на выходе должно выдавать
в этом случае
Код: | <?php
$f=file("http://somedomain.com/site.php?site=81");
$title_read=$f[0];
?> |
|
|
|
|
С нами с 02.01.04
Сообщения: 1246
Рейтинг: 54
|
Добавлено: 23/04/09 в 14:37 |
Цитата: | Поможет комбинация
site.php на выходе должно выдавать
в этом случае
Код: | <?php
$f=file("http://somedomain.com/site.php?site=81");
$title_read=$f[0];
?> | |
там много переменных, не только тайтл..
как то сложновато..
все оценил, надесюсь еще варианты есть )
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 23/04/09 в 15:26 |
можно поизвращаться в этом духе
site.php на выходе должно выдавать Код:
echo $title."\n";
echo $title2."\n";
echo $title3."\n";
<?php
$f=file("http://somedomain.com/site.php?site=81");
$title=$f[0];
$title2=$f[1];
$title3=$f[2];
?>
переменные, они какбэ внутри сервера и передать их с одного сервера на другой невозможно без жеских извращений
можно еще вот так поизвращаться
site.php на выходе должно выдавать Код:
echo "$title:|:$title2:|:$title3";
<?php
$f=file("http://somedomain.com/site.php?site=81");
list($title, $title2, $title3) = explode(" :", $f);
|
|
|
|
С нами с 02.01.04
Сообщения: 1246
Рейтинг: 54
|
Добавлено: 23/04/09 в 19:27 |
Цитата: | можно поизвращаться в этом духе |
Да уж
Еще хочу рассмотреть вариант подключения к БД вместо инклудов.. дело в том что запросы будут идти с разных хостов, а данные как бы на одном сервере..
Как думаете подлючение к БД с др. серверов нормальный вариант?
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 23/04/09 в 19:32 |
Proo писал: |
Как думаете подлючение к БД с др. серверов нормальный вариант? |
нормальный, главное не забывать закрывать соединения
|
|
|
|
С нами с 02.01.04
Сообщения: 1246
Рейтинг: 54
|
Добавлено: 23/04/09 в 20:01 |
Цитата: | нормальный, главное не забывать закрывать соединения |
че были прецеденты ?
|
|
|
|
С нами с 16.04.05
Сообщения: 754
Рейтинг: 352
|
Добавлено: 28/04/09 в 09:12 |
Вы где такую траву берёте....?
|
|
|
|
С нами с 03.05.07
Сообщения: 801
Рейтинг: 825
|
Добавлено: 28/04/09 в 18:24 |
Сделаешь allow_url_include = On и когда-нибудь встретишь утро с новостью о заломанном сервере. Нахуй такое советовать человеку - за такое руки надо отрывать.
Удалённый коннект к базе возможен, только не забудь привязать по ипу.
Для подобных вещей умные люди придумали протоколы типа SOAP. Если лень разбираться с этим, то передавай все нужные данные с помощью serialize и распаковывать с помощью unserialize. Т.е. на удалённом сервере делай:
Код: |
$data["title"]="что нужно";
$data["description"]="ещё что-нибудь";
echo serialize($data);
|
а на клиенте:
Код: | extract(unserialize(file_get_contents("http://somedomain.com/site.php?site=81")),EXTR_SKIP);
echo $title;
echo $description;
|
Простейший вариант, тоже далеко не лучший.
|
|
|
|
С нами с 23.12.08
Сообщения: 232
Рейтинг: 101
|
Добавлено: 28/04/09 в 19:45 |
> Для подобных вещей умные люди придумали протоколы типа SOAP
+1
> serialize и распаковывать с помощью unserialize
кроме того, снабжаешь весь свой "кластер" приват/паблик ключами (или просто обычный симметричный ключ), и упомянутое выше утро, на некоторое время, произойдёт с отсрочкой ;)
зы: и вообще, имхо в ПЫХе много всякого кариеса от прошлых версий (типа ради совместимости) осталось... это не означает, что всё это можно использовать без последствий;)
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 28/04/09 в 23:44 |
Formator писал: | Если лень разбираться с этим, то передавай все нужные данные с помощью serialize и распаковывать с помощью unserialize. |
Если php 5.2 - то лучше json. json_encode/json_decode. Все просто и куда надежнее.
|
|
|
|
С нами с 16.04.05
Сообщения: 754
Рейтинг: 352
|
Добавлено: 29/04/09 в 00:20 |
Formator +1, только как ты написал - нельзя - получается дыра для неопредёлённого кол - ва параметров.
Надо на стороне приёма:
list($title, $description, ...) = unserialize(file_get_contents("http://somedomain.com/site.php?site=81"));
либо, если совсем туго с пониманием процессов воспользоваться советом ibiz.
|
|
|
|
С нами с 18.08.04
Сообщения: 6376
Рейтинг: 4430
|
Добавлено: 29/04/09 в 10:31 |
дык пиши там просто $title = "blabla";
потом eval() юзай и все
|
|
|
|
С нами с 16.04.05
Сообщения: 754
Рейтинг: 352
|
Добавлено: 29/04/09 в 13:22 |
Цитата: | дык пиши там просто $title = "blabla";
потом eval() юзай и все |
Нельзя так делать, уже писал постом выше почему. Хочешь передать стопку переменных - конкретизируй на стороне приёма какие именно переменные ты хочешь принять (а лучше и тип данных, если можно конечно).
|
|
|
|
С нами с 27.04.09
Сообщения: 7
Рейтинг: 6
|
Добавлено: 30/04/09 в 10:39 |
спасибо поржал
скока кодеров развелось..
|
|
|
|
С нами с 23.12.08
Сообщения: 232
Рейтинг: 101
|
Добавлено: 30/04/09 в 15:58 |
Гы, чё вы ссоритесь ;)
В общем, ТС, если проблема ещё актуальна – тогда плиз конкретизируй: статические ли ИПы на всех хостингах, зависящих от централизованной БД, имеется ли возможность разрешать удалённый мускульный доступ на сервере где БД.
Если это всё true, то тогда делай так, как говорил ibiz, всё.
Если же что то из этого не выполняется, то ИМХО, в порядке простоты (но не эффективности):
1. метод с serialize (Sirgey + +, я цитировал только саму суть операций, естественно, extract это зло в данном случае)
2. xml-rpc/soap
Кстати, решение типа list($title, $description, ...), ИМХО так же не является достаточно правильным (разумеется, основываясь только на той инфе, которую предоставил ТС) так как является прямым примером жёсткой зависимости в архитектуре (всё-таки распределённая система ;) и избавиться от которой, можно например сведением зависимостей экспортирующей/импортирующих частей к одному транспортному интерфейсу. То есть все учавствующие в обмене стороны, знают интерфейс некоего Registry, реализующим методы типа setProperty($name, $value), getProperty($name), и возможно, умеющий самостоятельно сериализоваться/десериолизоваться… то есть, упрощённое подобие Transition Object. Ну или просто тупо ассоциативный массив по сети гонять ;)
То есть, поскольку до конца не ясны масштабы сети, нагрузки на БД, род запросов, универсальность базы (что там вообще - ферма сплогов, аутентификация, единная для всех сайтов "класстера") и т.д., кроме сериализации (без кеширования и прочих наворотов) ИМХО, слегка сложновато, НО! Если есть возможность конфигурировать удалённый доступ к мускулю на стороне сервера БД, юзай именно это… ИМХО ;)
~~~
правка: и т.д., РЕКОМЕНДОВАТЬ кроме сериализации (без кеширования и прочих наворотов) ИМХО,
|
|
|
|