Erreur sur un envoi de formulaire via PHP
Résolu
byothe
Messages postés
45
Date d'inscription
vendredi 23 février 2007
Statut
Membre
Dernière intervention
24 novembre 2020
-
2 mars 2007 à 11:14
bbar Messages postés 436 Date d'inscription mercredi 27 septembre 2006 Statut Membre Dernière intervention 31 octobre 2008 -
bbar Messages postés 436 Date d'inscription mercredi 27 septembre 2006 Statut Membre Dernière intervention 31 octobre 2008 -
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
- Messenger envoi impossible - Forum Facebook Messenger
3 réponses
bbar
Messages postés
436
Date d'inscription
mercredi 27 septembre 2006
Statut
Membre
Dernière intervention
31 octobre 2008
140
2 mars 2007 à 13:01
2 mars 2007 à 13:01
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ù
bbar
Messages postés
436
Date d'inscription
mercredi 27 septembre 2006
Statut
Membre
Dernière intervention
31 octobre 2008
140
2 mars 2007 à 14:05
2 mars 2007 à 14:05
heu, désolé, mais j'ai ie6 aussi mais je n'ai pas d'erreur javascript renvoyée par le navigateur.
byothe
Messages postés
45
Date d'inscription
vendredi 23 février 2007
Statut
Membre
Dernière intervention
24 novembre 2020
27
2 mars 2007 à 14:23
2 mars 2007 à 14:23
Tu veux dire que ca marche pour toi ??
bbar
Messages postés
436
Date d'inscription
mercredi 27 septembre 2006
Statut
Membre
Dernière intervention
31 octobre 2008
140
2 mars 2007 à 23:05
2 mars 2007 à 23:05
toutes mes confuses !! il va falloir que je m'achète des yeux !
c'est ton bouton envoyer qui met la grouille : il faut que tu le déclare de type submit et sans action :
et là, ça va fonctionner.
c'est ton bouton envoyer qui met la grouille : il faut que tu le déclare de type submit et sans action :
<input type="submit" value="Envoyer" style="background:#A1BEFF font:1.2em ...etc
et là, ça va fonctionner.
2 mars 2007 à 13:23
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.
2 mars 2007 à 13:33
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.
2 mars 2007 à 13:47
et l'erreur javascript me dit :
Ligne : 71
Car : 1
Erreur : Objet attendu
Code : 0
URL : http://127.0.0.1/XXX/abonnement2.php
??