Erreur sur un envoi de formulaire via PHP
Résolu
byothe
Messages postés
45
Date d'inscription
Statut
Membre
Dernière intervention
-
bbar Messages postés 436 Date d'inscription Statut Membre Dernière intervention -
bbar Messages postés 436 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un petit problème. Je cherche à faire un formulaire qui m'envoie un mail directement sans passer par les logiciels de messagerie. J'ai donc récupéré des bouts de code PHP que j'ai adaptés à ma sauce.
Mais cela ne fonctionne pas... Est-ce que vous voyez quleque chose qui pourrait expliquer le dysfonctionnement.
J'obtient l'erreur suivante :
"Notice: Undefined index: action in XXX\abonnement2.php on line 2"
Merci beaucoup pour votre aide !
J'ai un petit problème. Je cherche à faire un formulaire qui m'envoie un mail directement sans passer par les logiciels de messagerie. J'ai donc récupéré des bouts de code PHP que j'ai adaptés à ma sauce.
Mais cela ne fonctionne pas... Est-ce que vous voyez quleque chose qui pourrait expliquer le dysfonctionnement.
J'obtient l'erreur suivante :
"Notice: Undefined index: action in XXX\abonnement2.php on line 2"
<?php if($_POST['action'] == 'submitted') { $adress = "glaverne@XXX.com"; $sujet = "Abonnement / Désabonnement au reporting Mensuel"; $message = "Une demande d'abonnement ou de désabonnement au reporting à été effectuée depuis le site www.roche-brune.com :\n"; $message .= "Nom: {$_POST['nom']}\nPrénom: {$_POST['prenom']}\nSociété: {$_POST['societe']}\nE-mail: {$_POST['email']}\n"; $message .= "ABonnement / Désabonnement : {$_POST['reporting']}\n"; $entete ="From: {$_POST['email']}\n"; mail($adress, $sujet, $message, $entete); //page de sortie $insertGoTo = "/abonnement_validation.php"; if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $HTTP_SERVER_VARS['QUERY_STRING']; } header(sprintf($insertGoTo)); } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Abonnement / Désabonnement au reporting mensuel</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="design2.css" rel="stylesheet" type="text/css"> <script type="text/javascript"> function verif_champs() { if(document.forml.nom.value == "") { alert("Veuillez entrer votre nom SVP"); document.forml.nom.focus(); return false; } if(document.forml.prenom.value == "") { alert("Veuillez entrer votre Prénom SVP"); document.forml.prenom.focus(); return false; } if(document.forml.email.value == "") { alert("Veuillez nous communiquer votre adresse email pour que nous puissons vous inscrire sur notre liste de diffusion."); document.forml.email.focus(); return false; } if(document.forml.email.value.indexOf('@') == -1) { alert("Adresse Email invalide!"); document.forml.email.focus(); return false; } if(document.forml.email.value.length <7) { alert("Adresse Email invalide!"); document.forml.email.focus(); return false; } } </script> </head> <body> <form name="forml" method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" onSubmit="return verif_champs()"> <table border="0"> <tr> <td> <p class="titreForm">Abonnement au reporting mensuel</p> <Fieldset id="formulaire"> <p><b><font size="1"> Nom :</font> </b> <input name="nom"size=40 maxlength=40> <b><font size="1"><br> </font></b> <b><font size="1"> Prénom :</font> </b> <input name="prenom"size=40 maxlength=40> <b><font size="1"> <br> Société :</font> </b> <input name="societe"size=40 maxlength=40> <b><font size="1"><br> e-Mail :</font> </b> <input name="email"size=40 maxlength=40> <br> <br> <input type="radio" name="reporting" value="Recevoir le reporting tous les mois" checked> <font size="2">Recevoir le reporting tous les mois</font><br> <input type="radio" name="reporting" value="Ne plus recevoir le reporting"> <font size="2">Ne plus recevoir le reporting</font></p> <div align="center"> <input type="hidden" name="action" value="submitted"> <input type="button" value="Envoyer" onClick="Envoyer(this.form)" style="background:#A1BEFF font:1.2em "Trebuchet MS", Verdana, sans-serif font-weight: bold"> <input type="reset" name="Submit" value="Effacer" style="background:#A1BEFF font:1.2em "Trebuchet MS", Verdana, sans-serif font-weight: bold"> <p> </p> </div> </fieldset ></td> </tr> </table> </form> </body> </html>
Merci beaucoup pour votre aide !
A voir également:
- Erreur sur un envoi de formulaire via PHP
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Programmer l'envoi d'un sms - Guide
- Programmer l'envoi d'un mail gmail - Guide
3 réponses
salut. il te manque un tout petit bout de code :
en effet, la première fois que tu charges la page, la variable $_POST['action'] n'existe pas, d'où obligation de tester son existance avant d'effectuer un un test dessus.
et voiloù
if(isset($_POST['action'])) { if($_POST['action'] == 'submitted') ... }
en effet, la première fois que tu charges la page, la variable $_POST['action'] n'existe pas, d'où obligation de tester son existance avant d'effectuer un un test dessus.
et voiloù
Ca corrige deja le probleme de l'undefined index: action.
Cependant dans la barre de message de IE 6 en bas cela me met qu'il y'a une erreur sur la page et quand j'appuie sur le bouton envoyer il ne se passe strictement rien.
Petit conseil : fais tes tests côté serveur (donc en php) car si l'internaute désactive le javascript dans son navigateur il parviendra à envoyer tout de même le message (et cela même s'il y a une erreur !!!)
Sinon pour voir l'erreur javascript double-clique sur l'icône dans la barre de message.
et l'erreur javascript me dit :
Ligne : 71
Car : 1
Erreur : Objet attendu
Code : 0
URL : http://127.0.0.1/XXX/abonnement2.php
??