php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 1,00 durchschnittlich.
Alt 12.08.2007, 12:06  
Neuer Benutzer
 
Registriert seit: 10.07.2007
Beiträge: 10
yneu
Standard POST xml auslesen

Hallo,

ich habe da ein Problem, ich weiss nicht wie ich an ein xml komme, welches mir per Post übergeben wird.

register_globals ist auf off und kann auch nicht geändert werden.

Ich bekomme ein Paket, welches so aussieht

POST xxx.php HTTP/1.1
Content-type: text/xml
...
<?xml version = 1.0" ...>

Mein Problem $_POST ist leer. Wie komme ich denn nun an das xml ran. Kann mir da jemand helfen?

Danke
yneu ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.08.2007, 13:19  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo yneu,

zunächst mal ein Herzliches Willkommen im Forum von meiner Seite!


Zitat:
Mein Problem $_POST ist leer. Wie komme ich denn nun an das xml ran. Kann mir da jemand helfen?
Wie schickst du denn dieses XML ab? Hast du dazu ein Formular definiert? Bitte ein wenig mehr Informationen geben, denn sonst kann ich nur raten.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 12.08.2007, 13:30  
Neuer Benutzer
 
Registriert seit: 10.07.2007
Beiträge: 10
yneu
Standard Abschicken

Hallo,

