GET vs POST

Catégories:

Je suis actuellement sur le module PayPal pour un site de vente en ligne.

Ce module a été développé pour PayPal US, et il n’est donc pas très bien adapté à une utilisation avec la plateforme française de Paypal.

Bref, bien que je rame en PHP, j’ai cru comprendre dans le code que le module initial passe les variables vers Paypal en GET, et moi, pour le site français, je dois les passer en POST.

J’ai donc essayé de transformé le «variable_get(…)» du module d’origine en «variable_post(…)» , mais là, on me dit :
«Fatal error : Call to undefined function variable_post()»

Comment faire ??

#

Variable_get a tout l’air d’etre une fonction du module nan ? donc regarde ce qu’il y a dedans et au niveau des requetes HTTP pour changer le type…

#

Merci de ton aide Tostinni.

Justement, je n’ai pas trouvé cette fonction…

#

Bon, j’ai détourné le problème…

A titre indicatif, pour ceux qui seront confrontés à l’adaptation du module Paypal :

  • J’ai bloqué dans le code toute la partie de transmission des variables en GET vers le serveur Paypal,
  • J’ai fait un renvoi vers une node
  • Dans cette node, j’ai un script PHP qui récupère toutes les variables relatives à la commande
  • J’envoie le tout vers PayPal, en POST

C’est un peu du bricolage, mais ça fonctionne bien !

A ce sujet, comment fait-on pour :
- Afficher le nom de l’utilisateur en ligne
- Envoyer un formulaire sans cliquer (le simple fait d’aller sur la page envoi le formulaire, et renvoie l’utilisateur sur une autre page)

#

Ouhlà, attention à ne pas tout mélanger. variable_get() est une fonction de l’API Drupal qui permet de récupérer la valeur d’une variable persistente (stockée en BDD). Ca n’a rien à voir avec le GET HTTP.

Quant à la question d’envoyer en POST au lieu de GET, peux-tu nous dire comment la requête initiale est fabriquée ? S’agit-il d’un formulaire sur lequel l’utilisateur clique un bouton «submit» ? Est-ce une requête CURL ? Selon les précisions, je pourrais ptêtre t’en dire plus.

Enfin, pour envoyer un formulaire sans cliquer, tu peux utiliser la fonction drupal_execute().

Vincent

Formations Drupal pour WEBMASTERS, DESIGNERS et DÉVELOPPEURS.

#

D’accord, tu m’apprends un truc sur le variable_get() !

A propos de la requete initiale, le script php du module semble réunir toutes les variables relatives à la transaction commerciale, et envoi le tout à Paypal en méthode GET (via l’URL)…

Ce qui déclenche l’envoi, c’est le clic de l’utilisateur sur le bouton «Passer votre commande». Mais dans le code, je n’ai pas trouvé l’équivalent de «method=get», comme en HTML.

Pour la fonction drupal_execute() , ça semble pas mal à première vue… Puis-je l’inclure dans une node contenant du PHP, ou bien c’est à mettre dans un module ?

#

Il faut que je regarde le code pour comprendre, c’est dans le module paypal à télécharger sur drupal.org ?

Pour l’appel à la fonction, tu peux le mettre où tu veux tant que c’est du code PHP et que tu passes les bons paramètres. C’est plus propre dans un module, mais c’est plus pratique dans un node… à toi de voir.

Vincent

Formations Drupal pour WEBMASTERS, DESIGNERS et DÉVELOPPEURS.

#

C’est le module Paypal qui figure dans l’ensemble «ecommerce».

http://drupal.org/project/ecommerce

#

Hm… et quelle est l’URL à laquelle ce formulaire apparaît ?

Vincent

Formations Drupal pour WEBMASTERS, DESIGNERS et DÉVELOPPEURS.

#

Je développe le site en local pour l’instant…

Le formulaire apparait à cette URL :
http://localhost/ ?q=fr/cart/review

Syndiquer le contenu