Newsgroup: it.comp.www.php
Titolo: gestire file xml

Ciao,
vorrei creare un programmino php che accetti un file xml dalla rete e lo
processi per poi updatare il database ed eventualmente rispondere al client
che tutto č andato bene. Il mio dubbio nasce dal fatto che non so come
gestire questo evento (l'arrivo bello e buono di un file xml) con php. E'
possibile?
Vi ringrazio,
Bart

 (l'arrivo bello e buono di un file xml) con php. E' possibile?
Versione semplice:
http://www.php.net/manual/en/features.file-upload.php
Versione complessa (ma elengante):
utilizza SOAP:
	PHP4 -> nuSoap 
http://sourceforge.net/projects/nusoap/
	PHP5 -> 
http://www.php.net/soap
-- 
I am what I am, I do what I can
Do. Or do not. There is not try.

 PHP4 -> nuSoap 
http://sourceforge.net/projects/nusoap/
ci ho provato, ho preso il file nusoap.php e ho creato un programmino
all'inizio scemo per vedere se funziona. Il risultato è sempre, da qualche
ora:
Servererror in msg parsing: xml was empty, didn&apos;t parse!
che sinceramente non ho capito che cosa è. Io ho messo il file nusoap.php e
tutta la libreria annessa nella directory dove c'è anche il file
MioServer.php3. Il mio provider ha un php 4.3.8, è quello che da problemi?
grazie.
Bart

 4.3):
$GLOBALS['HTTP_RAW_POST_DATA'] = file_get_contents ('php://input');
$HTTP_RAW_POST_DATA = $GLOBALS['HTTP_RAW_POST_DATA'];



L'ho fatto, ma sempre lo stesso. Il file è:
<?php
$GLOBALS['HTTP_RAW_POST_DATA'] = file_get_contents ('php://input');
$HTTP_RAW_POST_DATA = $GLOBALS['HTTP_RAW_POST_DATA'];
require_once('nusoap.php');
$server = new soap_server;
$server->register('hello');
function hello($name) {
    return 'Hello, ' . $name;
}
$server->service($HTTP_RAW_POST_DATA);
?>
Mentre l'errore che mi da è il seguente:
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/
"
xmlns:SOAP-ENV="
http://schemas.xmlsoap.org/soap/envelope/
"
xmlns:xsd="
http://www.w3.org/2001/XMLSchema
"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance
"
xmlns:SOAP-ENC="
http://schemas.xmlsoap.org/soap/encoding/
"
xmlns:si="
http://soapinterop.org/xsd
">
- <SOAP-ENV:Body>
- <SOAP-ENV:Fault>
  <faultcode>Server</faultcode>
  <faultactor />
  <faultstring>error in msg parsing: xml was empty, didn't
parse!</faultstring>
- <detail>
  <soapVal xsi:type="xsd:string" />
  </detail>
  </SOAP-ENV:Fault>
  </SOAP-ENV:Body>
  </SOAP-ENV:Envelope>

 parse!</faultstring>
Che codice stai utilizzando come client?


 Che codice stai utilizzando come client?
grazie, ho risolto andando a controllare il client, invece mi ero incaponito
sul programma server. Ora esce sul lato client: Hello Bart!
Bart

 ha scritto nel messaggio news:4163...@x-privat.org...

Ciao Bart, potresti postare il codice che usi sul client per curiosità? Che
linguaggio usi per interfacciarti via soap? Vorrei fare una cosa simile
usando come client un programmino desktop scritto in java ed
interfacciandomi con axis....
-- 
Ciao e buon lavoro,
  Renato
---- 
Renato Eschini
   Inera srl
   Via Vespucci 41
   56100 Pisa
   Tel:         (+39) (0)50 2201218
   WWW:         
http://www.inera.it


Ciao,
uso lo stesso php per adesso. Il codice è il seguente:
<?php
require_once('nusoap.php');
$client = new soapclient('
http://www.iiu.co.jp/test/prova.php3'
);
$result = $client->call('hello', array('name' => 'Bart'));
print_r($result);
?>
In realtà c'è una cosa che non mi convince affatto. Se provo ad accedere
alla pagina dove c'è il file php3 con il webservice mi da sempre
quell'errore maledetto:
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/
"
xmlns:SOAP-ENV="
http://schemas.xmlsoap.org/soap/envelope/
"
xmlns:xsd="
http://www.w3.org/2001/XMLSchema
"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance
"
xmlns:SOAP-ENC="
http://schemas.xmlsoap.org/soap/encoding/
"
xmlns:si="
http://soapinterop.org/xsd
">
- <SOAP-ENV:Body>
- <SOAP-ENV:Fault>
  <faultcode>Client</faultcode>
  <faultactor />
  <faultstring>error in msg parsing: xml was empty, didn't
parse!</faultstring>
- <detail>
  <soapVal xsi:type="xsd:string" />
  </detail>
  </SOAP-ENV:Fault>
  </SOAP-ENV:Body>
  </SOAP-ENV:Envelope>
che sincermente non so proprio come gestirlo, perchè in pratica se propvo a
richiamarlo da C# non riconosce che ci sia un web service istallato. Cosa
strana, avrei bisogno di delucidazioni in merito. Può darsi che C# abbia
bisogno, come ho letto, di alcuni elementi di configurazione per WSDL,
però.........
