Plusieurs action dans balise Form

Plusieurs action dans balise Form - PHP - Programmation

Marsh Posté le 03-03-2006 à 22:11:43    

Bonsoir,  
 
en fait, je désire récupérer les données de mon formulaire dans une base de donnée avant (ou en même temps) que celles-ci soient envoyées vers un site qui gère ensuite une vente en ligne (eurowebpaiement.com). Je voudrai, en quelque sorte, les attraper au vol.
 
Pas de souci pour créer la table, ect... mais coment faire pour remplir deux bases de données complétement distinctes ?
 
Est il possible de mettre plusieurs actions dans une balise FORM ?
 
Merci d'avance.

Reply

Marsh Posté le 03-03-2006 à 22:11:43   

Reply

Marsh Posté le 04-03-2006 à 11:16:06    

up...

Reply

Marsh Posté le 04-03-2006 à 17:45:39    

personne pour m'aider ?... :(

Reply

Marsh Posté le 06-03-2006 à 14:34:40    

On ne peut mettre qu'une seule "action" à un formulaire. C'est l'html qu'est fait comme ça. D'ailleur, s'il y avait plusieurs "action" à un formulaire, comment le navigateur ferait pour savoir lequel est le bon et s'il les exécute tous, comment il ferait pour savoir quelle page reçu à la suite des demandes des actions il devrait afficher et lesquels il devrait ignorer.
 
Si tu veux faire un tel truc, dans tous les cas il te faudra du javascript du moins si tu ne veux pas que le visiteur doivent valider deux fois le formulaire à la main.
 
