Wie finde ich die aufrufende Seite heraus?

Hallo,

meine Scripte http://www.raetselstunde.de/scherzfrage-des-tages.html und http://www.raetselstunde.de/quizfrage-des-tages.html sind auf Interesse gestoßen und wurden schon von einigen Webmastern installiert.

Das freut mich natürlich. Was mich weniger freut, ist die Tatsache, dass einige davon das Script so eingebaut haben, dass man meinen Schriftzug “powered by raetselstunde.de” nicht mehr sieht. Es wurde einfach die Höhe des iframes so eingestellt, dass man zwar die Frage sieht, aber nicht mehr den Schriftzug.

Jetzt habe ich mir überlegt, dass ich das Script so ändere, dass ich bei den Seiten, die das iframe zu klein machen, den Schriftzug zwischen Frage und Lösungsbutton setze. Das sieht natürlich nicht mehr so toll aus, deswegen möchte ich das nicht generell machen. Ich müsste also eine IF-Abfrage machen, die ungefähr so aussieht:

IF aufrufende Seite=www.beispiel.de
{
blablabla
}
ELSE
{
blablabla
}

So, jetzt kommt endlich die Frage :slight_smile:

Wie kann ich die aufrufende Seite abfragen? Ich habe es mit $_SERVER[“HOST”] versucht, aber das scheint nicht zu funktionieren.

Gruß,

Cujo

Wenn du in raetselstunde.de/scherzfrage.html
die ‘Lösung’ zugänglich gestaltest, also etwa mit einem
Verweis oder Formular, so könntest du bei Verwendung einer
transitional-Variante das Attribut target verwenden und etwa
’_top’ verwenden, das sprengt jegliches ‘frameset’, gebenenfalls
auch ‘_blank’, das öffnet ein neues Fenster oder ‘tab’.

Bei der hier verwendeten strict-Variante gibt es jedoch kein
target (das verwendete ist bereits falsch). Da gibt es auch rein
gar keine PHP- oder (X)HTML-Möglichkeit, ein unerwünschtes
frameset zu zernichten.

Per PHP kann man zwar den vom browser optional angegebenen
’referer’ auslesen, das ist aber keine zuverlässige Information,
eben weil es optional ist. Gibt zahlreiche Leute wie mich, die das
komplett deaktiviert haben oder einige andere, die die Angaben
fälschen. Das sollte man also nicht verwenden, um den Inhalt
einer Seite von diesem Parameter abhängig zu machen.

Du könntest die dir wichtigen Information natürlich auch einfach
oben hinschreiben. Sofern du nirgends darunter ein id-Attrubute
oder Element a mit Attribut name verwendest, gibt es keine
Möglichkeit, den frame so zu setzen, daß man die Informationen
ganz oben nicht sehen kann (CSS clip müßte man mal testen,
um gegebenenfalls festzustellen, daß die Aussage nicht ganz
korrekt ist ;o)

Moin,

u.U. könnte man ungewünschte Domains per .htaccess blocken, aber da bin ich mir auch nicht sicher …

Ansonsten würde ich mal die Seitenbetreiber anschreiben und denen ruhig mal mit einem Anwalt drohen, weil sich das ja definitiv nicht gehört :wink:

Leider gibt es sonst kaum Alternativen … (außer dem, was hoffmann bereits angesprochen hat).

Über $_SERVER[“HTTP_REFERER”]; könntest aber auch eine Warnmeldung ausgeben lassen, so à la “Unser System denkt sie greifen von einer falschen Seite zu. Bitte versuchen Sie unter diesem Link…” mit Hilfe einer IP-Speicherung vielleicht denkbar.

MfG
myPages

Eigentlich dürfte der Browser ja keine Rolle spielen. Ich stelle die Seite bereit, die von einer anderen Seite mit iframe eingebunden wird. Und Webalizer z. B. zeigt mir doch auch an, welche Seiten Anfragen an meine Seite schicken. Also muss es doch für mich auch möglich sein, das herauszufinden. Und dann würde ich das Skript so ändern:

IF anfragende Seite=www.boeseseite.de
{
Frage
mein Schriftzug
Antwort
}
ELSE
{
Frage
Antwort
Schriftzug
}

Sollte sowas wirklich nicht gehen?

Ich habe teilweise die Webmaster auch schon angeschrieben, aber auf die Dauer wird mir das zu mühselig und mir wäre eine technische Lösung doch lieber. Und verjagen will ich die Leute auch nicht. Ich freue mich ja, wenn mein Skript benutzt wird, nur soll halt auch mein Schriftzug zu sehen sein :slight_smile:

Ich habe den Doctype jetzt auf transitional geändert. Ist aber trotzdem nicht valide, weil ich allowtransparency brauche.

du loggst einfach alle aufrufe von ‘$_SERVER[“HTTP_REFERER”]’, kontrollieren musst du die dann aber manuell :wink:
eine “Blacklist” sollte auch möglich sein :wink: