2017-02-13 20 views
0

ausgeführt ich nicht über reguläre "php auf meine Domain ausführen und bekommen URL" bin zu fragen, aber diese:Wie sehen, welche URL mein PHP auf

I Bild von php anzuzeigen, hier: http://myservice.com/ShowImage.php?Id=10

So Bobby wer betreibt eine Website BobbyBlog.net dieses Bild auf seinem Blog wie verwenden:

<img src=http://myservice.com/ShowImage.php?Id=10> 

ich möchte wissen,

dass Bobby Bild auf seiner Website vollständig geladen hat, so, was ich brauche in meinem ShowImage.php Skript abfangen würde "BobbyBlog.net" Zeichenfolge. Ich fürchte, das ist mit PHP nicht möglich, da die Image-Anfrage vom Bobby-Blog getrennt ist. Was denken Sie?

Antwort

0

Soweit ich weiß, gibt es keine Möglichkeit zu erfassen, welche Seite Ihr Skript ausgeführt hat, wie Sie verlangen. Die Servervariable $_SERVER['HTTP_REFERER'] legt die verweisende Seite (die Seite, die sich auf Ihre bezieht) fest, aber ich denke nicht, dass sie in diesem Fall irgendwelche Werte haben wird. Wenn ich mich nicht irre, ist dies bei den meisten Programmiersprachen der Fall, da dies von der Webserver-Ebene und nicht von der Programmiersprache abhängt. Dies bedeutet, dass Sie nicht einfach Python oder Perl verwenden können und erwarten, dass es funktioniert.

Edit: Auf Web-Server-Ebene sollte dies möglich sein. Die Verknüpfung mit Bildern von anderen Sites wird häufig als Hotlinking bezeichnet. Es gibt mehrere Anleitungen, wie Sie dies deaktivieren können. Here is one for Apache.

Edit2: Betrachtet man das Problem genauer, kann es so aussehen, als ob man den $_SERVER['HTTP_REFERER'] Wert überprüfen kann. Dies ist in this related SO question beschrieben. Es erwähnt auch, dass dies nicht möglich ist, wenn es über HTTPS gesendet wird, und dass der Wert gefälscht werden kann. In diesen Fällen gibt es keine Möglichkeit, den Ursprung zu kennen. Ich hoffe es hilft.

+0

Es muss etwas auf Server-Ebene sein oder wie können einige Seiten das Laden von Bildern verhindern, indem sie im img-Tag auf sie verweisen? - Behandle das in .htaccess vielleicht? – Maxitrol

+0

@Maxitrol Ja. Dies wird als Hotlinking bezeichnet. Ich habe ein Tutorial eingefügt, das ich in meiner ursprünglichen Antwort gefunden habe. Ich hoffe, dass es hilft. Wenn Sie meinen, dass meine Antwort Ihnen geholfen hat, akzeptieren Sie bitte meine Antwort. – OptimusCrime

+0

Ihre Lösung ist interessant, blockiert aber nur die Verkettung. Was ich tun möchte (siehe meine ursprüngliche Frage) ist, dass ich wissen möchte, wer versucht, ein Bild von meiner Website anzuzeigen. Wenn Sie also von "Optimuscrime.com/blog.html" verlinken, möchte ich diese URL abrufen und sie speichern ... irgendwie sollte ich diese .htaccess-Anweisung ändern, um die URL der Website, auf der hotlink erstellt wurde, einzuschließen. – Maxitrol

Verwandte Themen