Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak sprawdzić, czy strona jest wyswietlana wewnatrz FRAME?
Forum PHP.pl > Forum > Przedszkole
kaźmirz
Witam
Mam taki maly problem, mianowicie zrobilem sobie strone podzielona na dwie ramki <frameset>.
Lewa ramka to menu, a prawa (glowna), to tresc, no i w tej ramce tresc wyswietlam jakas strone, np. strona.php.
No i chcialbym w jakis sposob sprawdzic, czy strona.php wyswietlana jest bezposrednio w przegladarce, czy tez przez frame - jak to zrobic?
Chce po prostu zablokowac mozliwosc ogladania strona.php bezposrednio w przegladarce.
Pozdrawiam
wookieb
Jeżeli jest we frame, w zmiennej $_SERVER["HTTP_REFERER"] będziesz miał adres strony na której jest ta ramka.
kaźmirz
Cytat(wookieb @ 24.11.2010, 11:35:32 ) *
Jeżeli jest we frame, w zmiennej $_SERVER["HTTP_REFERER"] będziesz miał adres strony na której jest ta ramka.

Dzieki, skoro bede mial adres strony z ramkami, to juz dam sobie rade.

Edit.
Jednak nie do konca jest to dobre rozwiazanie, poniewaz gdy nacisne jakis link na tej stronie (strona.php), to http_referer zwraca mi juz adres tej strony, a nie str. glownej (z ramkami).
Wiec, nie wiem jak zrobic to zabezpieczenie, poniewaz jesli zablokuje adres strona.php (czyli wyswietlanie bezposrednie), to bedzie problem nawet jak strona bedzie we FRAME, gdy nacisne na niej jakis link.
Mephistofeles
Czemu używasz ramek? Masz kilka argumentów przeciwko. Ramki to zło biggrin.gif.
kaźmirz
Cytat(Mephistofeles @ 24.11.2010, 16:26:10 ) *
Czemu używasz ramek? Masz kilka argumentów przeciwko. Ramki to zło biggrin.gif.

Zdaje sobie z tego sprawe, ale skoro ich uzylem, to chyba byly mi jednak potrzebne?
Znasz jakis zamiennik ramek, ktory dzialal by na tej samej zasadzie?
To tak jak z <table>, niby zlo, ale tylko dlatego, ze wiekszosc osob uzywalo tabel do celow, do których one nie byly przeznaczone (czyt. layout).
Nadal czekam na sugestie - jak sprawdzic, czy strona wyswietlona jest w ramce, czy bezposrednio w oknie winksmiley.jpg
wookieb
parse_url na refererze i kontrolujesz jaka domena ma mieć dostęp do strony.
A tak w ogóle twoje zabezpieczenie i tak da radę obejść, także miej na uwadze, że nie da się tego w 100% zabezpieczyć.
kaźmirz
Cytat(wookieb @ 24.11.2010, 17:28:27 ) *
parse_url na refererze i kontrolujesz jaka domena ma mieć dostęp do strony.
A tak w ogóle twoje zabezpieczenie i tak da radę obejść, także miej na uwadze, że nie da się tego w 100% zabezpieczyć.

No ok, ale dam np. ze dostep do strony ma miec jedynie domena ..../index.html (strona z ramkami), ale gdy juz strona sie wyswietli w ramkach i nacisne jakis link w ramce, w ktorej jest wyswietlony plik okno.php, to referer zwroci mi okno.php i wtedy strona sie zablokuje, mimo tego ze jest w ramce :/
wookieb
Referer będzie zawierać samo "okno.php" czy pełny adres?
"..../index.html" To nie jest domena.
kaźmirz
Cytat(wookieb @ 24.11.2010, 17:35:38 ) *
Referer będzie zawierać samo "okno.php" czy pełny adres?
"..../index.html" To nie jest domena.

Nie no pelny adres, ale pozniej obrabiam to basename(), zeby sam plik sprawdzic, bo domena zawsze bedzie ta sama.
Mephistofeles
Chcesz tylko dołączać menu? Czemu nie wykorzystasz do tego PHP i include?
Tabele to inna sprawa, one są potrzebne do danych tabelarycznych, ramek innych od iframe (które czasami niestety musi być użyte) nie powinno się stosować w ogóle (dlatego nie ma ich w specyfikacji HTML 5).
wookieb
Cytat(kaźmirz @ 24.11.2010, 17:38:19 ) *
Nie no pelny adres, ale pozniej obrabiam to basename(), zeby sam plik sprawdzic, bo domena zawsze bedzie ta sama.

No ale właśnie o to chodzi. Jeżeli ktoś dołączy plik z innej strony, to przecież to wykryjesz i zablokujesz. Poza tym poczytaj radę kolegi ~Mephistofeles
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.