ugrás a tartalomhoz

Include töprengés

Kenguru · 2005. Már. 7. (H), 18.22
Sziasztok!
A következőre keresem a megoldást és egy kicsit belebonyolódtam.

Van egy web hely pl. www.elso.hu. Itt létezik egy php file. Betöltök egy másik php file-t ami történetessen egy másik web helyen van. pl. www.masodik.hu Valahogy így:
include ("http://www.masodik.hu/masodik.php");
Ez megy is. A gondom a következő:
a masodik.php is szeretne betölteni modulokat a www.masodik.hu helyről. Na ez nem sikerül. Valahogy a masodik.php futása során meg kellene mondanom a rendszernek, hogy a www.masodik.hu helyen keresgéljen. Valaki próbálkozott ilyesmivel?
 
1

Security

Poetro · 2005. Már. 7. (H), 18.29
Szerintem Security dolgok miatt ezt nem tudod megcsinálni... Bár lehet tévedek.
--------
Poetro
2

Lehet de nem biztos...

Kenguru · 2005. Már. 7. (H), 18.50
Pár dolog. a masodik.php -ben session változót tudok létrehozni és ha újra hívom meg is marad. Tehát a session működik. $_GET -nek adott érték vissza tér a www.elso.hu helyre és ott használhatnám, de ha újra hívom a masodik.php-t át kell adnom.

Szóval ha nem lehet ez miért működik? Valamit lehet és valamit nem? Különben nem zárom ki, hogy nem lehetséges.

A lényeg az, hogy a saját php kódomat nem akarom átmásolni más szerverre hanem az enyémen akarom futtatni.
3

két független rendszer

Anonymous · 2005. Már. 7. (H), 22.20
Ha működik is a célzott esetben az include() így, nem szabad szem elől téveszteni, hogy a php kódok két független php rendszerben futnak. Tehát az első scriptbe be-"include()"-olt második script kódja nem fog megérkezni az első scriptbe, csak a lefutásának eredménye (pl. a html kód). A két script változói nem látják egymást, egymás függvényeit nem tudják közvetlenül meghívni.
Ez a rendszer elvéből fakadó viselkedés, nem lehet megkerülni.
(szerintem)

Üdv: Thom
4

alapvető védelem....

ppshungary · 2005. Már. 7. (H), 23.42
Csatlakozom az előttem szólókhoz... "Védelmi okok" miatt nem működik. Gondolj csak bele a következő szituba:

include("http://www.weblabor.hu/config.inc.php")
echo($dbname." ".$dbuser." ".$dbpwd);

Elég vicces lenne nem?

A session-ről meg annyit, hogy ez egy előre meghatározott struktúra alapján létrehozott txt file a szerver /TMP könyvtárában. Egy másik szerver nem férhet hozzá az ideiglenes állományokhoz, hacsak nem egy harmadik (független) SQL szerver valamelyik adattáblájába "dolgozik", amihez mindkettő hozzáfér...

Ha a szerveredre több domain van ráirányítva, akkor meg lehet oldani a problémát localhoston is. Ha az a két domain amiről beszélsz külön szervereken van, akkor válaszd a fenti(független SQL szerver [ami persze futhat bármelyiken]) megoldást!

PPS
5

rendszerek közti kommunikáció

Dualon · 2005. Már. 7. (H), 23.52
Valahogy olyan érzésem van, hogy kevésbé "ágyú" megoldások kellenek erre a verébre: szerintem a legegyszerűbb az lenne, ha a két rendszer közt remek kis XML alapú kommunikációt építene/építenél ki.
6

re...

Kenguru · 2005. Már. 8. (K), 12.23
Szóval ne akarjak ilyent! Az XML kapcsolatos módszert ajánlotta már más is.

Vagy marad az alap felállás. a php állományokat át másolom a további szerverekre. Ennek két hátrányát érzem.

1: Egy más rendszergazda hozzáfér a php forráshoz.
2: Frissítés esetén mindenhová újra másolnom kell.

