Zum Inhalt springen

fopen https stream


k0ph

Empfohlene Beiträge

Hallo allerseits,

ich hadere hier seit tagen mit folgendem Problem. Ich versuche auf einem entfernten Server per fopen daten zu holen und hier zu verarbeiten.

Ziel ist es am ende das ganze natürlich per https zu realisieren. Aber fangen wir erst mal mit http an, denn noch nicht mal das geht.

Ist-Stand: Ich habe einen apache 2.2 und php 5.5.1.

php kompiliert mit

./configure' '--with-apxs2=/usr/local/apache2/bin/apxs' '--enable-track-vars=yes' '--enable-url-includes' '--enable-sysvshm=yes--enable-sysvsem=yes' '--disable-ipv6' '--enable-force-cgi-redirect' '--with-gettext' '--with-openssl=/usr/local/'

Soweit so gut. Wenn ich jetzt mein script aufrufe, eine php datei im root verzeichnis, bekomme ich immer folgende fehlermeldung:

[function.fopen]: failed to open stream: Connection refused

Ich habe schon sämtliche apache und php kombinationen und configurations parameter probiert. Er scheitert immer am fopen.

Wenn ich das script hier auf einem anderen server mit einem IIS 5.0 aufrufe, funktioniert zumindest der http stream einwandfrei. Allerdings mit https klappt es auch da nicht.

Hier noch die entscheidenden Zeilen aus dem php script:

$AURL = "http://user:pass@server.de/cgi-bin/ceg/inquire.cgi?FORMAT=XML" . // Testserver

....

Daten requesten

....

if (!($fp = fopen($AURL, "r")))

die("could not open XML input");

$data = fread($fp, 999999);

fclose($fp);

....

array füllen und ausgeben

....

Danach soll einfach zu testzwecken ein array mit dem inhalt aus dem stream ausgegeben werden.

Bin für jeden Tipp dankbar :)

mfg

k0ph

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kam PHP zum Schluss, dass es sich bei filename um ein registriertes Protokoll handelt, und ist dieses Protokoll als eine Netzwerk URL registriert, prüft PHP, ob allow_url_fopen aktiviert ist. Ist es nicht aktiviert, gibt PHP eine Warnung aus, und der Aufruf von fopen wird scheitern.

Schon geprüft?

Ansonsten probier mal mein Script "Webseiten Fälscher": http://www.tobias-digital.de/index.php?id=2&no_cache=1&tx_eeblog[pointer]=0&tx_eeblog[showUid]=18

Link zu diesem Kommentar
Auf anderen Seiten teilen

hi tobi!

danke für Deine Antwort. Ich glaube das bringt uns auf die richtige Spur.

Directive Local Value Master Value

allow_url_fopen On On

Also das ist definitiv an!

Allerdings wenn ich Dein Script aufrufe kommt:

Warning: fopen(http://www.spiegel.de) [function.fopen]: failed to open stream: Connection refused in /usr/local/apache2/htdocs/url.php on line 10

Warning: feof(): supplied argument is not a valid stream resource in /usr/local/apache2/htdocs/url.php on line 11

Warning: fgets(): supplied argument is not a valid stream resource in /usr/local/apache2/htdocs/url.php on line 12

Warning: feof(): supplied argument is not a valid stream resource in /usr/local/apache2/htdocs/url.php on line 11

usw . usw.

hmmm was stimmt da nicht??

Link zu diesem Kommentar
Auf anderen Seiten teilen

Aha, danke. Da haben wir des Pudels Kern wohl.

lynx www.spiegel.de ergibt:

Looking up www.spiegel.de first

Can't Access `http://www.spiegel.de/'

Alert!: Unable to access document.

lynx: Can't access startfile

und nü? :(

pingen und namensauflösung funktioniert aber.

auch wenn ich sage -> dig www.spiegel.de <- löst er mir das korrekt auf.

;; QUESTION SECTION:

;www.spiegel.de. IN A

;; ANSWER SECTION:

www.spiegel.de. 70881 IN A 195.71.11.67

Link zu diesem Kommentar
Auf anderen Seiten teilen

Alos nachdem ich jetzt unseren proxy per export befehl eingetragen hab , kann ich jetzt mit lynx auf spiegel.de zugreifen.

Allerdings bringt das script immer noch die gleiche fehlermeldung.

Wie kann ich denn für alle Benutzer im System sagen benutzt den proxy?

Mit www-data oder daemon kann ich mich ja nicht anmelden an der shell.

Achso, telnet bringt nichts. Ausser port 80 und 443 ist nichts offen in der Firewall.

mfg

k0ph

Link zu diesem Kommentar
Auf anderen Seiten teilen

hi kills,

danke für den Hinweis.

Ich habe jetzt set_env() direkt in die php.ini eingetragen.

info.php zeigt mir jetzt auch einen kompletten enviroment auszug an mit HTTP_PROXY etc. das hat also geklappt.

Was leider immer noch nicht klappt ist mein script, und das von tobias url.php leider auch nicht.

danke & gruß

k0ph

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo allo,

also ich poste mal einen etwas größeren codeschnipsel. Vielleicht hilft euch das bei der Fehlersuche. Falls jemand noch eine Idee hat wäre das echt fantastisch. Hänge jetzt seit Tagen vor diesem Problem und sehe bald nur noch Bahnhof :eek

$AURL = "http://Benutzername:Passwort@test.server.de/cgi-bin/ceg/inquire.cgi?FORMAT=XML" . // Testserver

"&REQSOURCECODE=".URLEncode("Wert1").

"&HIDSUBSCRIBERCODE=".URLEncode("Wert2").

.

.

.

"&HIDSUBSCRIBERCODE=".URLEncode("Wert12");

if (!($fp = fopen($AURL, "r")))

die("could not open XML input");

$data = fread($fp, 999999);

fclose($fp);

Wie gesagt, bereits nach fopen bleibt er hängen und mahnt an: "no stream, connection refused"

Meine Vermutung ist folgende:

Wenn ich per lynx die url so aufrufe wie sie oben im script steht, mit benutzername und passwort in der url dann meckert er

1.) "Alert!: Address contains a username: Benutzername:Passwort"

und danach:

2.) "Alert!: HTTP/1.0 503 Service Unavailable"

und zeigt mir anschließend:

3.) "Failed to resolve the name of server Benutzername to connect"

Hat der Fehler vielleicht was mit dem HTTP REQUEST zu tun. Das der Apache es nicht gebacken bekommt? Habe schon google etc. nach fopen und http authentication etc. Kam auch viel response, aber wirklich schlauer bin ich nicht.

danke für eure hilfe.

mfg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...