PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] wer öffnet die Seite, die Teil eines Frames ist ?



Dieguito
24.12.03, 00:13
langer Titel, hehe.

wie kann ich mit PHP rausfinden, ob der Bestandteil eines Frames, wirklich vom Frameset aufgerufen wird ?

Mit Javascript würd ichs hinkriegen, aber mit PHP krieg ich immer nur nen leeren Referer...

Ich möchte nicht, das die Seite direkt über die Browserzeile oder in einem anderen Frame angezeigt werden kann :-)

core
24.12.03, 00:17
Also da PHP vom Server ausgeführt wird ist das nicht wirklich möglich. Referrer kann man blocken und viele User machen das auch.

Wie wäre es, auf Javascript und Frames gänzlich zu verzichten, bzw. nur ein einziges Javascript zu benutzen um aus einem (fremden) Frameset "aus zu brechen". *eg*

Dieguito
24.12.03, 00:25
man kann javascript halt auch deaktivieren und dann seiten trotzdem direkt aufrufen.

warum steht denn nicht im referer, ob der aufruf von einem frameset kommt ? das kapier ich net.
es wird doch auch die ip übermittelt. warum dann nicht zum beispiel der name des frames ?

core
24.12.03, 00:31
Das hängt mit dem HTTP Protokoll zusammen.
Referrer wird nur übermittelt wenn:
a) es einen gibt
b) der Client ihn nicht blockt (z.B. über eine Funktion im Browser, Proxy, oder auch in versch. personal Firewalls für Windows)
c) der Browser überhaupt einen Referrer übermittelt.

Dieguito
24.12.03, 00:38
das seh ich natürlich ein.

und wenn ich eine seite als frame aufrufe, gibt es keinen referer.

referer funktionieren nur mit links ?

kann ich nicht irgendwie eine variable setzen lassen, die nur von diesem einen script kommen kann, zum beispiel, weil es ja auf dem gleichen server, im selben verzeichnis liegt und die selbe uid hat

quängel, quängel :-)

core
24.12.03, 01:03
Mit PHP Sessions kannst du sowas machen. Da ist dann egal was für ein Client da herumsurft ...
Fällt mir da so ein beim Thema Variablen.. :-)

Dieguito
24.12.03, 01:18
ok, vielen dank mal für die mühe :-)

ich hab letzten frühling ein browser game gemacht und das haben mir die leute übelst auseinander genommen.

drum hab ichs mit vb gemacht, wenn du lust hast, kannst du's dir mal ansehen:

www.starke-rivalen.de

wir schreiben grad an einem neuen spiel und dass wird wieder browser, nur mit mehr sicherheit (echtzeitberechnungen auf dem server).

das einzige problem scheint mir die clientanfragen an den server :-)

sowatt
24.12.03, 04:57
Hallo,
schau Dir doch einmal 'mod_rewrite' an(Google).

Mit diesem Apache Modul solltest Du eigentlich alle Probleme
lösen können.
Da kannst Du, soweit ich weis, genau bestimmen wann eine Seite
generiert wird, auch von wo diese Seite angefordert weren muss.

Das ganze ist nicht ganz trivial und hat sich mir auch noch nicht
ganz erschlossen, sollte aber das sein was Du suchst, wenn ich
nicht ganz daneben liege.

MfG
sowatt

core
24.12.03, 11:51
Ich glaube das mod_rewrite ist hier nicht wirklich eine gute Lösung..

> auch von wo diese Seite angefordert weren muss.
Da ist dann wieder das Problem mit dem Referrer.


Gruss

quinte17
24.12.03, 21:37
mach doch in deinem frameset vorher ein


session_start();
$_SESSION[warda] = 1;

und dann bei der contentseite ein


session_start();
if($_SESSION[warda] == 1)
{
echo "CONTENT";
}
else
{
echo "SORRY";
}

greetz

Dieguito
24.12.03, 21:52
ja, die letzte idee sieht gut aus; das werd ich gleich mal probieren. danke für die mühe :-)

Dieguito
30.12.03, 13:34
also, dass mit der PHP Session ID ist genau dass, wonach ich gesucht hab. Im Gegensatz zu Javascript Parent.frames[] Test (JS abschaltbar) scheint dass unmanipulierbar.
Selbst wenn einer keine Cookies zulässt; dann kommt er halt gar net rein :-)

Danke, war mir ne grosse Hilfe. Ich mach mit diesem Thema schon ein Jahr rum :-(