Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
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 25/10/2006, 22h13   #1
Membre du Club
 
Inscription : janvier 2005
Messages : 151
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 151
Points : 40
Points : 40
Par défaut [cURL] Les données post ne passent pas

Rebonjour à tous,

Via une recherche sur ce forum, j'ai trouvé plusieurs sources pour effectuer une requête à distance avec paramètre en post avec cURL

J'ai mis en place une fonction qui fonctionne avec le get mais ça ne fonctionne pas avec le post et je ne sais pas pourquoi.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function SendPacket($Str_URL,$Str_Post=false,$Str_Cookie=false){
	$cURL=curl_init();
	curl_setopt($cURL,CURLOPT_URL,$Str_URL);
 
	if($Str_Cookie)
	  curl_setopt($cURL,CURLOPT_COOKIE,$Str_Cookie);
	if($Str_Post){ 
	  curl_setopt($cURL,CURLOPT_POST,1); 
	  curl_setopt($cURL,CURLOPT_CUSTOMREQUEST,1); 
	  curl_setopt($cURL,CURLOPT_POSTFIELDS,urlencode($Str_Post)); 
	  //print("<br/>[".$Str_Post."]</br>");
	}  
	curl_setopt($cURL,CURLOPT_COOKIEJAR,'cookie.txt'); 
	curl_setopt($cURL,CURLOPT_RETURNTRANSFER,1);
	$Str_Source=curl_exec($cURL);
 
	return $Str_Source;
}
Et cette fonction est appelée comme suivant:

Code :
$xml=SendPacket('http://*****/module/cron/Logsfofo.php','psw='.sha1(date('d').'pswpsw'.date('h')));

Si je met des paramètres en get à l'adresse, cela se passe bien mais les post ne passent pas.

Je cherche mais je vois pas ce qui ne va pas ! J'ai comparé à toutes les sources que j'ai trouvé ici mais ça marche toujours pas. J'en fais donc appel à vous.

Merci
vodnok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2006, 22h26   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Je pense que le problème se situe sur l'encodage avec la fonction urlencode. En effet, seules les valeurs des variables doivent être encodées alors que dans votre code vous encodez également le nom et surtout le caractère = (remplacé par %3D).


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2006, 23h18   #3
Membre du Club
 
Inscription : janvier 2005
Messages : 151
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 151
Points : 40
Points : 40
J'ai enlevé l'urlencode pour le mettre dans l'appel de la fonction

Code :
$xml=SendPacket('http://******/module/cron/Logsfofo.php','psw='.urlencode(sha1(date('d').'pswpsw'.date('h'))));

mais ca ne marche toujours pas. J'ai essayé également sans urlencode car avec le sha il ne doit pas y avoir de problème normalement.
vodnok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2006, 23h43   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Auriez-vous une erreur ? Quel code HTTP récupérez-vous (option CURLOPT_HEADER à true) ?


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2006, 00h50   #5
Membre du Club
 
Inscription : janvier 2005
Messages : 151
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 151
Points : 40
Points : 40
Non je n'ai pas d'erreur.

Le scipt distant test le champ passé en post et vérifié sa validité. Suivant cela il génère un xml soit il envoie un message disant que demande n'est pas valide.

Je recois bien le message de non validité. Je fais également un print des valeur GEt et POST. C'est comme cela que je peux vérifier que le GET passe bien mais pas le POST.
vodnok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2006, 11h29   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Et en commentant curl_setopt($cURL,CURLOPT_CUSTOMREQUEST,1); ?


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2006, 12h04   #7
Membre du Club
 
Inscription : janvier 2005
Messages : 151
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 151
Points : 40
Points : 40
J'avais ajouté cette lgine car cela ne fonctionnait pas avant (sans doute à cause du urlencode sur le sign =)

J'ai commenté la ligne et cela fonctionne.

Merci beaucoup pour l'aide.
vodnok 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 06h52.


 
 
 
 
Partenaires

Hébergement Web