Erreur sur un envoi de formulaire via PHP
Résolu
byothe
Messages postés
53
Statut
Membre
-
bbar Messages postés 436 Statut Membre -
bbar Messages postés 436 Statut Membre -
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 compte désactivé - Guide
- Formulaire de reclamation instagram - Guide
- Programmer l'envoi d'un sms - Guide
- Envoi impossible messenger - Forum Facebook Messenger
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
??