Situazione:
- Due pagine, per comodità chiamate: PRINCIPALE.PHP e SECONDARIA.PHP.
- Il contenuto di SECONDARIA.PHP deve essere caricato in PRINCIPALE.PHP.
Il problema è di facile soluzione utilizzando degli iframes. Tuttavia poichè
tramite PRINCIPALE.PHP devo comunicare in SECONDARIA.PHP l'host (in
particolare il nome a dominio) su cui PRINCIPALE.PHP è stata caricata; mi
trovo costretto a evitare l'uso degli iframes.
La soluzione sarebbe quella di ricorrere a un semplice codice JAVASCRIPT
inserito in PRINCIPALE.PHP in cui viene richiamata e quindi caricata la
pagina SECONDARIA.PHP e dalla pagina SECONDARIA.PHP essere in grado di
rilevare l'host in cui è posta la pagina PRINCIPALE.PHP.
Ritengo importante precisare che SECONDARIA.PHP è una pagina collocata
esternamente a PRINCIPALE.PHP, ovvero non è associata allo stesso
host/server.
Ciò premesso, in che modo posso risolvere problema sopra descritto per
ottenere il risultato richiesto? Se ci sono soluzioni alternative più
efficaci, magari meno contorte etc, ben vengano.
Quello che mi interessa è che dalla pagina SECONDARIA.PHP (esterno al sito e
caricata in PRINCIPALE.PHP) possa ricavarmi l'host in cui è posta la pagina
PRINCIPALE.PHP.
Spero di aver esposto in modo chiaro il problema.
Grazie in anticipo a chi potrà aiutarmi a risolvere questo problema.
Cooper.
> Situazione:
> - Due pagine, per comodità chiamate: PRINCIPALE.PHP e SECONDARIA.PHP.
> - Il contenuto di SECONDARIA.PHP deve essere caricato in PRINCIPALE.PHP.
Un bell'include da PHP?
> Il problema è di facile soluzione utilizzando degli iframes. Tuttavia poichè
> tramite PRINCIPALE.PHP devo comunicare in SECONDARIA.PHP l'host (in
> particolare il nome a dominio) su cui PRINCIPALE.PHP è stata caricata; mi
> trovo costretto a evitare l'uso degli iframes.
Ti trovi costretto anche a evitare l'uso di javascript, perché per via
della SOP (Same Origin Policy) non puoi far dialogare più di tanto due
documenti che stanno su due domini differenti.
> La soluzione sarebbe quella di ricorrere a un semplice codice JAVASCRIPT
> inserito in PRINCIPALE.PHP in cui viene richiamata e quindi caricata la
> pagina SECONDARIA.PHP e dalla pagina SECONDARIA.PHP essere in grado di
> rilevare l'host in cui è posta la pagina PRINCIPALE.PHP.
Scusa la domanda eh, ma se anche ti fosse possibile una cosa di questo
tipo, nel momento in cui da JS fai una richiesta a SECONDARIA.PHP, per
poterla caricare, non sai già l'host in cui si trova?
Per caricarla devi passare a JS l'URL, e nell'URL c'è l'host.
> Ritengo importante precisare che SECONDARIA.PHP è una pagina collocata
> esternamente a PRINCIPALE.PHP, ovvero non è associata allo stesso
> host/server.
Infatti. Vedasi la SOP.
> Ciò premesso, in che modo posso risolvere problema sopra descritto per
> ottenere il risultato richiesto? Se ci sono soluzioni alternative più
> efficaci, magari meno contorte etc, ben vengano.
Fai tutto lato server. che tu usi l'include o fai del tunneling (visto
che il server ovviamente non risente della SOP), poco importa.
> Spero di aver esposto in modo chiaro il problema.
Fai tutto lato server. che tu usi l'include o fai del tunneling (visto
Esposto sembra esposto chiaramente, ma posta in questi termini mi pare
che non abbia molto senso il discorso di prima: se possiedi l'url, sai
già l'host.
--
~ Se potete leggere questo, la mia donna è caduta.
(Letta sul retro di una maglietta di un motociclista)
>> La soluzione sarebbe quella di ricorrere a un semplice codice JAVASCRIPT
>> inserito in PRINCIPALE.PHP in cui viene richiamata e quindi caricata la
>> pagina SECONDARIA.PHP e dalla pagina SECONDARIA.PHP essere in grado di
>> rilevare l'host in cui è posta la pagina PRINCIPALE.PHP.
>
> Scusa la domanda eh, ma se anche ti fosse possibile una cosa di questo
> tipo, nel momento in cui da JS fai una richiesta a SECONDARIA.PHP, per
> poterla caricare, non sai già l'host in cui si trova?
> Per caricarla devi passare a JS l'URL, e nell'URL c'è l'host.
>
No perchè viene restituito l'host di SECONDARIO.PHP (che è la pagina
residente sul server diverso dalla pagina PRINCIPALE.PHP residente su un
altro server e che richiama SECONDARIO.PHP.
> Fai tutto lato server. che tu usi l'include o fai del tunneling (visto
> che il server ovviamente non risente della SOP), poco importa.
>
Non posso, perchè il codice di SECONDOARIO.PHP deve essere inserito
dall'utente terzo nella pagina PRINCIPALE.PHP.
> Fai tutto lato server. che tu usi l'include o fai del tunneling (visto
> Esposto sembra esposto chiaramente, ma posta in questi termini mi pare
> che non abbia molto senso il discorso di prima: se possiedi l'url, sai
> già l'host.
>
E' qui il punto, la pagina PRINCIPALE.PHP è una pagina residente in un
server diverso (dominio diverso) di cui appunto non conosco l'host, e di cui
devo ricavarmi attraverso SECONDARIO.PHP.
Cooper.
>> Scusa la domanda eh, ma se anche ti fosse possibile una cosa di questo
>> tipo, nel momento in cui da JS fai una richiesta a SECONDARIA.PHP, per
>> poterla caricare, non sai già l'host in cui si trova?
>> Per caricarla devi passare a JS l'URL, e nell'URL c'è l'host.
> No perchè viene restituito l'host di SECONDARIO.PHP (che è la pagina
> residente sul server diverso dalla pagina PRINCIPALE.PHP residente su un
> altro server e che richiama SECONDARIO.PHP.
Vediamo se stavolta ho inteso: PRINCIPALE.PHP richiama una pagina, e
tu dalla pagina richiamata (SECONDARIO.PHP) vuoi capire l'host della
pagina che l'ha chiamata (PRINCIPALE.PHP).. è corretto?
Ma tu, PRINCIPALE.PHP, puoi modificarla? Perché avevo inteso di si e
in tal caso puoi fare la richiesta di SECONDARIO.PHP direttamente da
PHP come ti ho detto prima, tramite curl, socket o quant'altro, così
da passare direttamente tu l'host durante la richiesta, ed eventuali
altri valori che ti possano interessare.
>> Fai tutto lato server. che tu usi l'include o fai del tunneling (visto
>> che il server ovviamente non risente della SOP), poco importa.
> Non posso, perchè il codice di SECONDOARIO.PHP deve essere inserito
> dall'utente terzo nella pagina PRINCIPALE.PHP.
Questo non mi è del tutto chiaro.
>> Fai tutto lato server. che tu usi l'include o fai del tunneling (visto
>> Esposto sembra esposto chiaramente, ma posta in questi termini mi pare
>> che non abbia molto senso il discorso di prima: se possiedi l'url, sai
>> già l'host.
> E' qui il punto, la pagina PRINCIPALE.PHP è una pagina residente in un
> server diverso (dominio diverso) di cui appunto non conosco l'host, e di cui
> devo ricavarmi attraverso SECONDARIO.PHP.
Avevo inteso l'opposto sorry. Il punto è che in JS non lo fai perché
sei su due server diversi, e risente della SOP.
Comunque da SECONDARIO.PHP puoi controllare gli HTTP header e vedere
quale pagina ha fatto la richiesta (se l'header risulta avvalorato).
Puoi quindi buttare tutto su un iframe o frame.
Il referrer lo puoi verificare anche da JS:
<http://developer.mozilla.org/en/docs/DOM:document.referrer>
ma non ci farci troppo affidamento.
--
~ Ci si aspetta di tutto, ma non si e' mai preparati a nulla.
(M.Swetchine)
> Ma tu, PRINCIPALE.PHP, puoi modificarla?
>
No, non posso modificarla perchč č una pagina appartenente a terzi, che
andrebbero a inserire il codice per richiamare SECONDARIO.PHP (Il codice che
loro dovrebbero utilizzare č proprio quello che mi interessa infatti,
affinchč io possa da SECONDARIO.PHP rilevare l'host di PRINCIPALE.PHP).
> Perché avevo inteso di si e
> in tal caso puoi fare la richiesta di SECONDARIO.PHP direttamente da
> PHP come ti ho detto prima, tramite curl, socket o quant'altro, cosě
> da passare direttamente tu l'host durante la richiesta, ed eventuali
> altri valori che ti possano interessare.
>
Cioč? Piů precisamente?
>> Non posso, perchč il codice di SECONDOARIO.PHP deve essere inserito
>> dall'utente terzo nella pagina PRINCIPALE.PHP.
>
> Questo non mi č del tutto chiaro.
>
Cosa in particolare?
> Avevo inteso l'opposto sorry. Il punto č che in JS non lo fai perché
> sei su due server diversi, e risente della SOP.
> Comunque da SECONDARIO.PHP puoi controllare gli HTTP header e vedere
> quale pagina ha fatto la richiesta (se l'header risulta avvalorato).
> Puoi quindi buttare tutto su un iframe o frame.
>
Uhm un esempio piů concreto? Io ho provato a seguire questa strada con
l'iframe, ma mi ritorna il valore dell'host di SECONDARIO.PHP e non di
PRINCIPALE.PHP
> Il referrer lo puoi verificare anche da JS:
>
> <http://developer.mozilla.org/en/docs/DOM:document.referrer>
>
> ma non ci farci troppo affidamento.
>
E infatti devo scartare questa strada, altrimenti sarebbe stato molto
semplice :(
Cooper.
>> Ma tu, PRINCIPALE.PHP, puoi modificarla?
> No, non posso modificarla perchè è una pagina appartenente a terzi,
Allora vedo poche soluzioni.
> che
> andrebbero a inserire il codice per richiamare SECONDARIO.PHP (Il codice che
> loro dovrebbero utilizzare è proprio quello che mi interessa infatti,
Ma quindi la puoi modificare. Nel senso che sei tu che gli fornisci il
codice che poi loro andranno ad aggiungere per caricare la tua pagina.
>> Perché avevo inteso di si e
>> in tal caso puoi fare la richiesta di SECONDARIO.PHP direttamente da
>> PHP come ti ho detto prima, tramite curl, socket o quant'altro, così
>> da passare direttamente tu l'host durante la richiesta, ed eventuali
>> altri valori che ti possano interessare.
> Cioè? Più precisamente?
Fai fare da "principale.php" una chiamata HTTP lato server alla tua di
pagina, avvalorando l'HTTP_REFERER: in questo modo lo sai per certo di
poterti affidare a quell'header http, sarà sempre avvalorato.
A quel punto dalla tua pagina lo recuperi e ci fai quello che devi.
>>> Non posso, perchè il codice di SECONDOARIO.PHP deve essere inserito
>>> dall'utente terzo nella pagina PRINCIPALE.PHP.
>> Questo non mi è del tutto chiaro.
> Cosa in particolare?
Perché non puoi. :)
Sei tu a fornire il codice per caricare la pagina, no?
>> Avevo inteso l'opposto sorry. Il punto è che in JS non lo fai perché
>> sei su due server diversi, e risente della SOP.
>> Comunque da SECONDARIO.PHP puoi controllare gli HTTP header e vedere
>> quale pagina ha fatto la richiesta (se l'header risulta avvalorato).
>> Puoi quindi buttare tutto su un iframe o frame.
> Uhm un esempio più concreto?
Più concreto di così? :) Cosa vorresti sapere esattamente?
> Io ho provato a seguire questa strada con
> l'iframe, ma mi ritorna il valore dell'host di SECONDARIO.PHP e non di
> PRINCIPALE.PHP
Ma quindi la puoi modificare. Nel senso che sei tu che gli fornisci il
Scusa la banalità, ma tu hai richiesto l'HTTP_REFERER o l'HTTP_HOST..?
--
~ "Io rispetto molto la stupidità umana.
E' la sola cosa che mi dia un'idea dell'eternità."
(Voltaire)
Mi sono perso, allora facciamo un attimo un reset. La situazione è questa:
a) Due pagine:
1) PRINCIPALE.PHP (Gestita da terzi, di cui io non ho accesso e
collocata su un server a me sconosciuto);
2) SECONDARIO.PHP (Gestita da me, di cui ho accesso e collocata sul mio
server).
b) Io fornisco a terzi il codice (il mio problema è conoscere quale codice
fornire) per caricare la pagina SECONDARIO.PHP nella loro pagina
PRINCIPALE.PHP.
c) Attraverso la pagina SECONDARIO.PHP ho la necessità di ricavarmi l'host
relativo al server in cui si prova la pagina PRINCIPALE.PHP
Problema:
Usando gli iframe, risolvo quanto esposto alle lettere (a) e (b) ma non
risolvo il (c) in quanto, nel momento in cui chiedo l'host, ovviamente mi
restituisce quello di SECONDARIO.PHP e non quello di PRINCIPALE.PHP,
pertanto cercavo una soluzione alternativa che mi avesse permesso di
risolvere il problema di cui alla lettera (c).
La domanda brevemente è: posso risolvere il problema (c) e in caso
affermativo, come posso fare?
Grazie ancora.
Cooper.
<iframe src="http://tuosito/script.php">
in script o lo ricavi dal reffer
oppure usi db e dai a utente in numero
<iframe src="http://tuosito/script.php?id=55">
oppure gli dai
<iframe src="http://tuosito/script.php?s=<?=$SERVER['SERVER_NAME'];?>">
se no gli dai
img src="http://tuosito/script.php"
poi dipende da cosa fornisci/richiedi
--
Voi un applicazione web per la tua azienda ?
non riesci mai a trovare quello che sai di avere
e non ricordi chi lo ha fatto
g u f o _ r o s s o CHIOCCIOLA libero.it