Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Evitanto l'uso dei frames e iframes...

0 views
Skip to first unread message

Cooper

unread,
Jul 22, 2008, 6:02:39 PM7/22/08
to
Ciao a tutti,
mi ritrovo nel bisogno di dover risolvere il problema in seguito descritto:

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.

ZER0

unread,
Jul 23, 2008, 3:52:40 AM7/23/08
to
On Wed, 23 Jul 2008 00:02:39 +0200, Cooper wrote:

> 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)

Cooper

unread,
Jul 23, 2008, 4:42:33 AM7/23/08
to
"ZER0" <zer0....@libero.it> ha scritto nel messaggio
news:qfwminjjbcdu$.dlg@ID-171124.news.individual.net...

> On Wed, 23 Jul 2008 00:02:39 +0200, Cooper wrote:
> Un bell'include da PHP?
>
Non è possibile, le due pagine stanno su server diversi


>> 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.

ZER0

unread,
Jul 23, 2008, 5:16:57 AM7/23/08
to
On Wed, 23 Jul 2008 10:42:33 +0200, Cooper wrote:

>> 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)

Cooper

unread,
Jul 23, 2008, 6:15:27 AM7/23/08
to
"ZER0" <zer0....@libero.it> ha scritto nel messaggio
news:vis9cx6gqgqu$.dlg@ID-171124.news.individual.net...

> On Wed, 23 Jul 2008 10:42:33 +0200, Cooper wrote:
> 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?
>
Esatto!


> 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.

ZER0

unread,
Jul 23, 2008, 7:08:57 AM7/23/08
to
On Wed, 23 Jul 2008 12:15:27 +0200, Cooper wrote:

>> 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)

Cooper

unread,
Jul 23, 2008, 12:09:17 PM7/23/08
to
"ZER0" <zer0....@libero.it> ha scritto nel messaggio
news:137ck0ds...@ID-171124.news.individual.net...

> On Wed, 23 Jul 2008 12:15:27 +0200, Cooper wrote:
>

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.

Gufo Rosso

unread,
Jul 23, 2008, 5:51:06 PM7/23/08
to
Cooper ha scritto:


<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

0 new messages