formulaire qui s'envoit a moi et a celui qui le remplis

tictactoc
Invité n'ayant pas de compte PHPfrance

01 déc. 2011, 04:51

bonjour c'est moi le tres tres nul débutant en php

j'aimerais savoir comment je pourrais faire pour que je recoive mon formulaire (et que celui qui le remplis aussi) en reprenant sont courriel

Tâches imposible pour moi j'ai pourtant bosser des heures mais rien ne fonctionne

avis au généreux répondant soyez svp tres précis dans vos explications merciiiiiii

VOICI mon code qui fonctionne a merveille sauf pour le retour du formulaire a la personne !!!

<?php

// On vérifie si la fonction ini_set() a été désactivée...
$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i", "$desactive") == 0) {
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs...
ini_set("error_reporting" , "E_ALL & ~E_NOTICE");
}

// Vérifier que le formulaire a été envoyé...
if (isset($_POST['envoi'])) {


//On commence une session pour enregistrer les variables du formulaire...

session_start();

$_SESSION['champ1'] = $_POST['champ1'];
$_SESSION['champ2'] = $_POST['champ2'];
$_SESSION['champ3'] = $_POST['champ3'];
$_SESSION['champ4'] = $_POST['champ4'];
$_SESSION['zone_email1'] = $_POST['zone_email1'];
$_SESSION['liste1'] = $_POST['liste1'];

// Définir l\'icone apparaissant en cas d\'erreur...


// Définir sur 0 pour afficher un petit x de couleur rouge.
// Définir sur 1 pour afficher l\'image d\'une croix rouge telle que celle utilisée dans l\'assistant
// Si vous utilisez l\'option 1, l\'image de la croix rouge \'icone.gif\' doit se trouver dans le répertoire \'images\',
// ce dernier devant se trouver au même niveau que votre formulaire...
$flag_icone = 0;

// On vérifie si $flag_icone est défini sur 0 ou 1...
if ($flag_icone == 0) {
$icone = "<b><font size=\"3\" face=\"Arial, Verdana, Helvetica, sans-serif\" color=\"#CC0000\">x</font></b>";
} else {
$icone = "<img src=\"images/icone.gif\"";
}

// Définir l'indicateur d'erreur sur zéro...
$flag_erreur = 0;
// N'envoyer le formulaire que s'il n'y a pas d'erreurs...
if ($flag_erreur == 0) {					

// Addresse de réception du formulaire
$email_dest = "[email protected]";
$sujet = "Inscription au souper-conférence";
$entetes ="MIME-Version: 1.0 \n";
	$entetes .="From: ASPE<[email protected]>\n";
	$entetes .="Return-Path: ASPE<[email protected]>\n";
	$entetes .="Reply-To: ASPE<[email protected]>\n";
	$entetes .="Content-Type: text/html; charset=iso-8859-1 \n";
	$partie_entete = "<html>\n<head>\n<title>Formulaire</title>\n<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>\n</head>\n<body bgcolor=#FFFFFF>\n";


//Partie HTML de l'e-mail...
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Nom = " . $_SESSION['champ1'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Prénom = " . $_SESSION['champ2'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Compagnie = " . $_SESSION['champ3'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Tél.: = " . $_SESSION['champ4'] . "</font><br>\n";
$partie_zone_email .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Courriel = " . $_SESSION['zone_email1'] . "</font><br>\n";
$partie_listes .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Inscription = " . $_SESSION['liste1'] . "</font><br>\n";
					

					// Fin du message HTML
					$fin = "</body></html>\n\n";
					
					$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_listes . $partie_boutons . $partie_cases . $partie_zone_texte . $fin;


					// Send the e-mail
					if (@!mail($email_dest,$sujet,$sortie,$entetes)) {
					echo("Envoi du formulaire impossible");
					exit();
					} else {

                    // Rediriger vers la page de remerciement
                    header("Location:souper.php");
                    exit();
                  } // Fin else
			    } // Fin du if ($flag_erreur == 0) {
			} // Fin de if POST
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script language="JavaScript">


function verifSelection() {


if (document.mail_form.champ1.value == "") {
alert("Remplissez toutes les sections")
return false
} 

if (document.mail_form.champ2.value == "") {
alert("Remplissez toutes les sections")
return false
} 

if (document.mail_form.champ4.value == "") {
alert("Remplissez toutes les sections")
return false
} 

if (document.mail_form.zone_email1.value == "") {
alert("Remplissez toutes les sections")
return false
}

invalidChars = " /:,;'"

for (i=0; i < invalidChars.length; i++) {	// does it contain any invalid characters?
badChar = invalidChars.charAt(i)

if (document.mail_form.zone_email1.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
document.mail_form.zone_email1.focus()
return false
}
}

atPos = document.mail_form.zone_email1.value.indexOf("@",1)			// there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

if (document.mail_form.zone_email1.value.indexOf("@",atPos+1) != -1) {	// and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

periodPos = document.mail_form.zone_email1.value.indexOf(".",atPos)

if (periodPos == -1) {					// and at least one "." after the "@"
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

if (periodPos+3 > document.mail_form.zone_email1.value.length)	{		// must be at least 2 characters after the 
alert('Il doit y avoir au moins deux caractèeres après le signe ".". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

} // Fin de la fonction
</script>



</head>

<body><form name="mail_form" method="post" action="<?=$_SERVER['PHP_SELF']?>" onSubmit="return verifSelection()">
  <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif, Tahoma"><strong>Formulaire
    de contact</strong></font></div><br><table align="center" width="566" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td height="16"><div align="center">
  <font color="#CC0000" size="2" face="Verdana, Arial, Helvetica, sans-serif, Tahoma"><strong><?php
if ($erreur_champ1) {
	  echo(stripslashes($erreur_champ1));
	  } else {
if ($erreur_champ2) {
	  echo(stripslashes($erreur_champ2));
	  } else {
if ($erreur_champ3) {
	  echo(stripslashes($erreur_champ3));
	  } else {
if ($erreur_champ4) {
	  echo(stripslashes($erreur_champ4));
	  } else {
if ($erreur_email1) {
	  echo(stripslashes($erreur_email1));
	  } else {
if ($erreur_liste1) {
	  echo(stripslashes($erreur_liste1));
	  } else {
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
?>
    </strong></font>
    </div></td>
      </tr>
    </table>
<p align="center"></p><table width="566" border="0" align="center"><tr>
      <td width="140"><div align="right"><font face="Verdana" size="2">Nom</font></div></td>
	  <td align="center" valign="middle" width="30">
      <?php
	  if ($erreur_champ1) {
	  echo($icone);
	  }
	  ?>
      </td>
      <td><input name="champ1" type="text" value="<?=stripslashes($_SESSION['champ1']);?>"></td>
    </tr></table><table width="566" border="0" align="center"><tr>
      <td width="140"><div align="right"><font face="Verdana" size="2">Prénom</font></div></td>
	  <td align="center" valign="middle" width="30">
      <?php
	  if ($erreur_champ2) {
	  echo($icone);
	  }
	  ?>
      </td>
      <td><input name="champ2" type="text" value="<?=stripslashes($_SESSION['champ2']);?>"></td>
    </tr></table><table width="566" border="0" align="center"><tr>
      <td width="140"><div align="right"><font face="Verdana" size="2">Compagnie</font></div></td>
	  <td align="center" valign="middle" width="30">
      <?php
	  if ($erreur_champ3) {
	  echo($icone);
	  }
	  ?>
      </td>
      <td><input name="champ3" type="text" value="<?=stripslashes($_SESSION['champ3']);?>"></td>
    </tr></table><table width="566" border="0" align="center"><tr>
      <td width="140"><div align="right"><font face="Verdana" size="2">Tél.:</font></div></td>
	  <td align="center" valign="middle" width="30">
      <?php
	  if ($erreur_champ4) {
	  echo($icone);
	  }
	  ?>
      </td>
      <td><input name="champ4" type="text" value="<?=stripslashes($_SESSION['champ4']);?>"></td>
    </tr></table><table width="566" border="0" align="center"><tr>
      <td width="140"><div align="right"><font face="Verdana" size="2">Courriel</font></div></td>
      <td width="30" align="center" valign="middle">
	  <?php
	  if ($erreur_email1) {
	  echo($icone);
	  }
	  ?>
	  </td>
      <td><input name="zone_email1" type="text" value="<?=stripslashes($_SESSION['zone_email1']);?>"></td>
    </tr></table><table width="566" border="0" align="center"><tr>
      <td width="140"><div align="right"><font face="Verdana" size="2">Inscription</font></div></td>
      <td width="30" align="center" valign="middle">
	  <?php
	  if ($erreur_liste1) {
	  echo($icone);
	  }
	  ?>
	  </td>
      <td><select name="liste1" style="width:146"><option value="">Sélectionner...</option>
<option value="souper01"<?php
if ($_SESSION['liste1'] == "souper01") {
echo(" selected");
}
?>>souper01</option>
<option value="souper02"<?php
if ($_SESSION['liste1'] == "souper02") {
echo(" selected");
}
?>>souper02</option>
<option value="souper03"<?php
if ($_SESSION['liste1'] == "souper03") {
echo(" selected");
}
?>>souper03</option>
<option value="souper04"<?php
if ($_SESSION['liste1'] == "souper04") {
echo(" selected");
}
?>>souper04</option>
<option value="souper05"<?php
if ($_SESSION['liste1'] == "souper05") {
echo(" selected");
}
?>>souper05</option>
<option value="souper06"<?php
if ($_SESSION['liste1'] == "souper06") {
echo(" selected");
}
?>>souper06</option>
<option value="souper07"<?php
if ($_SESSION['liste1'] == "souper07") {
echo(" selected");
}
?>>souper07</option>
<option value="souper08"<?php
if ($_SESSION['liste1'] == "souper08") {
echo(" selected");
}
?>>souper08</option>
<option value="souper09"<?php
if ($_SESSION['liste1'] == "souper09") {
echo(" selected");
}
?>>souper09</option>
<option value="souper11"<?php
if ($_SESSION['liste1'] == "souper11") {
echo(" selected");
}
?>>souper11</option>
<option value="souper12"<?php
if ($_SESSION['liste1'] == "souper12") {
echo(" selected");
}
?>>souper12</option>
<option value=""<?php
if ($_SESSION['liste1'] == "") {
echo(" selected");
}
?>></option>
</select></td></tr></table><table width="566" border="0" align="center"><tr>
<td valign="top"><div align="center"> 
          <input type="reset" name="Reset" value=" Effacer ">
            
          <input type="submit" name="envoi" value="Envoyer">
        </div></td></tr></table><div align="center"><input name="nbre_fichiers" type="hidden" id="nbre_fichiers" value=""></div></form>
</body>
</html>

ViPHP
ViPHP | 2577 Messages

01 déc. 2011, 09:46

Bonjour,

La première étape est de regarder si le mail n'arrive pas dans les spam (problème très fréquent)
La seconde étape est d'envoyer le mail sans entete et d'afficher les paramètres utilisés par la fonction mail() pour les vérifier visuellement.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

01 déc. 2011, 10:02

salut,

première chose pour debugguer : virer les @ devant les fonctions. en phase de conception on a besoin des messages d'erreurs pour avancer ;)

donc le coup du ini_set au debut même chose on vire il faut tout afficher et la l'error_reporting devrait être à E_ALL |E_STRICT (si tu a pas php4 vire le |E_STRICT).

ensuite utilise var_dump pour debugger, par exemple pour afficher le contenu de $_POST

Dans le même esprit met en commentaire les header et les exit() qui gène le debuggage.

ensuite il faut savoir que la fonction mail n'indique pas que le mail est reçu, mais que php l'a remis à celui qui l'envois (sendmail ou autre suivant la conf de php). Après les mails peuvent arriver dans les dossiers spam des boites aux lettres.


tu peux aussi te tourner vers des classes toutes faites comme phpmailer qui te simplifiera la vie ;)


@+
Il en faut peu pour être heureux ......