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

Langage PHP Discussion :

[PHP-JS] Script "passerelle" entre un Form HTML et script s


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 75
    Points : 44
    Points
    44
    Par défaut [PHP-JS] Script "passerelle" entre un Form HTML et script s
    J'ai le form HTML suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form action="script.php" method="post">
      <input name="param1" type="text">
      <input name="param2" type="text">
      <input name="param3" type="text">
      <input type="submit" value="ok">
    </form>
    Et script.php va générer un autre form:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form action="http://www.monFournisseur.com/script.cgi" method="post">
      <input name="param1" value="<?$_POST["param1"]?>" type="hidden">
      <input name="param2" value="<?$_POST["param2"]?>" type="hidden">
      <input name="param3" value="<?$_POST["param3"]?>" type="hidden">
      <input type="submit" value="ok">
    </form>
    Ceci car je dois passer par la méthode POST pour communiquer avec http://www.monFournisseur.com/script.cgi et les variables param1, param2 et param3 doivent subir des traitements entre le premiers form HTML avant d'être passés à http://www.monFournisseur.com/script.cgi.

    Or, comment faire en PHP que ce second form "généré" s'exécute automatiquement (sans que qqn clicke sur le bouton submit)?

    En bref, le deuxième form ne devrait jamais s'afficher mais appeler directement http://www.monFournisseur.com/script.cgi ainsi les utilisateurs qui valideront le premier form HTML se retrouveront directement sur http://www.monFournisseur.com/script.cgi comme si mon form PHP intermédiaire est une "passerelle".

  2. #2
    Membre éclairé
    Avatar de efficks
    Inscrit en
    Septembre 2005
    Messages
    712
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 712
    Points : 776
    Points
    776
    Par défaut
    <form name="nomForm" action="http://www.monFournisseur.com/script.cgi" method="post">
    <input name="param1" value="<?$_POST["param1"]?>" type="hidden">
    <input name="param2" value="<?$_POST["param2"]?>" type="hidden">
    <input name="param3" value="<?$_POST["param3"]?>" type="hidden">
    <input type="submit" value="ok">
    </form>

    <script>document.nomForm.submit();</script>
    Avant de poster : FAQ, tutos, rechercher, google, ... Après :
    Merci

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Merci pour la réponse, mais il s'agit là d'une action Javascript alors que la raison pour laquelle je désire passer par ce script "passerelle" en PHP c'est que je désire faire les traiteents sur mes variables saisies dans le premier form en PHP, justement pour ne ps passer par Javascript (pour ceux qui l'ont désactivé dans leur browser).

    Au passage, je fais bien de préciser que mon script.php devrait plutôt se présenter ainsi...

    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
    19
    20
    21
     
    <?php
     
    $param1 = <?$_POST["param1"]?>;
    // divers traitements sur $param1...
    // ...
    $param2 = <?$_POST["param2"]?>;
    // divers traitements sur $param2...
    // ...
    $param3 = <?$_POST["param3"]?>;
    // divers traitements sur $param3...
    // ...
     
    ?>
     
    <form action="http://www.monFournisseur.com/script.cgi" method="post">
      <input name="param1" value="<?=$param1?>" type="hidden">
      <input name="param2" value="<?=$param2?>" type="hidden">
      <input name="param3" value="<?=$param3?>" type="hidden">
      <input type="submit" value="ok">
    </form>

  4. #4
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    c'est dans ton form HTML qu'il y a un soucis, tout tes input ont le même nom...
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    C'est vrai, merci, j'ai corrigé maintenant. Il s'agit d'un code écrit pour les besoins de la question, pour illustrer mon problème, mon form est bien plus compliqué et long dans la réalité...

    Alors, une éventuelle solution pour passer via PHP à mon script final mes variables remaniées par mon script-passerelle PHP? Sans utiliser Javascript, donc.

  6. #6
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    ca ne répond pas à la question, mais présenter ta page de traitement comme une page de "validation des données", demandant donc une confirmation à l'utilisateur (et donc hop, une validation de ton formulaire) ?
    (je cherche comment faire autrement)
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  7. #7
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    sinon, il semble que les variables $_GET et $_POST soient ouvertes en écriture (test fait maison), donc peut être un truc comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $_POST['param1'] = $param1;
    $_POST['param2'] = $param2;
    $_POST['param3'] = $param3;
    header('Location: http://www.monFournisseur.com/script.cgi');
    (attention pour le header, uniquement si tu n'as pas de HTML avant)
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  8. #8
    Membre éclairé
    Avatar de efficks
    Inscrit en
    Septembre 2005
    Messages
    712
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 712
    Points : 776
    Points
    776
    Par défaut
    En passant, tu peux donner le même nom à tous tes input et y accéder sous forme de tableau en PHP il me semble.
    Avant de poster : FAQ, tutos, rechercher, google, ... Après :
    Merci

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Merci pour vos réponses!

    Citation Envoyé par titoumimi
    sinon, il semble que les variables $_GET et $_POST soient ouvertes en écriture (test fait maison), donc peut être un truc comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $_POST['param1'] = $param1;
    $_POST['param2'] = $param2;
    $_POST['param3'] = $param3;
    header('Location: http://www.monFournisseur.com/script.cgi');
    Et dans ce cas tu crois que ma variable $_POST va être transmise à http://www.monFournisseur.com/script.cgi? Je vais tester, ce serait super mais sincèrement ça m'étonne...

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    C'est bien ce que je craignais, en faisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $_POST['param1'] = $param1;
    $_POST['param2'] = $param2;
    $_POST['param3'] = $param3;
    header('Location: http://www.monFournisseur.com/script.cgi');
    Ma variable $_POST n'est pas transmise à http://www.monFournisseur.com/script.cgi

    Y a-t-il un moyen de trabsmettre cette variable à mon script.cgi en indiquant, par exemple, dans la fonction header, que la méthode est POST? Ou par un quelconque autre moyen?

    Merci!

  11. #11
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    POST http://whateverthisshouldbe/displayquery.php HTTP/1.0
    http://www.phpbuilder.com/board/show...oto=nextoldest

    j'espère que ca marche... Sinon, désolé pour mes idées à la con
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Merci pour ta réponse!

    Malheureusement, je ne crois pas que ça s'applique à ma situation... Tant pis, pour le moment je passe par JavaScript en attendant une meilleure solution 100% PHP-HTTP.

    Je n'ose pas mettre [résolu] vu que ce n'est pas vraiment le cas...

Discussions similaires

  1. Différence entre <layout:form>&<html:form>
    Par benyahia4 dans le forum Struts 1
    Réponses: 0
    Dernier message: 06/05/2011, 10h10

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