Fonction corriger dans un formulaire de contact

cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 - 5 janv. 2009 à 23:17
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 6 janv. 2009 à 02:03
bonjour à tous !

alors voila je débute dans le PHP, j'ai fait un peu les bases de données et là je fais un peu de formulaire.
j'ai un petit soucis avec une fonction "corriger".
je vous explique :
- un formulaire est remplit par l'internaute (disont le sujet ($sujet) et le message($message))
- quand il clic sur "envoyer" cela ouvre une autre page php où il a le récapitulatif de son envoi (pas encore envoyé) avec 2 boutons : "envoyer" ou "corriger"
- si il clic sur "envoyer" ça envoi
- si il clic sur "corriger" ça revient à la page d'avant mais ça me l'envoi aussi !
et c'est ça mon problème !
je n'arrive pas à trouver pourquoi.

voilà le script :
 ;this.form.submit();" value="Envoyer">
 

merci de votre aide !

1 réponse

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
6 janv. 2009 à 02:03
Salut,

Oula !!! y a une grosse faute là.
Tu mélanges PHP et Javascript.
Au cas où ce soit nécessaire :
   - javascript = code exécuté sur la machine du visiteur
   - PHP = code exécuté sur le serveur

Ce qui se passe lorsque tu fais ça :
;this.form.submit();" value="Envoyer">

(Admettons que la page qui est appelée pour confirmation ("autre page php") se nomme confirm.php)

Côté serveur (donc avant l'envoi au visiteur) :
PHP "interprète" le code PHP (<?php ... ?>) qu'il trouve dans confirm.php
Il "tombe" sur <?php mail([...]);?>
> c'est du code PHP > il envoie directement le mail

Le serveur envoie la page "interprétée" au visiteur
Il a alors un input qui ressemble à ça :

=> ce qui forcement ne fonctionnera pas, puisque le mail a déjà été envoyé

Ce qu'il faut que tu fasses dans confirm.php :
Tu affiches ton récapitulatif
Tu recrées un formulaire qui pointe par exemple sur validation.php
   si le visiteur cliques sur "corriger" => page précédente
   si le visiteur cliques sur "confirmer" => envoi du formulaire

... et dans validation.php
if ([contrôle que les données reçues sont correctes]) {
 mail([...]);
}
// suivant ce que tu souhaites faire tu peux afficher un "votre message a bien été envoyé" ou rediriger le visiteur sur une autre page grâce aux headers
header("Location:[autre page]);

Cordialement,

Kohntark -
0
Rejoignez-nous