Formidable : Traitement -> Post sur un script

Bonjour,

J’utilise un script cgi spécifique ( 15 ans d’évolution ! ) sur lequel je voudrais rediriger les données récoltées par un formulaire formidable. J’imagine que quelqu’un a déjà fait ça, ou bien y a-t-il un moyen simple de le réaliser en utilisant l’Adresse de redirection après validation.

J’ai essayé de créer une chaîne de valeurs en paramètre de l’URL de type :

https://mon.site/cgi-bin/script.cgi?nom=@input_1@&prenom=@input_2@.

Comme je m’en doutais bien, ça ne fonctionne pas…

Merci d’avance,

Bernard

Le 11/03/2021 à 11:37, Bernard Frit a écrit :

Bonjour,

J'utilise un script cgi spécifique ( 15 ans d'évolution ! ) sur lequel je voudrais rediriger les données récoltées par un formulaire formidable. J'imagine que quelqu'un a déjà fait ça, ou bien y a-t-il un moyen simple de le réaliser en utilisant l'/Adresse de redirection après validation.
/
J'ai essayé de créer une chaîne de valeurs en paramètre de l'URL de type :
https://mon.site/cgi-bin/script.cgi?nom=@input_1@&prenom=@input_2@
Comme je m'en doutais bien, ça ne fonctionne pas...
Merci d'avance,
Bernard

Le plus propre serait encore que tu crée ton propre traitement, qui ajouterait un paramètre redirect dans son flux de retour.

Théoriquement cela prendrait pas trop longtemps de passer le flux de redirection dans le traitement des @@, mais j'ai un peu peur des potentiels effet deletere pour des gens.

Le 11/03/2021 à 13:21, Maïeul Rouquette a écrit :

Théoriquement cela prendrait pas trop longtemps de passer le flux de redirection dans le traitement des @@, mais j'ai un peu peur des potentiels effet deletere pour des gens.

Alors non, on ne va pas faire ça à priori : l'URL de redirection, est une redirection *après le POST* et ne sert pas à "envoyer des informations" (encore moins en GET).

Comme le dit Maïeul, le plus propre serait plutôt d'ajouter un traitement spécifique à ton besoin, qui ne fait presque rien mais ajoute à la fin une redirection vers ton outil (ou bien qui envoie les infos à ton outil sans rediriger vers lui, ce qui serait peut-être encore mieux pour les gens qui restent alors sur ton site).

--
RastaPopoulos

Le 11/03/2021 à 15:25, RastaPopoulos a écrit :

Le 11/03/2021 à 13:21, Maïeul Rouquette a écrit :

Théoriquement cela prendrait pas trop longtemps de passer le flux de redirection dans le traitement des @@, mais j'ai un peu peur des potentiels effet deletere pour des gens.

Alors non, on ne va pas faire ça à priori : l'URL de redirection, est une redirection *après le POST* et ne sert pas à "envoyer des informations" (encore moins en GET).

Comme le dit Maïeul, le plus propre serait plutôt d'ajouter un traitement spécifique à ton besoin, qui ne fait presque rien mais ajoute à la fin une redirection vers ton outil (ou bien qui envoie les infos à ton outil sans rediriger vers lui, ce qui serait peut-être encore mieux pour les gens qui restent alors sur ton site).

oui effectivement, j'ai oublié de dire qu'on pouvait très bien faire la requete sans rediriger vers la page en question :slight_smile:

Ce que j'ai compris :

   1. si j'exporte le yaml du formulaire
   2. je modifie dans le yaml le nom des champs
   3. j'ajoute un array redirige dans traitements (dans le yaml)
   4. Je crée une fonction redirige.php dans ./traiter
   5. En prenant modèle sur enregistrement.php je parse $args['formulaire']
   6. Je fais la redirection POST sur l'URL du script cgi
   7. ...

J'ai bon ? :wink:

Le jeu. 11 mars 2021 à 13:21, Maïeul Rouquette <maieul@maieul.net> a écrit :

