IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[cURL] Les données post ne passent pas


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $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

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    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.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut
    J'ai enlevé l'urlencode pour le mettre dans l'appel de la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $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.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Auriez-vous une erreur ? Quel code HTTP récupérez-vous (option CURLOPT_HEADER à true) ?


    Julp.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut
    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.

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Et en commentant curl_setopt($cURL,CURLOPT_CUSTOMREQUEST,1); ?


    Julp.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajax : paramètres POST ne passent pas
    Par Neilime05 dans le forum jQuery
    Réponses: 3
    Dernier message: 20/01/2012, 11h37
  2. récupérer les données retournée par $.post
    Par mougeole dans le forum jQuery
    Réponses: 2
    Dernier message: 12/12/2010, 19h39
  3. récupérer les données envoyees en POST
    Par Nicopilami dans le forum Services Web
    Réponses: 1
    Dernier message: 04/07/2009, 06h44
  4. Récupérer les données d'un post
    Par SpaceFrog dans le forum Langage
    Réponses: 13
    Dernier message: 19/11/2008, 13h11
  5. Conserver les données passées en POST
    Par kevinf dans le forum Langage
    Réponses: 24
    Dernier message: 03/11/2006, 00h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo