Hi,
Mein Fehler, das wusste ich nicht und da habe ich auch nicht drüber nachgedacht - Beispiele mit "meinedomain.de" (oder in der Art) hatte ich einige gesehen und das dann einfach auch übernommen. Werde mir das für die Zukunft merken!
sehr gut. :-)
Die mit Abstand am häufigsten "missbrauchte" Domain ist aber vermutlich die der Stiftung Warentest.
<?php readfile("http://www.example.org/cgi-bin/dcounter/showload.cgi?http://www.example.org/download/datei.zip"),"") ?>
Das klappt ebenfalls, damit habe ich jetzt sogar zwei Möglichkeiten (file_get_contents + readfile)
Ja, und zwischen den beiden besteht ein kleiner, aber wichtiger Unterschied:
file_get_contents() liest den kompletten Dateiinhalt und speichert ihn in einem String, daher braucht's noch das echo, um den String auszugeben. Das heißt aber auch, dass es mit dem Arbeitsspeicher eng werden kann, wenn man große Dateien verarbeitet.
readfile() reicht den Inhalt dagegen nur durch (deshalb braucht's das echo nicht) und muss ihn nicht zwischenspeichern - oder wenn, dann immer nur in kleinen Häppchen.
Und ich bin überzeugt, es ist auch nicht im Sinne der Erfinders, dass das CGI-Programm seinerseits wieder per HTTP auf eine Ressource zugreifen soll, die auf demselben Server liegt.
Das ganze ist ein wenig Bastelei, da bin ich mir bewusst. Mit relativem Link anstelle vollem HTTP-Link läuft es allerdings wieder nicht.
Die Schwierigkeit bei relativen Verweisen ist immer, den richtigen Bezugspunkt zu wissen. In diesem Fall ist der Bezugspunkt höchstwahrscheinlich das Verzeichnis, in dem das CGI-Programm ausgeführt wird. Wenn du von dort ausgehend adressierst, sollte es gehen. Nebenbei: Wenn das CGI per HTTP auf die gewünschte Zieldatei zugreift, dann kann mein Browser das auch direkt selbst, und du führst den Sinn eines indirekten Zugriffs ad absurdum.
So long,
Martin
Die späteren Ehen sind oft glücklicher als die erste, weil das natürliche Ende bereits absehbar ist.
(George Bernhard Shaw)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(