Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/05/2007, 15h24   #1
Membre habitué
 
Avatar de tintin72
 
Inscription : septembre 2003
Messages : 595
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 595
Points : 123
Points : 123
Par défaut Utilisation de HTTP_RAW_POST_DATA

Bonjour,

Je tente depuis 2 jours de faire tourner un bête script de web service, mais je suis confronté à un pb vraiment bizzare.
(note: mon script tourne sous PHP 5.2.2 et Apache 2.0.59 )

Voici mon code:

"service.php"
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<?php 
 
  class HelloService { 
  function hello($name) { 
 
    return "Hello ".$name." !"; 
    } 
  } 
 
  $server = new SoapServer(null, array('uri' => 'http://localhost/service/service.php', 
                                        'location' => 'http://localhost/service/service.php')); 
  $server->setClass("HelloService"); 
 
  $server->handle(); 
?>
"client.php"
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<?php
$client = new SoapClient
      (
      null, 
      array
            (
            'uri' => 'http://localhost/service/service.php',
            'location' => 'http://localhost/service/service.php', 
            'trace' => 1,
	          'exceptions' => 0)); 
 
print($client->hello("dietrich"));
?>
lorsque je lance la page client.php j'obtiens l'erreur suivante:
Citation:
SoapFault exception: [SOAP-ENV:Server] Bad Request. Can't find HTTP_RAW_POST_DATA in D:\myweb\client\client.php:11 Stack trace: #0 [internal function]: SoapClient->__call('hello', Array) #1 D:\myweb\client\client.php(11): SoapClient->hello('dietrich') #2 {main}
En gros il trouve pas la variable HTTP_RAW_POST_DATA.

Maintenant, si dans service.php je met cette ligne de code
Code :
1
2
 
$HTTP_RAW_POST_DATA = file_get_contents('php://input');
juste avant le handle....ça marche.
J'obtiens bien 'Hello dietrich' dans IE.
Toutefois ce n'est pas normal de devoir ajouter cette ligne pour que mon code fonctionne.

Alors, evidement j'ai activé 'always_populate_raw_post_data = On' dans le fichier php.ini, mais rien n'y fait, ça ne fonctionne toujours pas.

Est ce que quelqu'un aurait une idée de la nature de ce pb ?
tintin72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 17h47   #2
Membre habitué
 
Avatar de tintin72
 
Inscription : septembre 2003
Messages : 595
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 595
Points : 123
Points : 123
Ca y est ....j'ai enfin trouvé d'où vient ce pb !!!!
En fait c'est tout connement un bug dans PHP 5.2.2.... et oui
Le rapport sur ce bug peut être consulté sur php.net:

http://bugs.php.net/bug.php?id=41293&edit=1


Heureusement ce bug a été corrigé. Il suffit de télécharger la dernière version build de PHP 5 ici:
http://snaps.php.net/

puis de l'installer à la place de l'ancienne, et tout remarche comme par miracle
tintin72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 17h48   #3
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Content que tu aies résolu ton probleme. Mais soit dit en passant j'ai php 5.2.2 et moi ca fonctionnait!

Enfin le probleme est résolu c'est le principal, penses au tag!
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 18h12   #4
Membre habitué
 
Avatar de tintin72
 
Inscription : septembre 2003
Messages : 595
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 595
Points : 123
Points : 123
Citation:
Mais soit dit en passant j'ai php 5.2.2 et moi ca fonctionnait!
Oui, c'est curieux!
Peut être que les versions en téléchargement sur php.net diffèrent en fonction des builds même si officielement c'est toujours php 5.2.2
Mais bon, ça marche c'est l'essentiel
tintin72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2007, 15h04   #5
Rédacteur
 
Avatar de doctorrock
 
Homme Julien Pauli
Architecte de système d'information
Inscription : mai 2006
Messages : 597
Détails du profil
Informations personnelles :
Nom : Homme Julien Pauli
Âge : 29
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : mai 2006
Messages : 597
Points : 5 015
Points : 5 015
Corrigé dans PHP 5.2.3
Reporté ici
__________________
.: Expert contributeur certifié PHP/ZF :.
Mes articles - Twitter - GitHub
doctorrock est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h43.


 
 
 
 
Partenaires

Hébergement Web