En bref : méthode ajax (dans 10% des cas, tu ne seras jamais prévenu mais au moins, c'est transparent pour tout le monde) : tu fais exécuter une fonction javascript à la validation du formulaire et cette fonction t'envéra les données. Ensuite, le navigateur envéra le formulaire comme normal
méthode 2 (qui marche dans tous les cas, mais nécessitera une double validation du client si le javascript est désactivé) : tu fais pointer le formulaire sur ton site, ensuite, tu réaffiches une nouvelle page avec un formulaire préremplis et dans cette page, tu met aussi une fonction qui validera le formulaire dés la fin de l'affichage d'une page. Probléme : si le javascript est désactivé, le client devra valider le formulaire une seconde fois et rien ne dit que le navigateur envéra les données au second site.
 
PS : Si c'est pour envoyer des infos de paiement, personellement, je ne ferais pas confiance en un site qui se permettrait d'utiliser ce genre de méthode et en fait, je ne fais confiance qu'a trés peu de sites quand le paiement ne se fait pas directement sur le site web d'une banque.
 
PS2 : ton soit disant second site (eurowebpaiement.com) n'existe pas. D'ailleur, il n'existe pas non plus en .net ni en .org. Je ne sais pas si c'est un site que vous allez créer ou qu'une personne de votre conaissance va créer mais si c'est le cas, vous avez intérer de réserver rapidement ce nom de domaine avant qu'un autre le fasse.

Reply

Marsh Posté le 06-03-2006 à 14:45:18    

Reply

Marsh Posté le 06-03-2006 à 14:50:47    

Je conaissais pas ce systéme là de vente en ligne.
Et c'est sur qu'avec un mauvais nom de domaine, je risquais pas de trouver.

Reply

Marsh Posté le 06-03-2006 à 14:52:13    

j'ai déjà intégré eurowebpayment mais ca ne sert à rien de vouloir récup les infos. Il fo que tu personnalises le formulaire qu'il te propsoe sur le site. Tu le complètes avec ton caddie etc... et ensuite tu balances sur leur site. 'est eux qui vont traiter le paiement pas toi.


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
Reply

Marsh Posté le 07-03-2006 à 12:29:10    

Effectivement je me suis trompé dans l'url, désolé.
 
La démarche que j'effectue est purement universitaire. La vente en ligne restera fictive. C'est pourquoi, pour remplir pleinement ma tâche, je désire récupérer les informations (permettant ainsi d'alimenter une base de données).
 
Je suis d'accord avec toi newneo2001, ca ne sert à rien sinon à remplir pleinement mon cahier des charges.
 
Donc vous ne voyez pas d'autres solutions que de valider deux fois le formulaire ? (J'élimine la solution du javascript mais merci quand même !)
 
Je ne peux pas rediriger la partie html (form action) vers ma base de données et ensuite, rediriger vers le site de paiement dans la partie php ??
 
Merci pour vos réponses.

Reply

Marsh Posté le 07-03-2006 à 14:22:00    

tu dois pouvoir le faire :
1- dans ton formulaire, ton action pointe vers une page à toi
2- ta page logue dans ta bdd tout ce dont tu as besoin
3- tu rediriges vers la page de ton choix.
Si c'est du "get" que tu fais, une seule ligne suffira :
header("location: http://www.eurowebpayment.com/mapa [...] 034;.$_GET['var1']."&var2=".$_GET['var2']);
par contre si c'est du post, c'est possible egalement avec les header mais je ne sais plus ce qu'il faut ecrire.


Message édité par fluminis le 07-03-2006 à 14:22:43

---------------
http://poemes.iceteapeche.com - http://www.simuland.net
Reply

Marsh Posté le 07-03-2006 à 15:15:32    

ta page html :

Code :
  1. <form action="mapage.php" action="get">
  2. <input type="text" name="var1" />
  3. <input type="text" name="var2" />
  4. </form>


 
mapage.php

Code :
  1. <?php
  2. if(isset($_GET['var1']) && isset($_GET['var2'])){
  3.   $var1 = addslashes($_GET['var1']);
  4.   $var2 = addslashes($_GET['var2']);
  5.   //TODO : ici faire la connexion à la base de donnée mysql
  6.   $sql = "INSERT INTO matable (col1,col2) VALUES ('".$var1."','".$var2."')";
  7.   mysql_query($sql);
  8.   //ici faire la redirection
  9.   header("location: http://www.eurowebpayment.com/mapa [...] 034;.$_GET['var1']."&var2=".$_GET['var2']);
  10. }
  11. ?>


si tu as d'autres questions, pose les ici comme ça moi ou quelqu'un d'autre pourra y repondre.
++


Message édité par fluminis le 07-03-2006 à 15:16:51

---------------
http://poemes.iceteapeche.com - http://www.simuland.net
Reply

Marsh Posté le 07-03-2006 à 15:15:32   

Reply

Marsh Posté le 08-03-2006 à 18:42:04    

Bon alors mon php c :  
 
<?
 if ($_POST['isSubmited'] == true)
 {
  $quantite = $_POST['article[1][quantite]'];
  $prenomnom = $_POST['name_debiteur'];
  $adresse = $_POST['adress_debiteur'];
  $codepostal = $_POST['codepostal'];
  $ville = $_POST['ville'];
  $email = $_POST['email_debiteur'];
 
  $dbconn = pg_connect("host=toto user=toto dbname=toto" );
  $sql = "INSERT INTO tb_commande VALUES ('".$nom."',
  '".$quantite."', '".$prenomnom."', '".$adresse."', '".$codepostal."', '".$ville."', '".$email."')";
 
  pg_query($dbconn, $sql);
 }
?>

 
 
 
et mon html c tout un formulaire avec les champs repris dans le php commançant par :  
 
<form method='POST' name='EWP_140063' action='http://www.eurowebpayment.com/fr/cb/' target='_blank'>
 
ensuite il y a une bannière donc je zappe et après il y a les champs à remplir par l'utilisateur :  
 
<TABLE border='0' width='100%' cellpadding='2' cellspacing='0'>
  <TR>
 <TD align='right'><font face='Verdana' size='1' color='#FFFFFF'><b>Quantité* : </b></font></TD>
 <TD align='top'><input  class='formular' type='text' name='article[1][quantite]' value ='' size='2'></TD>
  </TR>
  <TR>...

 
....... suivi de tous les autres champs .......
 
et enfin à la fin de la partie html toujours :  
 
...
</table>
<input type='hidden' name='rgrg' value='nianaina'>
<input type='hidden' name='rgrgr' value='nianiania'>
<input type='hidden' name='rgrgr' value='niania'>
<input type='hidden' name='rgrgr' value='nianai'>
<input type='hidden' name='rgrgrgr' value='niania'>
<!-- début des options -->
<!-- fin des options -->
</form>
    </td>
  </tr>
</TABLE>

 
Toute cette partie html est donnée par eurowebpayment, j'y ai juste rajouté quelques champs pour ma base.
Pour l'instant, la partie php et html sont dans un même fichier php mais je vais les séparer.
 
Avec tout ça, je vais peut être mieux comprendre ce que tu veux faire avec "var1" ... parce que je ne comprends pas.  
 
Désolé pour mon ignorance mais je vois pas.
 
Merci beaucoup.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed