greyfox
Goto Top

URL fopen funktioniert nicht!

Ich benötige eine möglichkeit vom Server aus eine Externe URL aufzurufen diese URL sieht beispielsweise so aus http://www.foo.de?usr=foo&pwd=bar
Ich habe mir gedacht das er beim URL fopen auch die Variablen mitliefert, bekomme aber nur folgenden Fehler
HTTP request failed! HTTP/1.1 400 Bad Request
Ich kann aber leider nicht die URL durch einen Benutzer meines PHP Skriptes per redirecting aufrufen da dieser sonst das Passwort sehen würde.

Gibt es irgendwie eine möglichkeit wie ich eine URL sammt Parameter vom Server aus aufrufen kann? Ich brauche nicht zu sehen was passiert!

Content-ID: 40737

Url: https://administrator.de/contentid/40737

Ausgedruckt am: 15.11.2024 um 07:11 Uhr

13369
13369 23.09.2006 um 10:53:28 Uhr
Goto Top
Eine externe URL? Das geht nicht. Du kannst mit fopen nur Dateien öffnen, die auf dem eigenen Server liegen.

Andere Möglichkeit: Hast du FTP-Zugang zu dem externen Server? Dann kannst du die FTP-Funktionen von PHP verwenden.

http://www.php.net/manual/de/ref.ftp.php

Gruß Markus
GreyFox
GreyFox 23.09.2006 um 12:30:17 Uhr
Goto Top
Nein leider habe ich keinen FTP Zugang, besteht den wirklich keine andere möglichkeit?
Ich hätte zwar die möglichket durch shell_exec eine URL aufrufen aber das was ich habe ist nur ein Virtueller Server und die erlauben mir leider nicht Shell-Commands zu benutzen ...

Trotzdem danke für deinen Tip!
dragonl
dragonl 24.09.2006 um 21:22:27 Uhr
Goto Top
Hallo GrayFox face-smile

Ich habe da evtl. etwas für dich !
Da du per fopen vorhattest eine externe Quelle zuöffnen, gehe ich mal davon aus das dir auch die PHP-Funktion "fsockopen()" zurferfügung steht.
Die folgende Funktion kommt aus meiner Teamspeak-Administrations-Pannel-Classe (TAD_TSAP) und ist dazu da Daten per POST-Methode an einen Server bzw. URL zu übergeben:

function wi_post($pfad,$data){ $daten = array(); foreach($data as $key => $val) { $daten = "$key=".urlencode($val); } $data = implode("&", $daten);if($this->debuging){echo'    wi_post_query='.$data.'';} $fp = fsockopen($this->srv_host, 14534); fputs($fp, "POST ".$pfad." HTTP/1.1\r\n"); fputs($fp, "Host: ".$this->srv_host."\r\n"); fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"); fputs($fp, "Content-length: ". strlen($data) ."\r\n"); fputs($fp, "Connection: close\r\n\r\n"); fputs($fp, $data); $result=array(); while(!feof($fp)){ if(preg_match("/([a-z0-9_-]+): (.*)\r\n$/i",fgets($fp, 128),$content)){ $header["{$content[1]}"] = $content[2]; } } fclose($fp);if($this->debugingX){print_r($header);echo'';} }

Die muss jetzt natürlich noch angepasst werden weill ich die gerade 1 zu 1 aus meiner Classe kopiert habe.

MfG
Dragonl

PS. Giebt es hier keinen "richtigen" BB-Code ?
GreyFox
GreyFox 24.09.2006 um 23:13:45 Uhr
Goto Top
Das ist echt gut ... auf meinen Lokalen Apache hat es funktioniert, auf meinen Virtuellen Server habe ich das noch nicht probiert ... mache ich aber morgen! Bekommst von mir volle Bewertung und Thema betrachte ich als gelöst!

Danke