Zur Navigation

URL ermitteln

1 tobi

Hallo zusammen,

keine Ahnung ob es der richtige Bereich ist (ansonsten verschieben).
Wie kann ich eine exakte URL herausfinden?

Bisher hatte ich ein php Script welches eine Seite aufgerufen hat und mir die Inhalte aufgezeigt hat.

Es geht bspw. um diese Seite:
https://ttvbw.click-tt.de/cgi-bin/WebObjects/nuLigaTTDE.woa/wa/clubMeetings?club=6756

Wenn ich dort den Zeitraum eingegeben habe den ich wünsche, dann werden mir dort Spiele im angegebenen Zeitraum ausgegeben.

Wenn ich dies jetzt mit meinem Script aufrufe, dann erhalte ich nur eine weiße Seite. Ich gehe daher davon aus, dass irgend etwas an der URL verändert wurde.

Bisher hat es so geklappt gehabt:
<?php
//Fehlermeldungen ausgeben falls vorhanden
ini_set('display_errors', 1);
error_reporting(E_ALL);

function PostToHost($host, $path, $referer, $data_to_send) {
  $fp = fsockopen($host, 80);

  fputs($fp, "POST $path HTTP/1.1\r\n");
  fputs($fp, "Host: $host\r\n");
  fputs($fp, "Referer: $referer\r\n");
  fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
  fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n");
  fputs($fp, "Connection: close\r\n\r\n");
  fputs($fp, $data_to_send);

  while(!feof($fp)) {
      $res .= fgets($fp, 128);
  }

  fclose($fp);

  return $res;
}


$data="searchTimeRange=1&";
$data=$data."searchType=1&";
$data=$data."searchTimeRangeFrom=01.09.2018&";
$data=$data."searchTimeRangeTo=01.05.2019&";
$data=$data."club=6756&";
$data=$data."searchMeetings=Suchen";

// Seite auslesen und in $x als String speichern
$x = PostToHost(
              "ttvbw.click-tt.de",
              "/cgi-bin/WebObjects/ClickTTVBW.woa/wa/clubMeetings",
              "https://ttvbw.click-tt.de/cgi-bin/WebObjects/nuLigaTTDE.woa/wa/clubMeetings?club=6756",
              $data
);

Gruß

19.07.2018 07:27

2 Jörg Kruse

Es geht bspw. um diese Seite:
https://...

$fp = fsockopen($host, 80);

https läuft normalerweise über Port 443

Es sind dann aber noch weitere Anpassungen notwendig, siehe hierzu auch den Kommentar von Joe in der Manualseite zu fsockopen():

http://php.net/manual/de/function.fsockopen.php#34887

Wenn ich es richtig sehe, läuft die Seite aber auch noch über http:// - von daher liegt der Fehler vielleicht auch noch woanders begraben. Den Referrer würde ich bei einer Anfrage über Port 80 auch mit http:// beginnen lassen. Mit fsockopen() können ggf. auch Fehlernummer und Fehlermeldung ausgegeben werden

$fp = fsockopen($host, 80, $fp_errno, $fp_errstr);
if ($fp_errno) {
    echo 'Fehler: (' . $fp_errno ') ' . $fp_errstr;
    return;
}

19.07.2018 08:38 | geändert: 19.07.2018 08:40

3 tobi

Ich habe wieder http geschrieben.

  $fp = fsockopen($host, 80, $fp_errno, $fp_errstr);
if ($fp_errno) {
    echo 'Fehler: (' . $fp_errno ') ' . $fp_errstr;
    return;
}
gibt mir einen 500er Error nun aus.

19.07.2018 12:34

4 Jörg Kruse

Da fe lt noch ein Punkt:

echo 'Fehler: (' . $fp_errno . ') ' . $fp_errstr;

Wenn du $x ausgibts, werden auch die HTTP-Header angezeigt (am besten über Quelltextanzeige im Browser anschauen). Da wird bei mir ein Status Code 303 angezeigt. Ggf. musst du die Anfrage alternativ mit curl machen, da dieses auch Weiterleitungen folgen kann

Jetzt scheint es übrigens eine Zwangsweiterleitung nach https:// zu geben? dann sollte entsprechend über Port 443 angefragt werden, damit keien Weiterleitung dazwischenhaut

19.07.2018 16:13

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]