Le 11/03/2021 à 11:37, Bernard Frit a écrit :
> Bonjour,
>
> J'utilise un script cgi spécifique ( 15 ans d'évolution ! ) sur lequel
> je voudrais rediriger les données récoltées par un formulaire
> formidable. J'imagine que quelqu'un a déjà fait ça, ou bien y a-t-il un
> moyen simple de le réaliser en utilisant l'/Adresse de redirection après
> validation.
> /
> J'ai essayé de créer une chaîne de valeurs en paramètre de l'URL de type
:
> https://mon.site/cgi-bin/script.cgi?nom=@input_1@&prenom=@input_2@.
> <https://mon.site/cgi-bin/script.cgi?nom=@input_1@&prenom=@input_2@.&gt;\.\.
> Comme je m'en doutais bien, ça ne fonctionne pas...
> Merci d'avance,
> Bernard
>
>
Le plus propre serait encore que tu crée ton propre traitement, qui
ajouterait un paramètre redirect dans son flux de retour.

Théoriquement cela prendrait pas trop longtemps de passer le flux de
redirection dans le traitement des @@, mais j'ai un peu peur des
potentiels effet deletere pour des gens.

Le 11/03/2021 à 16:15, Bernard Frit a écrit :

Ce que j'ai compris :

1. si j'exporte le yaml du formulaire
2. je modifie dans le yaml le nom des champs
3. j'ajoute un array redirige dans traitements (dans le yaml)
4. Je crée une fonction redirige.php dans ./traiter
5. En prenant modèle sur enregistrement.php je parse $args['formulaire']
6. Je fais la redirection POST sur l'URL du script cgi
7. ...

J'ai bon ? :wink:

heu. non.
Tu a pas besoin de modifier le yaml du formulaire où quoi :slight_smile:
tu a besoin de créer un traitement spécifique. C'est à dire

1. Un dossier /traiter accesible dans un chemin SPIP (typiquement dans squelettes, mais l'idée c'est de faire un plugin à part)
2. Dedans 2 fichiers
  - <montraitement>.yaml qui décrit les traitements et c'est option (tu peux effectuivement t'inspirer d'email/enregistrement.yaml
  - <montraitement>.php ayant une fonction traitement_<montraitement>()</code> qui
    - recoit un certains noms de paramètre en argument (tu peux reprendre ce qu'il y a dans enregistrement.yaml)
    - en s'appuyant sur la fonction _request() trouve les valeurs des champs et construit ainsi l'url que tu veux
    - met cette url dans le paramètre 'redirect' (de mémoire) des retours OU BIEN si tu ne souhaite pas faire de redirection, se contente d'utiliser recuperer_page() pour ping l'url

OK merci. Je vais regarder tout ça de près. Il va y avoir une courbe d’apprentissage !

Ce que je ne comprends pas c’est comment je fais le lien entre formidable et .

Je suis en train d’examiner « formidable_mailsubscribers » pour comprendre comment ça marche.

Le 11/03/2021 à 18:04, Bernard Frit a écrit :

OK merci. Je vais regarder tout ça de près. Il va y avoir une courbe d'apprentissage !
Ce que je ne comprends pas c'est comment je fais le lien entre formidable et <montraitement>.
Je suis en train d'examiner "formidable_mailsubscribers" pour comprendre comment ça marche.

bau tu n'a rien à faire de special. Tu créer les fichiers .yaml/.php que je t'ai dit, avec les fonctions qui vont bien. Et ensuite tu pourra activer ton traitement personnalisé...

Ok. Hé ben je vais m'y mettre.
Super. Merci.
Bernard

Le jeu. 11 mars 2021 à 18:12, Maïeul Rouquette <maieul@maieul.net> a écrit :

Le 11/03/2021 à 18:04, Bernard Frit a écrit :
> OK merci. Je vais regarder tout ça de près. Il va y avoir une courbe
> d'apprentissage !
> Ce que je ne comprends pas c'est comment je fais le lien entre
> formidable et <montraitement>.
> Je suis en train d'examiner "formidable_mailsubscribers" pour comprendre
> comment ça marche.
>

bau tu n'a rien à faire de special. Tu créer les fichiers .yaml/.php que
je t'ai dit, avec les fonctions qui vont bien. Et ensuite tu pourra
activer ton traitement personnalisé...