curl: Browser Redirect, warum?

TS-JC

Erfahrenes Mitglied
Hallo zusammen

also ich rufe per curl eine Seite auf. Die leitet nun aber meinen Browser um. Aber warum?
Ich dachte curl ruft nur den Quelltext der Seite ab, bzw curl sollte dem Redirect doch folgen oder nicht?

Statt dessen habe ich die Seite auf einmal im Browser auf bzw ne 404 weil die nicht absolut gemacht wurde und ich somit aufm localhost lande.

Naja, vielleicht weiss ja jemand warum dem so ist.
Im Header der Seite gibts laut "Live HTTP Header" keinen Redirect, allerdings sehe ich dort auch das die Seite 2x aufgerufen wird nachdem zwischendurch eine CSS und ein JS geholt wurde.

thx4help


hier meine curl funktion
PHP:
function disguise_curl($url, $referer, $post, $cookie)
{
  
  $curl = curl_init();

  $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
  $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
  $header[] = "Cache-Control: max-age=0";
  $header[] = "Connection: keep-alive";
  $header[] = "Keep-Alive: 300";
  $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
  $header[] = "Accept-Language: en-us,en;q=0.5";
  if ($cookie != '') $header[] = "Cookie: $cookie";
  $header[] = "Pragma: "; // browsers keep this blank.

  curl_setopt($curl, CURLOPT_URL, $url);
  curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; QXW03411; i-NavFourF)');
  curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
  if ($referer != '')
  	curl_setopt($curl, CURLOPT_REFERER, $referer);
  curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
  curl_setopt($curl, CURLOPT_AUTOREFERER, true);
  curl_setopt($curl, CURLOPT_HEADER, 1);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
  curl_setopt($curl, CURLOPT_TIMEOUT, 0);
  if ($post != '') {
  	curl_setopt($curl, CURLOPT_POST, 1);
  	curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
  }

  $html = curl_exec($curl);
 
  curl_close($curl);
  return $html;
}
 
Die hab ich mal auf 10 gesetzt, kein Unterschied.

Ich rufe übrigens http://www.vodafone.de/proxy42/portal/login.po auf. Möchte mein Script dort einloggen.
Der erste Aufruf klappt.
Beim 2. Aufruf sende ich dann die Login Daten, sind diese falsch, geht auch alles.
Aber wenn die richtig sind werde ich halt weitergeleitet, auf die selbe Seite.

Mein Script tut nicht mehr, also zeigt nix an, sondern ruft nur 2x die Function auf.
 
Habs jetzt herausgefunden, war ne javascript weiterleitung "location.replace"
Die muss ich halt per str_replace rausfiltern, dann gehts auch nicht weiter.
Verstehe zwar trotzdem noch nicht wieso der Browser das JS ausführt wo er den Source doch gar nicht zu Gesicht bekommt, sondern nur das Script, aber is wohl irgendwie so ;)

Nun hab ich aber wieder das nächste Problem das der nächste Aufruf der URL mir nichts, nichtmal nen header, zurück gibt... Naja, werde mal schaun worans liegt...
 
Zurück