ich versende selber das Formular leider gar nicht. Dies kommt von jemand anderem. Wenn ich selber ein POST-Formular mache, in dem ich das xml eingebe und per POST versende, dann ist auch die $_POST-Variable gefüllt. Dann sieht das Paket auch anders aus (habe ich jetzt nicht vorliegen dort steht aber so etwas wie oben POST und am Ende eingabe=<?xml ...>, da ich in dem Formular das Feld mit name="eingabe" hinterlegt habe. Ich hatte die Vermutung das es vielleicht daran liegt, dass das einkommende Paket den Content-type: text/xml hat, und bei meinem Formular ist es Content-type: text/html. Wie kann ich den bei einem Formular sagen, dass ich es als text/xml verschicken will? Ich finde es komisch, da ja wie gesagt in dem einkommenden Paket ja oben POST und unten das xml steht, es steht nur nicht in der $_POST.

Danke
Gruß
yneu ist offline  
Alt 12.08.2007, 13:50  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo yneu,

klingt mir irgendwie wild, was du da so treibst. Grundsätzlich würde ich versuchen, mir mal das anzusehen, was bei mir (=dir) ankommt. Das kannst du beispielsweise mal mit einem

PHP-Code:
<?php
   
echo '<pre>'.print_r($_SERVER,true).'</pre>';
   echo 
'<pre>'.print_r($_REQUEST,true).'</pre>';
?>
in der Datei erledigen, die vom Formular aufgerufen wir. Problematisch kann der Content-Type dann werden, wenn der Webserver so konfiguriert ist, dass er unterschiedliche MIME-Types unterschiedlich behandelt. Hast du direkten Zugriff auf die Logfiles, kannst du das Verhalten ja mal analysieren. Solltes der Post bis zu PHP-Datei "durch kommen", hilft dir mein Beispiel.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 12.08.2007, 14:14  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Per POST gesendete Dateien sollten in $_FILES liegen, wenn als Encyription-Type "multipart/form-data" gewählt ist.
Zergling-new ist offline  
Alt 12.08.2007, 16:40  
Erfahrener Benutzer
 
Registriert seit: 17.01.2006
Beiträge: 468
Slava
Standard

man kann auch direkt auf ROW_POST_DATA zugreifen, wenn man php input ausliest. diese methode ist besonders gut geeignet, wenn zugrif auf php.ini verboten ist.
probier bitte in deinem script, der daten empfängt diese zeile:
echo file_get_contents('php://input');
__________________
Slava
http://bituniverse.com
Slava ist offline  
Alt 12.08.2007, 18:57  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Was ich da über den Encryption-Type gesagt habe ist Quark. Hier wird die Datei ja nicht über Formular versendet.
Zergling-new ist offline  
Alt 27.08.2007, 11:49  
Neuer Benutzer
 
Registriert seit: 10.07.2007
Beiträge: 10
yneu
Standard Da klappts nicht

Hallo,

habe nun das mit Request und Server versucht. Bei Request ist nichts drin, in Server steht

ALL_HTTPHTTP_CONTENT_LENGTH:101HTTP_CONTENT_TYPE:t ext/xml; charset=ISO-8859-1HTTP_HOST:217.5.212.99HTTP_USER_AGENT:Jakarta Commons-HttpClient/2.0.2HTTP_REFERRER:GZuComHome s:0
HTTPSoff s:1
SCRIPT_NAME/xxx.php s:2
HTTP_COOKIE s:3
AUTH_PASSWORD s:4
AUTH_TYPE s:5
AUTH_USER s:6
CONTENT_LENGTH101 s:7
CONTENT_TYPEtext/xml; charset=ISO-8859-1 s:8
PATH_TRANSLATEDDxx
QUERY_STRING s:10
REMOTE_ADDR xxx
REMOTE_HOST xxx
REMOTE_USER s:13
REQUEST_METHODPOST s:14
SERVER_NAMExxx
SERVER_PORT80 s:16
SERVER_PROTOCOLHTTP/1.1 s:17 SERVER_SOFTWAREMicrosoft-IIS/6.0 s:18
APPL_MD_PATH/LM/W3SVC/1/ROOT s:19
APPL_PHYSICAL_PATHd:\\\\inetpub\\\\wwwroot\\\\ s:20
INSTANCE_ID1 s:21
INSTANCE_META_PATH/LM/W3SVC/1 s:22
LOGON_USER s:23
REQUEST_URI s:24
URL/xxx s:25
PHP_SELF/xxx.php s:26
HTTP_CONTENT_LENGTH101 s:27
HTTP_CONTENT_TYPEtext/xml; charset=ISO-8859-1 s:28
HTTP_HOSTxxx s:29
HTTP_USER_AGENTJakarta Commons-HttpClient/2.0.2 s:30
HTTP_REFERRERGZuComHome s:31
DOCUMENT_ROOTd:\\\\inetpub\\\\wwwroot s:32
Wie komme ich den nun an den Post dran? Von unserem Techniker hatte ich einen Auszug bekommen, wo das XML auch drinsteht, gesendet wird es also von den anderen Part.

Das mit echo file_get_contents('php://input'); hatte auch nicht geklappt, brauche ich da etwas spezielles für?

Danke für Eure Hilfe.
yneu ist offline  
Alt 27.08.2007, 18:02  
Erfahrener Benutzer
 
Registriert seit: 17.01.2006
Beiträge: 468
Slava
Standard

teste das mal
PHP-Code:
<?php
//datei php_sener.php
$xml='
<?xml version = "1.0" ?>
<document>
<mesage>Hallo Welt!</mesage>
<datum>'
.date('r').'</datum>
</document>'
;

$page=dirname($_SERVER['PHP_SELF']).'/server.php';
$open fsockopen('127.0.0.1'80$errno$errstr10);
$send="POST $page HTTP/1.0\r\n";
$send .= "Content-Type: text/xml\r\n";
$send .= "Content-Length: " .strlen($xml) ."\r\n\r\n";
$send .= $xml;
fputs($open$send);//an server senden
$ausgabe='';
 while (!
feof($open)) {//antwort vom server auslesen
  
$ausgabe .= fgets($open4096);
 }
 
fclose($open);
//headr abschneiden
 
preg_match_all('/^.*\r\n\r\n(.++)$/Us'$ausgabe$array);//nachgeändert
//ausgabe von XML, die von server gesendet wurde
//kannst du als xml-echoserver nennen :-)
echo $array[1][0];

?>
und in gleichem ordner
PHP-Code:
<?php
//datei server.php
echo file_get_contents('php://input');
?>
und ruffe jetzt php_sender.php auf.
Also bei mir funktioniert es.
wenn du nicht auf dem localem rechner arbeitest, muss du natürich statt 127.0.0.1 eine domane eintragen.
__________________
Slava
http://bituniverse.com
Slava ist offline  
Alt 27.08.2007, 18:38  
Neuer Benutzer
 
Registriert seit: 10.07.2007
Beiträge: 10
yneu
Standard Ich hab's geschafft.

Hallo,

ich hatte nun schon eine Lösung gefunden.

In $GLOBALS["HTTP_RAW_POST_DATA"] stand das xml.

Danke für Eure Hilfe.
yneu ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ordner auslesen und während des auslesen sortieren Dooki PHP Tipps 2008 6 14.05.2008 17:50
gelöst: Tabelle auslesen -&amp;amp;amp;gt; Gleiche Einträge nur 1 Mal Datenbanken 3 31.03.2006 01:44
Seiteninhalt mit POST statt GET auslesen Alpha Centauri PHP-Fortgeschrittene 16 11.01.2006 23:48
Letzten Post auslesen iRadiaX Datenbanken 0 05.11.2005 09:44
mit php post übergeben PHP-Fortgeschrittene 1 11.10.2005 13:12
Daten eintragen und auslesen Rettungsdackel Datenbanken 0 14.09.2005 16:29
eilig: alle mit POST übertragenen variablen auslesen PHP Tipps 2005-2 3 01.09.2005 15:52
Daten aus Pw-Geschütztem bereich auslesen PHP-Fortgeschrittene 2 26.08.2005 15:27
POST socke PHP Tipps 2005 5 25.04.2005 12:52
mehrere checkboxeinträge mit POST auslesen PHP Tipps 2005 14 23.04.2005 15:23
auslesen und nochmals auslesen?! $$$ ThiKool $$$ PHP Tipps 2005 23 10.03.2005 19:43
Auslesen der Checkboxen mit post tikal PHP Tipps 2005 7 16.02.2005 12:03
Linux Drucker unter Windows tennessee Server, Hosting und Workstations 10 16.12.2004 17:14
[Erledigt] FORM Übergabe mit POST / auslesen mit $_POST klappt nicht? PHP-Fortgeschrittene 2 10.09.2004 18:43
kann man text feld wert ohne post auslesen? PHP Tipps 2004 5 22.07.2004 12:27

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php post xml, php post xml auslesen, php xml post auslesen, php formular abschicken und xml verarbeiten, php xml post, http://www.php.de/php-tipps-2007/44572-post-xml-auslesen.html, post xml php, php aus xml mit get post lesen, php send xml, send xml php, php post xml on server, send xml via php, formulardaten xml an php senden, xml post php, php content post xml, php how to send xml, xml aus post auslesen php, $_post xml auslesen php, text/xml php post, text/xml post php

Alle Zeitangaben in WEZ +1. Es ist jetzt 04:19 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.