probleme envoi et recuperation de donnees en php
Posté : 18 nov. 2007, 17:13
bonjour à tous...
j'ai commence le php il y a peu...sur un des sites sur lesquels je travaille, je dois faire des formulaires, les valider et recuperer les donnees ds l'email...j'ai trouve le code de Cyrano sur le forum...j'ai reussi à l'adapter mais je n'arrive pas à envoyer les donnes par mail...pourriez vous m'eclairer?
voici le code de ma page
j'ai commence le php il y a peu...sur un des sites sur lesquels je travaille, je dois faire des formulaires, les valider et recuperer les donnees ds l'email...j'ai trouve le code de Cyrano sur le forum...j'ai reussi à l'adapter mais je n'arrive pas à envoyer les donnes par mail...pourriez vous m'eclairer?
voici le code de ma page
<?
/**
* Comme il s'agit de XHTML, encadrement de la balise xml pour un affichage
* normal sans message d'erreur de PHP
*/
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Asbl Enfants de la paix - Formulaire Chantier</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<LINK REL="stylesheet" HREF="../css/formu.css" TYPE="TEXT/CSS">
</head>
<body>
<div align="center">
<?php
// Fonction qui sera utilisée pour le traitement des cases à cocher:
/*function test($choix)
{
$retour = false;
$nb_msk = (isset($musik)) ? count($musik) : 0;
for ($i = 0; $i < $nb_msk; $i++)
{
if($choix == $musik[$i])
{
$retour = true;
}
}
return $retour;
}
*\
/**
* On commence par vérifier si le bouton soumettant le formulaire a été
* cliqué, "envoi" étant l'attribut "name" du bouton "submit"
* Sinon, on saute à la ligne 255 de ce code.
*/
if(isset($_POST['envoi']))
{
/* Récupération des données du formulaire */
$prenom = isset($_POST['prenom']) ? trim($_POST['prenom']) : "";
$nom = isset($_POST['nom']) ? trim($_POST['nom']) : "";
$rue = isset($_POST['rue']) ? trim($_POST['rue']) : "";
$codepostal = isset($_POST['code postal']) ? trim($_POST['code postal']) : "";
$localite = isset($_POST['localite']) ? trim($_POST['localite']) : "";
$telephone = isset($_POST['telephone']) ? trim($_POST['telephone']) : "";
$fax = isset($_POST['fax']) ? trim($_POST['fax']) : "";
$email = isset($_POST['email']) ? trim($_POST['email']) : "";
$date = isset($_POST['date']) ? trim($_POST['date']) : "";
$nat = isset($_POST['nat']) ? $_POST['nat'] : "";
$etatcivil = isset($_POST['etatcivil']) ? trim($_POST['etatcivil']): "";
$etude = isset($_POST['etude']) ? trim($_POST['etude']) : "";
$prof = isset($_POST['prof']) ? $_POST['prof'] : "";
$voyage = isset($_POST['voyage']) ? $_POST['voyage'] : "";
$mouvementdejeunesse = isset($_POST['mouvementdejeunesse']) ? $_POST['mouvementdejeunesse'] : "";
$mvtjeun = isset($_POST['mvtjeun']) ? $_POST['mvtjeun'] : "";
$anneemvtjeun = isset($_POST['anneemvtjeun']) ? $_POST['anneemvtjeun'] : "";
$hobby = isset($_POST['hobby']) ? $_POST['hobby'] : "";
$motiv = isset($_POST['motiv']) ? $_POST['motiv'] : "";
/**
* Définition des variables servant au traitement de l'adresse électronique et du numéro de
* téléphone: on utilise ici des expressions régulières.
*/
$valid = "#^[^-_\.][a-z0-9-_\.]+[^-_\.]@[^-_\.][a-z0-9-_\.]+[^-_\.]\.[a-z]{2,4}$#";
$phone = "#^\d{6,10}$#";
/**
* Traitement de vérification des champs vides ou invalides (téléphone et/ou email et/ou url)
* Conditions de mauvaises réponses (champ vide par exemple)
*/
if ($prenom == '' || $nom == '' || $email == '' || $telephone == '' || !(preg_match($phone,$telephone)) || $email == '' || !(preg_match($valid, $email)))
{
/* Action à adopter */
?>
<h3>Informations incomplètes</h3>
Un (ou plusieurs) champ(s) obligatoire(s) n'a(ont) pas été correctement rempli(s).
<?php
if ($prenom == '')
{
/* Si le champ "prénom" est vide, */
print "<p>Vous n'avez pas précisé votre prénom</p>\n";
}
if ($nom == '')
{
/* Si le champ "nom" est vide, */
print "<p>Vous n'avez pas précisé votre nom</p>\n";
}
if ($rue == '')
{
/* Si le champ "rue" est vide, */
print "<p>Vous n'avez pas précisé votre adresse</p>\n";
}
if ($codepostal == '')
{
/* Si le champ "codepostal" est vide, */
print "<p>Vous n'avez pas précisé votre code postal</p>\n";
}
if ($localite == '')
{
/* Si le champ "localite" est vide, */
print "<p>Vous n'avez pas précisé votre localité</p>\n";
}
if ($motiv == '')
{
/* Si le champ "motiv" est vide, */
print "<p>Vous n'avez pas précisé vos motivations</p>\n";
}
if ($telephone == '')
{
/* Si le champ "téléphone" est vide, */
print "<p>Vous n'avez pas précisé votre numéro de téléphone</p>\n";
}
if (($telephone) && !(preg_match($phone,$telephone)))
{
print "<p>Le numéro de téléphone doit comporter seulement des chiffres, de 6 à 10 chiffres sans espaces ni tirets</p>\n";
}
if(!$email)
{
/* Si le champ "adresse électronique" est vide, */
print "<p>Vous avez omis de mentionner une adresse électronique !</p>\n";
}
if(($email) && !(preg_match($valid, $email))) /* Si il y a une adresse inscrite mais invalide */
{
/* On vérifie LES DEUX conditions réunies (avec le sugne "&&"): si on ne vérifie que la validité, en ne
mettant pas d'adresse dans le formulaire, on obtient l'affichage des deux messages, or l'adresse à
ce moment là n'est pas invalide, elle est absente: le message d'invalidité ne s'applique donc pas. */
print "<p>L'adresse électronique saisie est invalide.</p>\n";
}
/**
* Si les vérifications ont généré des erreurs, affichage du formulaire
* contenant les données déjà saisies.
*/
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<table width="600" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#000066">
<tr>
<td >
<table width="100%" border="0" cellpadding="5" cellspacing="0" bgcolor="#F69931">
<tr bgcolor="#B40607" class="txtgn2">
<td colspan="2"><strong>Chantier SOLIDARITE JUILLET 2008 - Formulaire d'inscription</strong></td>
</tr>
<tr class="txtgn2">
<td width="30%">Nom : </td>
<td width="70%">*<input name="nom" type="text" id="nom" size="20" value="<?php echo $nom ?>"> Prénom : *<input name="prenom" type="text" id="prenom" size="10" value="<?php echo $prenom ?>"></td>
</tr>
<tr class="txtgn2">
<td>Adresse : </td>
<td>*<input name="rue" type="text" id="rue" size="55" value="<?php echo $rue ?>"></td>
</tr>
<tr class="txtgn2">
<td>Code postal : </td>
<td>*<input name="code postal" type="text" id="cp" size="10" value="<?php echo $codepostal ?>">
Localité :
*<input name="localite" type="text" id="localite" size="30" value="<?php echo $localite ?>"></td>
</tr>
<tr class="txtgn2">
<td>Téléphone : </td>
<td>*<input name="telephone" type="text" id="tel" size="20" value="<?php echo $telephone ?>"> Fax : <input name="fax" type="text" id="fax" size="24" value="<?php echo $fax ?>"></td>
</tr>
<tr class="txtgn2">
<td>E-mail : </td>
<td>*<input name="email" type="text" id="email" size="55" value="<?php echo $email ?>"></td>
</tr>
<tr class="txtgn2">
<td>Date de naissance : </td>
<td><input name="date" type="text" id="date" size="10" value="<?php echo $date ?>"> Nationalité : <input name="nat" type="text" id="nat" size="27" value="<?php echo $nat ?>"></td>
</tr>
<tr class="txtgn2">
<td>Etat Civil : </td>
<td><input name="etatcivil" type="text" id="etatcivil" size="55" value="<?php echo $etatcivil ?>"></td>
</tr>
<tr class="txtgn2">
<td>Etudes : </td>
<td><input name="etude" type="text" id="etude" size="55" value="<?php echo $etude ?>"></td>
</tr>
<tr class="txtgn2">
<td>Profession : </td>
<td><input name="prof" type="text" id="email" size="55" value="<?php echo $prof ?>"></td>
</tr>
<tr class="txtgn2">
<td>Voyage déjà effectué : </td>
<td><input name="voyage" type="text" id="voyage" size="30" value="<?php echo $voyage ?>"> Année: <input name="anneevoy" id="anneevoy" size="12" value="<?php echo $anneevoyage ?>"></td>
</tr>
<tr class="txtgn2">
<td> </td>
<td><input name="voyage" type="text" id="voyage" size="30" value="<?php echo $voyage ?>"> Année: <input name="anneevoy" id="anneevoy" size="12" value="<?php echo $anneevoyage ?>"></td>
</tr>
<tr class="txtgn2">
<td> </td>
<td><input name="voyage" type="text" id="voyage" size="30" value="<?php echo $voyage ?>"> Année: <input name="anneevoy" id="anneevoy" size="12" value="<?php echo $anneevoyage ?>"></td>
</tr>
<tr class="txtgn2">
<td> </td>
<td><input name="voyage" type="text" id="voyage" size="30" value="<?php echo $voyage ?>"> Année: <input name="anneevoy" id="anneevoy" size="12" value="<?php echo $anneevoyage ?>"></td>
</tr>
<tr class="txtgn2">
<td>As-tu fait partie d’un mouvement de jeunesse ?</td>
<td><input type="radio" name="mouvementdejeunesse" value="oui"<?php echo(($mouvementdejeunesse=="oui") ? " checked=\"checked\"": null); ?>>Oui
<input type="radio" name="mouvementdejeunesse" value="non"<?php echo(($mouvementdejeunesse=="non") ? " checked=\"checked\"": null); ?>>Non</td>
</tr>
<tr class="txtgn2">
<td>Lequel?</td>
<td><input name="mvtjeun" type="text" id="voyage" size="20" value="<?php echo $mvtjeun ?>"> de <input name="anneemvtjeun" id="anneemvtjeun" size="10" value="<?php echo $anneemvtjeun ?>">
à <input name="anneemvtjeun" id="anneemvtjeun" size="10"></td>
</tr>
<tr class="txtgn2">
<td>As-tu un hobby particulier ?</td>
<td><input name="hobby" type="text" id="hobby" size="20" value="<?php echo $mvtjeun ?>"></td>
</tr>
<tr class="txtgn2">
<td>Quelles sont tes motivations à participer à ce chantier ?</td>
<td>*<textarea cols="41" rows="5" name="motiv"><?php echo $motiv ?></textarea></td>
</tr>
<tr align="center" class="txtgn2">
<td align="center" colspan="2"> <input type="submit" class="verif" name="envoi" value="Envoyer" />
<input type="reset" class="verif" value="Recommencer" />
</td>
</tr>
<tr align="left"><td colspan="2">Les champs obligatoires sont précédés d'une étoile (*).</td></tr>
</table>
</td>
</tr>
</table>
</form><?php
}
else
{
/**
* Si aucun des champs obligatoire n'est vide et les données sont valides:
* Traitement des données : ce sujet n'est pas abordé ici, on ne voit que la validation.
* Néanmoins, l'affichage des données recueillies est un traitement en soi.
* Libre à chacun d'adapter pour faire un autre type de traitement.
*/
$href_email = str_replace("@", "%40", $email);
// Affichage du message final des informations reçues
print "<h3>Merci ! Voici les informations que vous avez fournies</h3>\n";
print "<p>Informations sur le contact:</p>\n";
print "<p>". $prenom ." ". $nom ."<br />\n";
print "On peut vous joindre au ".$telephone."<br />\n";
if($localite != "")
{
print "Vous résidez à ".$localite."<br />\n";
}
print "On peut vous envoyer un courrier électronique à: <a href=\"mailto:". $prenom ."%20". $nom ."%20%3c". $href_email ."%3e\">".$email."</a><br />\n";
if ($motiv) // Si du texte a été saisi dans la boite textarea:
{
print "<p>Vos motivations: </p>\n"; // Affichage du texte saisi dans la boite textarea après traitement de mise en page.
print "<p class=\"block\">".nl2br(stripslashes($motiv))."</p>\n";
}
else /* Si aucun texte n'a été saisi, alors affichage d'un message alternatif. */
{
print "<p>Vous n'avez mentionné aucune information supplémentaire.</p>\n";
}
print("<p>Retour vers le formulaire de base, cliquez <a href=\"". $_SERVER['PHP_SELF'] ."\" title=\"Retour vers le formulaire\">ICI</a></p>");
}
}
/**
* Si cette page s'ouvre pour la première fois sans que le bouton soumettant le formulaire n'ait
* été cliqué, alors on affiche le formulaire normalement
*/
else
{
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<table width="600" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#000066">
<tr>
<td >
<table width="100%" border="0" cellpadding="5" cellspacing="0" bgcolor="#F69931">
<tr bgcolor="#B40607" class="txtgn2">
<td colspan="2"><strong>Chantier SOLIDARITE JUILLET 2008 - Formulaire d'inscription</strong></td>
</tr>
<tr class="txtgn2">
<td width="30%">Nom : </td>
<td width="70%">*<input name="nom" type="text" id="nom" size="20" value=""> Prénom : *<input name="prenom" type="text" id="prenom" size="10" value=""></td>
</tr>
<tr class="txtgn2">
<td>Adresse : </td>
<td>*<input name="rue" type="text" id="rue" size="55" value=""></td>
</tr>
<tr class="txtgn2">
<td>Code postal : </td>
<td>*<input name="code postal" type="text" id="cp" size="10" value="">
Localité :
*<input name="localite" type="text" id="localite" size="30" value=""></td>
</tr>
<tr class="txtgn2">
<td>Téléphone : </td>
<td>*<input name="telephone" type="text" id="tel" size="20" value=""> Fax : <input name="fax" type="text" id="fax" size="24" value=""></td>
</tr>
<tr class="txtgn2">
<td>E-mail : </td>
<td>*<input name="email" type="text" id="email" size="55" value=""></td>
</tr>
<tr class="txtgn2">
<td>Date de naissance : </td>
<td><input name="date" type="text" id="date" size="10" value=""> Nationalité : <input name="nat" type="text" id="nat" size="27" value=""></td>
</tr>
<tr class="txtgn2">
<td>Etat Civil : </td>
<td><input name="etatcivil" type="text" id="etatcivil" size="55" value=""></td>
</tr>
<tr class="txtgn2">
<td>Etudes : </td>
<td><input name="etude" type="text" id="etude" size="55" value=""></td>
</tr>
<tr class="txtgn2">
<td>Profession : </td>
<td><input name="prof" type="text" id="email" size="55" value=""></td>
</tr>
<tr class="txtgn2">
<td>Voyage déjà effectué : </td>
<td><input name="voyage" type="text" id="voyage" size="30" value=""> Année: <input name="anneevoy" id="anneevoy" size="12" value=""></td>
</tr>
<tr class="txtgn2">
<td> </td>
<td><input name="voyage" type="text" id="voyage" size="30" value=""> Année: <input name="anneevoy" id="anneevoy" size="12" value=""></td>
</tr>
<tr class="txtgn2">
<td> </td>
<td><input name="voyage" type="text" id="voyage" size="30" value=""> Année: <input name="anneevoy" id="anneevoy" size="12" value=""></td>
</tr>
<tr class="txtgn2">
<td> </td>
<td><input name="voyage" type="text" id="voyage" size="30" value=""> Année: <input name="anneevoy" id="anneevoy" size="12" value=""></td>
</tr>
<tr class="txtgn2">
<td>As-tu fait partie d’un mouvement de jeunesse ?</td>
<td><input type="radio" name="mouvementdejeunesse" value="oui">Oui
<input type="radio" name="mouvementdejeunesse" value="non">Non</td>
</tr>
<tr class="txtgn2">
<td>Lequel?</td>
<td><input name="mvtjeun" type="text" id="voyage" size="20" value=""> de <input name="anneemvtjeun" id="anneemvtjeun" size="10" value="">
à <input name="anneemvtjeun" id="anneemvtjeun" size="10"></td>
</tr>
<tr class="txtgn2">
<td>As-tu un hobby particulier ?</td>
<td><input name="hobby" type="text" id="hobby" size="20" value=""></td>
</tr>
<tr class="txtgn2">
<td>Quelles sont tes motivations à participer à ce chantier ?</td>
<td>*<textarea cols="41" rows="5" name="motiv"> </textarea></td>
</tr>
<tr align="center" class="txtgn2">
<td align="center" colspan="2"> <input type="submit" class="verif" name="envoi" value="Envoyer" />
<input type="reset" class="verif" value="Recommencer" />
</td>
</tr>
<tr align="left"><td colspan="2">Les champs obligatoires sont précédés d'une étoile (*).</td></tr>
</table>
</td>
</tr>
</table>
</form>
<?php
}
?>
<br /></div>
<div align="center">
<form method="post"><input type="button" name="B1" value="Fermer la fenêtre" onClick="window.close()">
</form></div>
</body>
</html>