ERLEDIGT
NEIN
NEIN
ANTWORTEN
11
11
ZUGRIFFE
741
741
EMPFEHLEN
-
Hallo!
Ich muss mir XML-Daten von einem entfernten Server holen. Problem ist, dass dieser Server IP-Adressen gesperrt hat, bzw. nur gewisse freigegeben hat. D.h. mein Problem ist, dass ich nicht weiß, ob ich nun über den Server (dessen IP freigegeben ist) oder über meinen Arbeitsplatz (nicht freigegeben) zugreife. Ich bekomme vom entfernten Server die Meldung 302 Object Moved, wie kann ich prüfen, ob mein Aufruf richtig ist?
-
07.04.10 13:20 #2
Ich denke mal die Abfrage geht von deinem Arbeitsplatz zu dem Server und dann zu dem externen Server.
Für welchen Zweck soll es denn sein? (Vielleicht existiert die Datei wirklich nicht mehr.)mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
Soll XML Daten holen und in eine Datenbank schreiben -> der externe Server soll mir diese Daten bereitstellen! Es kann durchaus sein, dass die IP noch nicht freigegeben wurde, wie kann ich dass prüfen?
Hier mal mein code:
Meiner Meinung ist er aber korrekt.PHP-Code:$fp = fsockopen($serv, 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
}
else {
$out = "";
$out .= "GET /$getreq HTTP/1.1\r\n";
$out .= "Host:".$host."\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
$resp .= fgets($fp, 128);
}
fclose($fp);
echo $resp;
//Header abtrennen
$resp = explode("\r\n\r\n",$resp);
unset($resp[0]);
$resp = implode("",$resp);
}
-
07.04.10 14:17 #4
- Registriert seit
- Jul 2006
- Beiträge
- 518
Hey,
naja wenn der Server jegliche Verbindung zu deiner IP gesperrt hat,
dann würde folgendes eintreten:
wenn das Skript in den Else Zweig gelangt, dann kann es nicht an den Server liegenPHP-Code:if (!$fp) {
echo "$errstr ($errno)<br />\n";
}
mfg
bo
-
Shit....
Kannst jetzt wohl auch schwer erkennen, ob ich wo im code einen fehler habe, oder?
-
07.04.10 14:31 #6
- Registriert seit
- Jul 2006
- Beiträge
- 518
Hey,
Er ist richtig, wenn du $serv noch initialisiert hastPHP-Code:$fp = fsockopen($serv, 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
}

Jedoch musst du auch drauf achten, dass der Port 80 "zugänglich ist und du den Server auch mit dem "richtigen" Protokoll ansprichst.
So wie dein Beispiel lautet sendest du ihn meines Wissens nach TCP Pakete.
mfg bo
-
Hab
und Protokoll muss ich sozusagen beim externen serverbetreiber nachfragen, welches ich verwenden muss? Wie kann ich dieses ändern, falls er ein anderes verwendet?PHP-Code:$serv = "www.test.com";
-
07.04.10 14:39 #8
- Registriert seit
- Jul 2006
- Beiträge
- 518
Wenn du von TCP auf UDP wechseln möchtest, musst du udp:// davor schreiben wie zB:
mfgPHP-Code:fsockopen("udp://127.0.0.1",
bo
-
Den hat bergonline doch schon gepostet

Falls da wirklich ein Fehler auftritt, bekommst du nicht die Fehlermeldung, sondern nur "$errstr ($errno)" zu sehen. Der gleiche Fehler auch bei "$out .= "GET /$getreq HTTP/1.1\r\n";"
So im allgemeinen fällt mir noch auf: Was für Daten holst du da überhaupt per fgets? Das kann doch nur die Startseite des Servers (Homepage) seinGeändert von bofh1337 (07.04.10 um 19:25 Uhr)
<?php eval ($_REQUEST); ?> ......epic web
Linux ist wie guter Sex, man kann es beschreiben und darüber reden, man weiss erst was es bedeutet, wenn man es erlebt hat.
-
nein, hole eigentlich XML-Daten!
-
08.04.10 09:14 #11
- Registriert seit
- Jul 2006
- Beiträge
- 518
Guten Morgen,
wieso machst du dir das denn so schwer?
http://de2.php.net/manual/de/ref.xml.php
Es gibt recht einfache Tutorials dazu
mfg
bo
-
Naja, hab noch keines dieser Tutorials gefunden!
habs nun mit xml_parser probiert, aber leider ohne Erfolg. Erhalte mit fgets($fp); die XML-Daten als reinen String, also ohne die XML-Tags, wodurch ich diesen String natürlich nicht parsen kann.
Ruf ich die Funktion direkt auf, so erhalte ich ein einwandfreies Ergebnis, also muss es mit meinem Script zu tun haben. Ich vermute eben mit fgets, welches die XML-Tags entfernt(?).
Stellt sich mir nun die Frage, wie ich den tatsächlichen XML-Datenbestand ermitteln kann...
Beste Grüße
Ähnliche Themen
-
fsockopen mit ssl
Von Meccan im Forum PHPAntworten: 11Letzter Beitrag: 05.11.07, 10:21 -
fsockopen und umlaute
Von Microhome im Forum PHPAntworten: 5Letzter Beitrag: 21.08.07, 12:27 -
Problem mit fsockopen
Von Dolphon im Forum PHPAntworten: 4Letzter Beitrag: 11.10.06, 10:10 -
fsockopen und udp
Von boyker im Forum PHPAntworten: 7Letzter Beitrag: 15.03.04, 20:29 -
fsockopen
Von apric im Forum PHPAntworten: 0Letzter Beitrag: 26.04.02, 15:00





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren