Location-Header auslesen
Michael
- php
Guten Morgen, ich habe da mal eine Frage an euch. Kann mir vielleicht jemand sagen, wie ich den Location-Header einer URL auslesen kann? Ich möchte nämlich prüfen, ob ein redirect vorliegt. Dazu muss man irgendwie den http header abfragen, ich weiss aber nicht wie man das macht und wie man dann noch die Location bekommt. Kann mir dabei vielleicht jemand helfen?
Danke.
hi,
Guten Morgen, ich habe da mal eine Frage an euch. Kann mir vielleicht jemand sagen, wie ich den Location-Header einer URL auslesen kann? Ich möchte nämlich prüfen, ob ein redirect vorliegt. Dazu muss man irgendwie den http header abfragen, ich weiss aber nicht wie man das macht und wie man dann noch die Location bekommt. Kann mir dabei vielleicht jemand helfen?
HEAD- oder GET-Request absetzen, Antwort auswerten - analog zu diesem Beispiel für POST.
gruß,
wahsaga
hi,
HEAD- oder GET-Request absetzen, Antwort auswerten - analog zu diesem Beispiel für POST.
gruß,
wahsaga
Hi, danke für die Antwort. Ich habe mir das mal angesehen und auch rumprobiert, aber ich schaffe das irgendwie nicht :(
Hi,
Ich habe mir das mal angesehen und auch rumprobiert, aber ich schaffe das irgendwie nicht :(
es gibt hier im Grunde nur zwei Möglichkeiten: Entweder Du bekommst ein kollektives "Schade aber auch!", oder Du machst aus obiger Äußerung eine Problembeschreibung und erhältst somit die Chance auf weitere Hilfe.
Cheatah
Hi,
Ich habe mir das mal angesehen und auch rumprobiert, aber ich schaffe das irgendwie nicht :(
es gibt hier im Grunde nur zwei Möglichkeiten: Entweder Du bekommst ein kollektives "Schade aber auch!", oder Du machst aus obiger Äußerung eine Problembeschreibung und erhältst somit die Chance auf weitere Hilfe.
Cheatah
Hi, also ich bekomme entweder nur Zahlen z.B. 16 zurück, ich schätze mal, dass das ein Fehlercode ist oder so, oder es tut sich nichts und die Seite läft und lädt und lädt. Naja, ich verstehe das Vorgehen bei einem GET-Request wohl noch nicht wirklich. Auch G00gle konnte mir da nicht wirklich weiter helfen.
Wie müsste ein solcher Request denn aussehen, der die Location abfragt?
Hi,
Hi, also ich bekomme entweder nur Zahlen z.B. 16 zurück,
wie sieht Dein Code aus?
ich schätze mal, dass das ein Fehlercode ist oder so,
Auf welchen Analysen basiert diese Annahme?
oder es tut sich nichts und die Seite läft und lädt und lädt.
Unter welcher URL lässt sich dies testen?
Naja, ich verstehe das Vorgehen bei einem GET-Request wohl noch nicht wirklich.
Was genau daran verstehst Du nicht?
Wie müsste ein solcher Request denn aussehen, der die Location abfragt?
Der Request ist ein ganz normaler Request. Er weiß nichts darüber, dass vielleicht mal ein Location-Header zurück kommt. Dieser steht (eventuell) im Response und kann von dort mit handelsüblichen String-Funktionen extrahiert werden.
Cheatah
So, das ist der Code den ich habe, funzt aber nicht...
<?
$fp = fsockopen ("www.xyz.net", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$request = "GET / HTTP/1.0\r\n"
."Host: www.xyz.net\r\n"
."User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"
."Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,te xt/plain;q=0.8,image/png,*/*;q=0.5"
."Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"
."Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3";
fputs ($fp, $request);
while (!feof($fp)) {
echo fgets($fp,128);
}
fclose($fp);
}
?>
Okay, ich habe den Code ein bisschen veränder und das ganze schenit zu klappen. Vielen Danka n die Hilde von euch beiden. Die Tipps mit dem GET Request waren sehr hilfreich. Und auch der Link zu dem Beispiel.
Hier der Code:
$fp = fsockopen ("www.xyz.net", 80, $errno, $errstr, 5);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$request = "GET / HTTP/1.0\r\n"
."Host: www.xyz.net\r\n"
."User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3\r\n"
."Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n"
."Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3\r\n"
."Referer: http://www.example.com\r\n\r\n";
fputs ($fp, $request);
while (!feof($fp)) {
echo fgets($fp,128);
}
fclose($fp);
}
Danke nochmal ;)
Hi,
Vielen Danka n die Hilde von euch beiden.
Weder wußte ich, daß wahsaga & Cheatah dieselbe "Muse" haben, noch hätte ich gedacht, daß "Selfer" Beziehungen zu Frauen pflegen, die der Vielmännerei frönen.
Kaum ist man wieder da, schon wird man mit so 'nem Schweinkram konfrontiert - ibäh! Nur gut, daß Ostern gerade vorbei ist. Sonst hätte es natürlich die passenden Kommentare gehagelt (von "Nu rammelt mal schön!" bis "Always dicke Eier!") ...
SCNR
Gruß, Cy-"Hildeguard"-baer
Hi,
Vielen Danka n die Hilde von euch beiden.
Oops, da hab ich die Tasten wohl nicht ganz richtig getroffen ;)
Hi!
Ich möchte nämlich prüfen, ob ein redirect vorliegt.
Ich weiß ja nicht, woran du gerade arbeitest und was du genau machen willst.
Daher weiß ich auch nicht, ob das in deinem Fall per Script gemacht werden soll.
Wenn du nur mal schnell wissen willst, ob du irgendwo umgeleitet wirst oder nicht, dann würde ich dazu kein Script schreiben.
Dazu nutze ich dann einfach meinen Browser.
Firefox mit dem LiveHTTPHeader-Addon zeigt mir die Header an.
Gruß,
rob