Finns det något smidigt sätt att upptäcka om man befinner sig i en frame eller ej? Jag hittar ingen funktion i php, kanske behöver man blanda in lite javascript.
Frame eller ej.
8 svar · 383 visningar · startad av bgust
Vill du hoppa ur om du hamnar i en frame är det enklast att använda <body onLoad="if (self != top) top.location = self.document.location">
Eller är det något annat du är ute efter?
ja, du måste använda javascript, går inte med php..
Jag vill inte hoppa ur. Snarare tvärtom. Jag vill att sidan ska befinna sig i en frame, annars ska det bli pisk. Jag ska fundera lite till och om jag kommer på hur jag menar så säger jag till. Jag tror jag vill att det i adressfältet endast ska visas http://www.sverker.se/mupp/ och inget sidnamn som index.php eller liknande. Defenitivt inga variabler a la ?plupp=blå&lämmel=ful
<HTML>
<HEAD>
<TITLE>Något...</TITLE>
</HEAD>
<FRAMESET COLS="100%,*" frameborder="0" border="0">
<FRAME NAME="general" SRC="/sidan.php" SCROLLING="AUTO" FRAMESPACING="0" MARGINWIDTH="0" MARGINHEIGHT="0">
</FRAMESET>
</HTML>
Sen för att kolla om du ligger innuti framesetet, den frågan kan jag inte svara på. Men med denna frameset uppbyggnad får du den funktionen du önskar, att http://www.domain.se/ visas oavsett var du befinner dig, spelar ingen roll i vilken mapp den önskade sidan ligger http://www.domain.se/ visas hur som helst, dock om index-filen ligger i root-mappen.
Hmm
Om du är ute efter att sidan alltid skall finnas i just din webbplats frames, har den förmodligen laddats in i "framen" från en av dina sidor till att börja med...
Hmm...
Då borde du kunna kolla (med hjälp av några lämpliga strängfunktioner) att värdet i $_SERVER['HTTP_REFERER'] är någon av dina sidor...
Dvs du borde kunna kolla att $_SERVER['HTTP_REFERER'] innehåller en URL som börjar på "http://sverker.se/mupp/" och annars utdela "pisk" ;)
OBS! - Sändning av http-referrer när en sida hämtas går att stänga av i vissa webbläsare... och sänds inte alls av andra... Även om det verkar som om "de vanligaste" webbläsarna glatt skickar med dem...
Så du får vara beredd på att du antagligen kommer att "piska" t.ex. några oskyldiga Opera-användare som slagit av referer-sändning (dvs koda så att du undviker de oändliga loopar som kan bli följden av "pisket" om detta bara skickar besökaren till "/" som sedan drar upp ett frameset som sedan laddar en sida som sedan piskar in frameset:et i "/" igen osv ;) )
Nja, det är inte riktigt mitt problem, jarvklo, om jag förstår dig rätt. Jag har ju mycket riktigt något som liknar det som Fredde skrev men vad jag vill undvika är att man ska kunna skriva in adressen http://www.sverker.se/mupp/index.php?plupp=blå&lämmel=ful i adressfältet. Den ska då automatiskt hoppa till http://www.sverker.se/mupp/
okey, du vill kolla om det är det finns några querystrings, om det finns så ska den hoppa till http://www.sverker.se/mupp/
<?php
$q = strlen($_SERVER["QUERY_STRING"]);
if($q > 0) {
header("Location: [url]http://www.sverker.se/mupp/[/url] ");
}
?>
TESTA HÄR:
Med querystrings: http://www.mkd.nu/test.php?blubber=babslh
Utan querystrings: http://www.mkd.nu/test.php
OBS
Vill du köra med den koden och dessutom t.ex. använda
<frame src="http://www.sverker.se/mupp/index.php?plupp=blå&lämmel=ful" >
på framesetsidan http://www.sverker.se/mupp/ så får du lätt till en sjuhästans rundgång mellan http://www.sverker.se/mupp/index.ph...=blå&lämmel=ful och http://www.sverker.se/mupp/
Så någon sorts "försäkring" mot detta bör du nog ha om det är det du är ute efter.. ;) - och en sådan kan du i så fall t.ex. snickra ihop genom att slå ihop idéerna i mitt och Fredde Mannens förslag på lämpligt sätt ;)