PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Daten mittel HTTP POST empfangen


kidcat23
30.01.2007, 09:31:18
Hallo,

ich hoffe, dass ihr mir bei diesem Problem helfen könnt:

Ich brauche ein Script/Codeschnippsel, das ein kleine Musikstücke oder Images empfangen kann, die in einem Postrequest mitgeschickt wurden. Es würde mir schon weiterhelfen, wenn mir jemand den Befehl sagen könnte, mit dem ich den kompletten Body des Post Requestes auslesen kann. Variablennamen wie $_POST['Daten'] gibt es leider nicht und cURL ist bei meinem Provider auch nicht installiert.

Vielen Dank für eure Hilfe

KIDCAT

xabbuh
30.01.2007, 09:37:23
Was du suchst, ist ein Upload über HTML-Formulare:
- http://www.php-faq.de/q/q-formular-upload-php4.html
- http://de.php.net/manual/en/features.file-upload.php

BenniG.
30.01.2007, 09:41:03
Saug dir mal ein tool wie Wireshark ( http://www.wireshark.org ) und schau dir an, wie der Browser sowas schickt und bau das nach..

Übrigens kann mit deiner Fragestellung in der Form niemand etwas anfangen.
kidcat23 will von einem Script aus eine Datei an ein anderes Script schicken, also quasi die Browser-Seite bei einem Datei-Upload nachbauen.
Woher ich das weiß? Er hatte die Frage schon in einem anderen Forum gestellt.. Wenn ich nicht grad meine Diplomarbeit schreiben würde, hätt ichs sogar mal gebaut ;)

kidcat23
30.01.2007, 09:46:14
Danke für die rasche Antwort. Der Upload ist mir klar. Ich brauche ein Script, das einen manuell erzeugten Post Request auslesen kann, in dem keine Variablen vorkommen.

z.B.: hier wird ein Post für ein XML erzeugt und versandt:

$fp = fsockopen("www.importwagen.net", 80, $errstr, $errno);
fputs($fp, "POST /empfangedaten.php HTTP/1.1\r\n"); // pfad angeben
fputs($fp, "Host: www.importwagen.net\r\n"); // wieder http weglassen
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: ". strlen($file) ."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $file);

Wie könnte ich in meinem Script beispielsweise den Content für dieses XML auslesen, der in der Variable $file gespeichert ist?

kidcat23
30.01.2007, 09:48:48
@BenniG : Vielen Dank für die Präzisierung, das ist korrekt.

kidcat23
30.01.2007, 09:57:47
Ich glaube, dass ich die Antwort soeben selbst gefunden habe:

hier der Code:

// Wir lesen die via POST uebergebenen Daten im Rohformat ein. Hier benutzen wir die ab
// PHP 4.3.0 vorhanden Streams, falls PHP aelter ist kann man $_SERVER['HTTP_RAW_POST_DATA']
// verwenden -> dies muss aber in der php.ini zuerst freigeschaltet werden.
$fd = fopen('php://input','r');
while(!feof($fd)) {
$http_raw_post_data = fread($fd,1024);
}
fclose($fd);

BenniG.
30.01.2007, 10:04:14
Kannst du die php.ini denn bearbeiten?
Ich würde es trotzdem vorziehen, das als korrekten Upload zu machen.. Wenn du mit dem Script mal umziehst gibt es sonst Probleme

meikel (†)
30.01.2007, 10:41:14
25.3. Wie kann ich einen HTTP POST-Request mit Datei-Upload absenden?
http://www.php-faq.de/q/q-code-upload.html