Notice: Undefined variable:

Résolu/Fermé
cyril - 26 déc. 2011 à 11:16
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 - 26 déc. 2011 à 13:52
Bonjour,
voici mon script qui pose problème :

avant le <head>

<?php

$email_dest = "monemail";

if ($_POST['envoi']) {

$message_remerciement = "Merci";

// E-mail headers:
$headers ="MIME-Version: 1.0 \n";
$headers .="From: weenypub \n";
$headers .="Content-Type: text/html; charset=utf-8 \n";

$subject = "Message de votre site";

$partie_entete = "<html><head>
<meta http-equiv=Content-Type content=text/html; charset=utf-8>
</head>
<body bgcolor=#FFFFFF>";

for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) {
$partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br>";
}

if ($_POST['nbre_zone_email'] != 0) {
$partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br>";
}

if ($_POST['nbre_zones_texte'] != 0) {
$partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br>";
$partie_zone_texte = stripslashes($partie_zone_texte);
}

$fin = "</body></html>";

$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin;

// Send the e-mail
if (@!mail($email_dest,$subject,$sortie,$headers)) {
echo("Envoi du formulaire impossible");
} // Closing if !mail...

} // Closing if edit
?>

dans le body mon formulaire :

<form action="<?=$PHP_SELF?>" method="post" id="mail_form" onsubmit="return verifSelection()">
<div align="center"></div>
<p align="center">
<?php
if ($message_remerciement) {
echo("<font face=Verdana size=2>");
echo(stripslashes($message_remerciement));
echo("</p></body></html>");
exit();
}
?>
</p>
<table width="566" border="0" align="center">
<p align="center"></p>
<tr>
<td><p>Nom</p></td>
<td><input name="champ1" type="text" /></td>
</tr>
<tr>
<td><p>Prénom</p></td>
<td><input name="champ2" type="text" /></td>
</tr>
<tr>
<td><p>E-mail</p></td>
<td><input name="zone_email" type="text" /></td>
</tr>
<tr>
<td valign="top"><p>Message</p></td>
<td><textarea name="zone_texte" cols="50" rows="10"></textarea></td>
</tr>
<tr>
<td valign="top"><input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="2" />
<input name="nbre_zones_texte" type="hidden" value="1" />
<input name="nbre_zone_email" type="hidden" value="1" />
<input name="titre_champ1" type="hidden" value="Nom" />
<input name="titre_champ2" type="hidden" value="Prénom" />
<input name="titre_email" type="hidden" value="E-mail" />
<input name="titre_zone" type="hidden" value="Message" /></td>
<td><div align="center">
<input name="Reset" type="reset" value="Effacer" />
<input name="envoi" type="submit" value="Envoyer" />
</div></td>
</tr>
</table>
<div align="center"></div>
</form>


Mon problème en haut du site :

Notice: Undefined index: envoi in C:\wamp\www\monsite\contact.php on line 5

et au dessus du formulaire :

Notice: Undefined variable: message_remerciement in C:\wamp\www\monsite\contact.php on line 137


merci d'avance




2 réponses

Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 144
26 déc. 2011 à 11:24
Salut,

Si tu pouvais montrer les lignes correspondantes...
1
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 144
26 déc. 2011 à 11:28
Essaie avec if(isset($_POST['envoi'])) { echo $_POST['envoi']; }
Tu verras si la variable est bien définie.
0
A la ligne 5 : if ($_POST['envoi']) {
A la ligne 137 : if ($message_remerciement) {

merci beaucoup
0
artcompus Messages postés 56 Date d'inscription mercredi 12 octobre 2011 Statut Membre Dernière intervention 14 septembre 2013 3
26 déc. 2011 à 11:25
vous avez déclarer et initialiser la variable message_remerciement dans un bloc IF, elle est donc une variable local, par la suite vous essayez de l'utiliser dans un autre bloc

mettre $message_remerciement = "Merci"; avant if ($_POST['envoi']) {
1
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 144
Modifié par Autumn`Tears le 26/12/2011 à 11:30
Erreur, il veut l'afficher que si le formulaire est rempli, là il sera toujours affiché.
Avec un if(isset($message_remerciement)), ça ne devrait plus poser de problème !
0
Je l'ai remonter avant cela m'affiche bien merci ?..
(compliquer pour moi je débute en php)
0
Erreur, il veut l'afficher que si le formulaire est rempli, là il sera toujours affiché.
Avec un if(isset($message_remerciement)), ça ne devrait plus poser de problème !

J'ai essayé cela fonctionne bien haut dessus du formulaire il n'y a plus le message d'erreur (merci) mais en haut du site toujours le même :
Notice: Undefined index: envoi in C:\wamp\www\site\contact.php on line 5..
0
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 144
26 déc. 2011 à 11:45
Essaie avec if(isset($_POST['envoi'])) { echo $_POST['envoi']; }
On dirait que ta variable ne passe pas...
0
cela m'affiche 6 erreurs :
Notice: Undefined index: nbre_champs_texte in C.. ..on line 21
Notice: Undefined index: nbre_zone_email in C.. on line 25
etc..
0