Autor Zpráva
beorn
Profil
Ahoj,

do stránek chci vložit menu pomocí iframe. A uvnitř tohoto vloženého menu bych chtěl pomocí php zjistit konec url nadřazené stránky ve které se zrovna nacházím.

Když napíšu klasicky

echo basename($_SERVER['SCRIPT_FILENAME']);

vypíše mi to název souboru vloženého pomocí iframe. Jak to udělat, aby mi to vypsalo název stránky (souboru) do které ho vkládám?

Díky
Chazzy
Profil *
pokud tě chápu dobře, zkus prostě předávat názvy stránky přes HTTP_GET_VARS.
AM_
Profil
Chazzy
HTTP_GET_VARS je pravěká alternativa k _GET, ale principielně máš pravdu
beorn
přímo to pomocí PHP nelze, protože prohlížeč si stránku v iframe vyžádá separátně a tak server tuto souvislost nezná (takže pokud to míníš jako zabezpečení proti inkluzi jinam, tak to ani nejde - útočník to může vždycky podvrhnout, pak bys musel upustit od iframe a normálně menu includovat). Pokud to ale chceš k čemukoliv jinému, mělo by to jít zjistit v iframe pomocí javascriptu (myslímže window.top.location) nebo jak říká Chazzy to stránce předávat v URI (tedy menu.php?parent=uvod)
beorn
Profil
AM_, Chazzy
Jo, díky za rychlou odpověď.

Předávání rodičovské stránky parametrem v url jsem se právě chtěl vyhnout. Říkal jsem si, že by to mělo jít nějak jednodušeji. Vyzkouším, co mi půjde nejlíp.
beorn
Profil
Tak jo. Když soubor menu.php vložím pomocí include a ne iframe, tak funkce echo basename($_SERVER['SCRIPT_FILENAME']); mi vypíše název souboru rodičovské stránky a ne té vložené. Supr :-)
AM_
Profil
Jen pak pozor na jednu věc, iframe je vlastně samostatný dokument, takže by měl mít náležitosti jako hlavičku, <body> atd, kdežto při inkluzi se kód stane součástí jednoho dokumentu, takže už tam nic takového nepatří :) prohížeče si s tím obvykle poradí, ale není dobrá vizitka kodéra, když mu v půlce stránky začíná nový <html> element.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: