dedlfix: fsockopen mit ssl und htaccess

Beitrag lesen

Tach!

$host = "ssl://example.org";
$sock = fsockopen($host, 443, $errno, $errstr, 5);

Das ssl:// mag zwar für fsockopen() ein Kennzeichen sein, dass es eine SSL-Verbindung aufbauen soll, aber

fputs($sock, "Host: ".$host."\r\n");

für den Host-Header ist der Hostname und nicht solch eine Pseudo-URI anzugeben.

Fehlermeldung ist ein "Bad Request". Ich selbst vermute, dass der Port falsch ist, wie bekommt man den denn raus? Wenn ich mich hier per Hand auf dem Server anmelde, muss ich ja auch den Port nicht wissen...

Nein, der Port ist es nicht. Unter "per Hand am Server anmelden", meinst du vermutlich, dass du einen Browser als Werkzeug verwendest, also alles andere als "per Hand" arbeitest. Im Browser gibst du den Protokollnamen https als Anfang der URL an. Zu diesem wird der zugehörige Standard-Port ermittelt und vom Browser zum Verbindungsaufbau verwendet. Wenn du nun den Verbindungsaufbau selbst machst, musst du entweder einen Wrapper nehmen, der für dich eine vollständige URL interpretiert und alles weitere einleitet, oder du musst wirklich alles per Hand machen. Dazu zählt dann auch eine grundlegende Kenntnis der verwendeten Protokolle.

dedlfix.