Adatkapcsolat esetén (pl. XML)nagyobb munka újra átgondolni a rendszert, de elegánsabb és husszútávú megoldás lehet. Ebben az esetben is igaz a fenti két problémám. Igaz az is, hogy ez már sokkal kevesebb infó.

Egyéb:
ppshungary válaszára azt mondanám, hogy ha a config.inc.php fileban van GET visszakapom a benne szereplő változókat. És általában szokott lenni. Ha van rá lehetőséged próbáld ki. Bár ez lehet, hogy függ a szerver beállításától is.

Leírom a konkrét feladatot:

Készítettem egy portált ahol hirdetések vannak (autó, ingatlan). Ez a szerveremen fut. A rendszerem autó közvetitő részét használná egy autókereskedő. Az Ő weboldalába akarom beilleszteni. A kinézet CSS-el működik és úgy jelenik meg ahogy neki kell. Az oldalakat előállító php ugyan az mint az én gépemen lévő. Na ezt akrtam az én szerveremen hagyni.

Különben, ha egy php fileba zsúfolok mindent működik a dolog.
7

Ez továbbra is XML

Dualon · 2005. Már. 9. (Sze), 10.53
Szerintem még mindig az lenne a legjobb, ha generálnál a Te szervereden egy XML állományt, amit aztán a kereskedő oldalán feldolgoztatsz... (majdnem, mint egy RSS feed). Ennek megvan az az előnye is, hogy "erőforrás-barát" (hisz az XML-t elég csak akkor generálnod, mikor változnak adatok).

Megoldás lehet az is, hogy az adatbázisszerverhez/tárolt adatokhoz nem csak localhostról lehet kapcsolódni, vagy az is, hogy csinálsz egy olyan scriptet, ami meghíváskor feldolgozza a szükséges adatokat, és kimenetén pl. egy adattömböt küld.
Biztonsági okokból (nyilvánvalóan...) ezek egyikét sem tartom túl szerencsésnek.
8

OK

Kenguru · 2005. Már. 9. (Sze), 13.56
Már az agyamba körvonalazódik az új rendszer gondolata. XML alapúra átírom a kapcsolati részt.

Köszönöm a véleményeket.
9

A megoldás ! ! !

Kenguru · 2005. Már. 9. (Sze), 20.06
Röhejesen egyszerű és okuláskép közreadom:

Ez a kód a www.elso.hu szerveren van:

$include_string="http://www.masodik.hu/hivando.php;
$f=fopen($include_string,'r');
$d=fread($f,100*1024);
fclose($f);
echo $d;
A hivando.php a www.masodik.hu szerveren úgy működik mint ha onnét hívtam volna. Relatív hivatkozást tud használni. Aki nem hiszi járjon utánna.

Az eredeti cél megvalósúlt!
10

biztonság?

Poetro · 2005. Már. 9. (Sze), 20.58
De így pont a kitűzött célt, azaz a biztonságot rúgtad fel.
Azaz bárki, aki látja a masodik.hu oldalon levő php forrását szintén meg tudja kapni az elso.hu-n levő fájl forrását is, amivel egyből buktad is az, hogy ott ne legyenek meg a fájlok. Ráadásul feleslegesen terheled mind2 gép sávszélességét.
Persze ha a masodik.hu-n senkinek sincs belelátása a PHP-dba, akkor a dolog még biztonságos is lehet, amennyiben nem derül ki, mit is akar inklúdolni. Ha ugyanis bárhol bármilyen formában kiderül ez, akkor bárki, aki ezt az URLt ismeri szintén le tudja kérni a nem publikus adatokat.
Szóval azért az ilyen megoldásokkal csínján kell bánni.
--------
Poetro
11

Re...

Kenguru · 2005. Már. 9. (Sze), 21.27
Poetro!

A masodik.hu ról a php nem megy át csak a html eredmény. Amit lát a másik oldal az csak a hivando.php file neve. Az elso.hu szerver rendszergazdája látja ezt a hivó pár sort. Élesbe kipróbáltam és egyenlőre úgy látom, hogy jó megoldás. Ebben az esetben az fopen úgy működik mintha include lenne. És lehet GET paraméterezést is!