8792 sujets

Développement web côté serveur, CMS

[ thanks] Koala Smiley cligne [/thanks]

Bonjour à tous,

Pas de problème CSS aujourd'hui Smiley lol mais PHP oui Smiley rolleyes

J'ai installé 2 boutons radio sur mon formulaire, ci-dessous en gras.
Je récupère bien la valeur de la case à cocher (oui ou non) dans l'email que je reçois.

Par contre je n'arrive pas à rendre un choix obligatoire - pour l'instant si on sélectionne aucune des réponses, le mail part quand même.
Savez-vous comment le rendre obligatoire ? comme par exemple le champ nom qui est bien obligatoire ?


<?php
$nom = isset($_POST['nom'])?$_POST['nom']:'';
$prenom = isset($_POST['prenom'])?$_POST['prenom']:'';
$email = isset($_POST['email'])?$_POST['email']:'';
$ville = isset($_POST['ville'])?$_POST['ville']:'';
$cp = isset($_POST['cp'])?$_POST['cp']:'';
$mariage = isset($_POST['mariage'])?$_POST['mariage']:'';
$contenu = isset($_POST['contenu'])?$_POST['contenu']:'';
[b]$newsletter =isset($_POST['newsletter'])?$_POST['newsletter']:'';[/b]
$erreur1 = '<p class="alerte1">Veuillez indiquer votre nom'; 
$erreur2 = '<p class="alerte2">Veuillez indiquer votre prénom';
$erreur3 = '<p class="alerte3">Veuillez indiquer votre email';
$erreur4 = '<p class="alerte4">Veuillez indiquer votre ville';
$erreur5 = '<p class="alerte5">Veuillez indiquer votre code postal';

if(isset($_POST['action']) && !empty($nom)&&!empty($prenom)&&!empty($email)&&!empty($ville)&&!empty($cp)&&empty($newsletter))
{
    $destinataire = 'aa@bb.com';
    $titre= "test";
    $headers = 'From: '.$email.' <'.$email.'>'."\r\n";
    $message = "";
    $message .= "nom: ".$nom."\n";
    $message .= "prenom: ".$prenom."\n";
    $message .= "email: ".$email."\n";
    $message .= "ville: ".$ville."\n";
    $message .= "cp: ".$cp."\n";
    $message .= "mariage: ".$mariage."\n";
    $message .= "contenu: ".$contenu."\n";
    [b]$message .= "newsletter: ".$newsletter."\n";[/b]
    
    if(mail($destinataire,$titre,$message,$headers))
      echo "<script>window.location='confirmation.php'</script>";
}

?>
	   <div id="formulaire">
	   
<form method="post" action="/fr/pointsdevente/index.php">
  <p class="voscoordonnees">Vos coordonnées</p>
  <p><label for="nom">Votre nom *</label><input class="textfield" type="text" name="nom" id="nom" value="<?php echo $nom; ?>" title="Veuillez entrer votre nom" />
     <?php echo (isset($_POST['nom']) && empty($nom))?$erreur1:''; ?></p>
  <p><label for="prenom">Votre prénom *</label><input class="textfield" type="text" name="prenom" id="prenom" value="<?php echo $prenom; ?>" title="Veuillez entrer votre prénom" />
    <?php echo (isset($_POST['prenom'])&&empty($prenom))?$erreur2:''; ?></p>
  <p><label for="email">Votre e-mail *</label><input class="textfield" type="text" name="email" id="email" value="<?php echo $email; ?>" title="Veuillez entrer votre e-mail" />
    <?php echo (isset($_POST['email'])&&empty($email))?$erreur3:''; ?></p>
  <p><label for="ville">Votre ville *</label><input class="textfield" type="text" name="ville" id="ville" value="<?php echo $ville; ?>" title="Veuillez entrer votre ville" />
    <?php echo (isset($_POST['ville'])&&empty($ville))?$erreur4:''; ?></p>
  <p><label for="code postal">Votre code postal *</label><input class="textfield" type="text" name="cp" id="cp" value="<?php echo $cp; ?>" title="Veuillez entrer votre code postal" />
    <?php echo (isset($_POST['cp'])&&empty($cp))?$erreur5:''; ?></p>
  <p><label for="mariage">Date de votre mariage</label><input class="textfield" type="text" name="mariage" id="mariage"<?php echo $mariage; ?> title="Veuillez entrer la date de votre mariage"  /></p>
   <p class="votremessage">Votre message</p>
  <p><label for="message">A vous la parole</label><textarea name="contenu" cols="41" rows="4" id="contenu" title="Veuillez entrez ici votre message"><?php echo $contenu; ?></textarea></p>
  [b]<p>Newsletter
   <input type="radio" name="newsletter" value="oui"> oui
   <input type="radio" name="newsletter" value="non"> non<br></p>  [/b]
  <p id="envoyer">
    <input type="image" alt="Envoyer" src="images/submit.gif" />
    <input type="hidden" name="action" value="envoyer" />
  </p>
</form>

Modifié par pp51 (13 Mar 2007 - 23:10)
Modérateur
Salut, Smiley smile

comme ceci :

isset($_POST['newsletter']) && ($_POST['newsletter'] === 'oui' || $POST['newsletter'] === 'non') ?
   $_POST['newsletter'] : '';
Hello Koala Smiley ravi

J'ai remplacé la ligne
$newsletter =isset($_POST['newsletter'])?$_POST['newsletter']:'';


par ton code.

Mais ça ne change pas le problème. Je récupère bien la donnée, mais le fait de cocher une case n'est toujours pas obligatoire dans le formulaire lors de son envoi...

Php, c'est plus simple que Css ? J'en doute Smiley biggol
Modifié par pp51 (10 Mar 2007 - 19:46)
Modérateur
As-tu bien mis $newletter = devant ?

et si oui, remplace empty($newletter) par $newletter != '' dans ta longue condition.

pp51 a écrit :
Php, c'est plus simple que Css ? J'en doute Smiley biggol

Il y a moins d'exceptions en PHP. Smiley ravi
Modifié par koala64 (10 Mar 2007 - 19:54)
En fait, il me manquait le "!"... devant empty($newsletter):

if(isset($_POST['action']) && !empty($nom)&&!empty($prenom)&&!empty($email)&&!empty($ville)&&!empty($cp)&&[b]![/b]empty($newsletter))


quelle quiche Smiley lol

Dernière question avant de mettre un petit résolu, je n'arrive pas à faire apparaitre un message d'erreur si une case n'est pas coché...

J'avais pensé à ça:

<p><label for="newsletter">Newsletter</label><input type="radio" name="newsletter" value="oui"/> oui <?php echo (isset($_POST['newsletter']) &&empty($newsletter))?$erreur6:''; ?>
<input type="radio" name="newsletter" value="non"> non<br></p>


avec un

$erreur6 = '<p class="alerte6">Veuillez indiquer si vous souhaitez recevoir notre newsletter';  


Mais rien ne s'affiche. Une idée ?

Mamamia s'il me faut autant de temps pour comprendre php que css, j'ai une bonne année devant moi Smiley langue
Modifié par pp51 (10 Mar 2007 - 20:01)
Vu que tu appel la meme page je ferrai comme ça

<?php 
if ($erreur6)
echo $erreur6; 
?>


Une petite inclusion php dans ta partie html voilou
Pareil que ce que tu as fait precedement quoi.
Modifié par reise (10 Mar 2007 - 20:10)
Hello Reise,

Sais-tu pourquoi ma méthode ne fonctionne pas ?

pssst, je ne vois pas comment utiliser ta solution Smiley confused
je suppose que tu as testé


if (empty($newsletter))
echo $erreur6;


ou quelque chose du genre la je ne vois pas trop
Modifié par reise (10 Mar 2007 - 20:20)
Modérateur
Essaye de faire quelquechose comme ça Smiley cligne :

dans le php :

isset($_POST['nom']) && trim($_POST['nom']) != '' ?
   $nom = htmlspecialchars($_POST['nom']) :
   $Enom = '<p>Veuillez indiquer votre nom</p>';

isset($_POST['prenom']) && trim($_POST['prenom']) != '' ?
   $prenom = htmlspecialchars($_POST['prenom']) :
   $Eprenom = '<p>Veuillez indiquer votre prénom</p>';

// et ainsi de suite...

if(isset($nom) && isset($prenom) && ...)
{
   // on poste
}

et dans le html :

<div>
<label for="nom">Nom : </label><input type="text" name="nom" id="nom" />
<?php if(isset($Enom)) echo $Enom; ?>
</div>
<div>
<label for="prenom">Prénom : </label><input type="text" name="prenom" id="prenom" />
<?php if(isset($Eprenom)) echo $Eprenom; ?>
</div>
Salut Koala Smiley cligne

J'ai fais comme t'as dit Smiley langue , voir mon code ci-dessous.
Bon ça marche, le bouton radio est bien obligatoire, mais je n'arrive pas à mettre en message d'erreur si aucun choix n'est fait.

Hmmm...


<?php
isset($_POST['nom']) && trim($_POST['nom']) != '' ?
$nom = htmlspecialchars($_POST['nom']) :
$Enom = '<p>Veuillez indiquer votre nom</p>';

isset($_POST['prenom']) && trim($_POST['prenom']) != '' ?
$prenom = htmlspecialchars($_POST['prenom']) :
$Eprenom = '<p>Veuillez indiquer votre prénom</p>';

isset($_POST['email']) && trim($_POST['email']) != '' ?
$email = htmlspecialchars($_POST['email']) :
$Eemail = '<p>Veuillez indiquer votre email</p>';

isset($_POST['ville']) && trim($_POST['ville']) != '' ?
$ville = htmlspecialchars($_POST['ville']) :
$Eville = '<p>Veuillez indiquer votre ville</p>';

isset($_POST['cp']) && trim($_POST['cp']) != '' ?
$cp = htmlspecialchars($_POST['cp']) :
$Ecp = '<p>Veuillez indiquer votre code postal</p>';

isset($_POST['date_mariage']) && trim($_POST['date_mariage']) != '' ?
$date_mariage = htmlspecialchars($_POST['date_mariage']) :
$Edate_mariage = '<p>Veuillez indiquer votre date de mariage</p>';

isset($_POST['newsletter']) && trim($_POST['newsletter']) != '' ?
$newsletter = htmlspecialchars($_POST['newsletter']) :
$Enewsletter = '<p>Veuillez indiquer si vous souhaitez recevoir notre newsletter</p>';


if(isset($_POST['action']) && !empty($nom)&&!empty($prenom)&&!empty($email)&&!empty($ville)&&!empty($cp)&&!empty($newsletter))
{
   // on poste
}
?>


et mon html


<form method="post" action="/fr/pointsdevente/test.php">
  <p class="voscoordonnees">Vos coordonnées</p>
  <p><label for="nom">Votre nom *</label><input class="textfield" type="text" name="nom" id="nom" value="<?php echo $nom; ?>" title="Veuillez entrer votre nom" />
     <?php echo (isset($_POST['nom']) && empty($nom))?$Enom:''; ?></p>
  <p><label for="prenom">Votre prénom *</label><input class="textfield" type="text" name="prenom" id="prenom" value="<?php echo $prenom; ?>" title="Veuillez entrer votre prénom" />
    <?php echo (isset($_POST['prenom'])&&empty($prenom))?$Eprenom:''; ?></p>
  <p><label for="email">Votre e-mail *</label><input class="textfield" type="text" name="email" id="email" value="<?php echo $email; ?>" title="Veuillez entrer votre e-mail" />
    <?php echo (isset($_POST['email'])&&empty($email))?$Eemail:''; ?></p>
  <p><label for="ville">Votre ville *</label><input class="textfield" type="text" name="ville" id="ville" value="<?php echo $ville; ?>" title="Veuillez entrer votre ville" />
    <?php echo (isset($_POST['ville'])&&empty($ville))?$Eville:''; ?></p>
  <p><label for="code postal">Votre code postal *</label><input class="textfield" type="text" name="cp" id="cp" value="<?php echo $cp; ?>" title="Veuillez entrer votre code postal" />
    <?php echo (isset($_POST['cp'])&&empty($cp))?$Ecp:''; ?></p>
  <p><label for="mariage">Date de votre mariage</label><input class="textfield" type="text" name="mariage" id="mariage"<?php echo $mariage; ?> title="Veuillez entrer la date de votre mariage"  /></p>
   <p class="votremessage">Votre message</p>
  <p><label for="message">A vous la parole</label><textarea name="contenu" cols="41" rows="4" id="contenu" title="Veuillez entrez ici votre message"><?php echo $contenu; ?></textarea></p>
  <p><label for="newsletter">Newsletter</label><input type="radio" name="newsletter" value="oui" /> oui <?php echo (isset($_POST['newsletter'])&&empty($newsletter))?$Enewsletter:''; ?>
                                               <input type="radio" name="newsletter" value="non"> non<br></p>
     
  </p>
  
  <p id="envoyer">
    <input type="image" alt="Envoyer" src="images/submit.gif" />
    <input type="hidden" name="action" value="envoyer" />
  </p>
</form>
Modérateur
Il y a quelques erreurs dans ton code que ce soit en xhtml ou en php... Smiley cligne
- Plutôt que de mettre un paragraphe pour délimiter une section de ton formulaire, il faut se servir d'un fieldset.
- Pour les boutons radio, fallait conserver le premier test que je t'avais indiqué...
- La redirection finale, faut la faire en php, pas en js.
- Vu que c'est une newsletter, certains peuvent conserver les mails dans leur bdd auquel cas, il faut protéger l'envoi contre les injections SQL. Si les magic_quotes sont activées, ça se fait tout seul mais ce n'est pas forcémment le cas (c'est d'ailleurs amené à disparaître) donc tu dois prévenir les problèmes en le traitant toi-même si ce n'est pas actif.

Je corrige un peu tout ça dans cette page Smiley smile :
<?php
header('Content-type: text/html; charset=iso-8859-1');

// Protège contre l'injection sql
if(isset($_POST['action']) && !get_magic_quotes_gpc)
	foreach($_POST as $key => $value)
		if($key != 'action')
			$value = mysql_escape_string($value);

// Vérifie l'envoi
if(isset($_POST['action']))
{
	isset($_POST['nom']) && trim($_POST['nom']) != '' ?
		$nom = htmlspecialchars($_POST['nom']) :
		$Enom = '<p class="error">Veuillez indiquer votre nom</p>';

	isset($_POST['prenom']) && trim($_POST['prenom']) != '' ?
		$prenom = htmlspecialchars($_POST['prenom']) :
		$Eprenom = '<p class="error">Veuillez indiquer votre prénom</p>';

	isset($_POST['email']) && trim($_POST['email']) != '' ?
		$email = htmlspecialchars($_POST['email']) :
		$Eemail = '<p class="error">Veuillez indiquer votre email</p>';

	isset($_POST['ville']) && trim($_POST['ville']) != '' ?
		$ville = htmlspecialchars($_POST['ville']) :
		$Eville = '<p class="error">Veuillez indiquer votre ville</p>';

	isset($_POST['cp']) && trim($_POST['cp']) != '' ?
		$cp = htmlspecialchars($_POST['cp']) :
		$Ecp = '<p class="error">Veuillez indiquer votre code postal</p>';

	isset($_POST['date_mariage']) && trim($_POST['date_mariage']) != '' ?
		$date_mariage = htmlspecialchars($_POST['date_mariage']) :
		$Edate_mariage = '<p class="error">Veuillez indiquer votre date de mariage</p>';

	isset($_POST['newsletter']) && ($_POST['newsletter'] === 'oui' || $_POST['newsletter'] === 'non') ?
		$newsletter = htmlspecialchars($_POST['newsletter']) :
		$Enewsletter = '<p class="error">Veuillez indiquer si vous souhaitez recevoir notre newsletter</p>';
}

// Envoi le mail
if(isset($_POST['action']) && !empty($nom) && !empty($prenom) && !empty($email) && !empty($ville) && !empty($cp) && !empty($newsletter))
{
    $destinataire = 'aa@bb.com';
    $titre = "test";
    $headers = 'From: '.$email.' <'.$email.'>'."\r\n";
    $message = "";
    $message .= "nom: ".$nom."\n";
    $message .= "prenom: ".$prenom."\n";
    $message .= "email: ".$email."\n";
    $message .= "ville: ".$ville."\n";
    $message .= "cp: ".$cp."\n";
    $message .= "mariage: ".$mariage."\n";
    $message .= "contenu: ".$contenu."\n";
    $message .= "newsletter: ".$newsletter."\n";
    if(mail($destinataire,$titre,$message,$headers))
		header('Location: confirmation.php');
}
?><!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" xml:lang="fr" lang="fr">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
		<title>Base</title>
		<style type="text/css">/*<![CDATA[*/
		@media screen, projection {
			#formulaire { width: 764px; margin: 0 auto; text-align: center; }
			#formulaire * { text-align: left; }
			form { background-color: #ddd; padding-bottom: 2em; border: 3px solid #888; }
			form fieldset { margin: 5px 20px; }
			form div { margin: 5px 0; }
			#envoyer { float: right; margin-right: 20px; border: 1px solid #888; background-color: #fff; }
			.error { margin: 2px 0 10px; color: red; }
		}
		/*]]>*/</style>
	</head>
	<body>
		<div id="formulaire">
			<form method="post" action="<?php htmlspecialchars($PHP_SELF); ?>">
				<fieldset><legend>Vos coordonnées</legend>
					<div>
						<label for="nom">Votre nom *</label>
						<input class="textfield" type="text" name="nom" id="nom" value="<?php echo stripslashes($nom); ?>" title="Veuillez entrer votre nom" />
						<?php if(isset($Enom)) echo $Enom; ?>
					</div>
					<div>
						<label for="prenom">Votre prénom *</label>
						<input class="textfield" type="text" name="prenom" id="prenom" value="<?php echo stripslashes($prenom); ?>" title="Veuillez entrer votre prénom" />
						<?php if(isset($Eprenom)) echo $Eprenom; ?>
					</div>
					<div>
						<label for="email">Votre e-mail *</label>
						<input class="textfield" type="text" name="email" id="email" value="<?php echo stripslashes($email); ?>" title="Veuillez entrer votre e-mail" />
						<?php if(isset($Eemail)) echo $Eemail; ?>
					</div>
					<div>
						<label for="ville">Votre ville *</label>
						<input class="textfield" type="text" name="ville" id="ville" value="<?php echo stripslashes($ville); ?>" title="Veuillez entrer votre ville" />
						<?php if(isset($Eville)) echo $Eville; ?>
					</div>
					<div>
						<label for="code postal">Votre code postal *</label>
						<input class="textfield" type="text" name="cp" id="cp" value="<?php echo stripslashes($cp); ?>" title="Veuillez entrer votre code postal" />
						<?php if(isset($Ecp)) echo $Ecp; ?>
					</div>
					<div>
						<label for="mariage">Date de votre mariage</label>
						<input class="textfield" type="text" name="mariage" id="mariage" value="<?php echo stripslashes($mariage); ?>" title="Veuillez entrer la date de votre mariage"  />
						<?php if(isset($Edate_mariage)) echo $Edate_mariage; ?>
					</div>
				</fieldset>
				<fieldset><legend>Votre message</legend>
					<div>
						<label for="message">A vous la parole</label>
						<textarea name="contenu" cols="41" rows="4" id="contenu" title="Veuillez entrez ici votre message"><?php echo stripslashes($contenu); ?></textarea>
					</div>
					<div>
						<label for="newsletter">Newsletter</label>
						<input type="radio" name="newsletter" value="oui" /> oui 
						<input type="radio" name="newsletter" value="non"> non
						<?php if(isset($Enewsletter)) echo $Enewsletter; ?>
					</div>
				</fieldset>
				<div id="envoyer">
					<input type="image" alt="Envoyer" src="images/submit.gif" />
					<input type="hidden" name="action" value="envoyer" />
				</div>
			</form>
		</div>
	</body>
</html>

Modifié par koala64 (11 Mar 2007 - 13:28)
Bon je dois avouer que c'est du charabia pour moi, mais passons, si c'est mieux je te remercie ! Smiley murf Et puis comme je disais tout à l'heure, il me reste 1 an pour apprendre Smiley biggol

Le seul point noir maintenant est que je ne récupere plus les données du champ message.

J'ai vu également que tu avais rendu le champ "date de mariage" obligatoire. J'ai essayé de le rebasculer en facultatif, mais du coup, je ne récupère plus la donnée non plus Smiley eek

La bonne nouvelle est que j'ai maintenant le champ erreur si les boutons radio ne sont pas cochés !
Modifié par pp51 (11 Mar 2007 - 16:57)
Modérateur
arf.. bon, entre mes erreurs et les tiennes, on ne va pas s'en sortir... Smiley langue

Pour mon compte, je t'ai dis d'échapper les apostrophes/guillemets pour éviter l'injection SQL... Quelquepart, si le bonhomme qui reçoit le mail a choisi de le conserver dans sa db, c'est à lui de traiter le message et pas à toi... ce qui compte, c'est que t'envoie quelquechose de propre... donc je supprime cette protection.

Concernant tes erreurs, ça manque de rigueur. Smiley cligne Tu changes de nom de variable en cours de route ou bien tu oublies tout simplement de les traiter... Faut être un peu plus méticuleux pour y arriver. Smiley lol Une chose : l'attribut for de chaque label se rapporte à l'id du champ associé... donc c'est bien quand ils portent le même nom...

Du coup, je t'ai de nouveau refait le code (mauvaise habitude...) en ajoutant une protection anti-spam, en obligeant l'utilisateur à poster à partir du formulaire et non à partir d'un autre (via un identifiant -> token) ainsi qu'en m'arrangeant pour que le message soit affiché correctement (sans échappement si les magic_quotes sont activées)...

Je t'ai laissé des commentaires pour que tu le potasses... Smiley cligne
Je l'ai testé auparavant cette fois... Smiley langue

Il serait pas mal maintenant de procéder à la vérification des valeurs des champs... auquel cas, tu a le droit de faire un petit tour du côté des expressions régulières... Smiley ravi

<?php
header('Content-type: text/html; charset=iso-8859-1'); // on indique l'encodage de la page
session_start(); // On démarre la session

// S'il y a des données envoyées par le formulaire affiché
// dans la session courante et que son identifiant correspond
// à celui de la session
if(isset($_POST['token']) && $_POST['token'] === $_SESSION['token'])
{
	foreach($_POST as $key => $value) // Pour chaque élément envoyé
		if(preg_match('`^(.)*[\\\%](.)*$`', $value)) // Si un caractère interdit est trouvé
		{
			echo 'Les caractères \ et % sont interdits ! [cligne]';
			exit(); // On coupe court ! [smile] (empêche l'envoi de spam à partir du site)
		}

	$affich = array(); // On crée un tableau pour recevoir les données à afficher

	isset($_POST['nom']) && trim($_POST['nom']) != '' ? // Si un nom existe et s'il n'est pas nulle
		$affich['nom'] = htmlspecialchars($_POST['nom']) : // On supprime les caractères html
		$Enom = '<p class="error">Veuillez indiquer votre nom</p>'; // sinon on crée une erreur

	isset($_POST['prenom']) && trim($_POST['prenom']) != '' ?
		$affich['prenom'] = htmlspecialchars($_POST['prenom']) :
		$Eprenom = '<p class="error">Veuillez indiquer votre prénom</p>';

	isset($_POST['email']) && trim($_POST['email']) != '' ?
		$affich['email'] = htmlspecialchars($_POST['email']) :
		$Eemail = '<p class="error">Veuillez indiquer votre email</p>';

	isset($_POST['ville']) && trim($_POST['ville']) != '' ?
		$affich['ville'] = htmlspecialchars($_POST['ville']) :
		$Eville = '<p class="error">Veuillez indiquer votre ville</p>';

	isset($_POST['cp']) && trim($_POST['cp']) != '' ?
		$affich['cp'] = htmlspecialchars($_POST['cp']) :
		$Ecp = '<p class="error">Veuillez indiquer votre code postal</p>';

	if(isset($_POST['date_mariage']) && trim($_POST['date_mariage']) != '')
		$affich['date_mariage'] = htmlspecialchars($_POST['date_mariage']);

	if(isset($_POST['contenu']) && trim($_POST['contenu']) != '')
		$affich['contenu'] = htmlspecialchars($_POST['contenu']);

	isset($_POST['newsletter']) && // Si la valeur 'newsletter' existe et
	($_POST['newsletter'] === 'oui' || $_POST['newsletter'] === 'non') ? // Si la valeur est 'oui' ou 'non'
		$affich['newsletter'] = htmlspecialchars($_POST['newsletter']) :
		$Enewsletter = '<p class="error">Veuillez indiquer si vous souhaitez recevoir notre newsletter</p>';

	if(get_magic_quotes_gpc) // Si les magic_quotes sont activées
		foreach($affich as $key => $value) // Pour chaque élément du tableau $affich
			$affich[$key] = stripslashes($value); // On supprime les caractères d'échappement

	if(!empty($affich['nom']) && !empty($affich['prenom']) && !empty($affich['email']) &&
	!empty($affich['ville']) && !empty($affich['cp']) && !empty($affich['newsletter']))
	{
		$destinataire = 'aa@bb.com';
		$titre = 'test';
		$headers = 'From: ' . $affich['email'] . ' <' . $affich['email'] .'>'."\r\n";
		$message = '';
		$message .= 'nom: ' . $affich['nom'] . "\n";
		$message .= 'prenom: ' . $affich['prenom'] . "\n";
		$message .= 'email: ' . $affich['email'] . "\n";
		$message .= 'ville: ' . $affich['ville'] . "\n";
		$message .= 'cp: ' . $affich['cp'] . "\n";
		$message .= 'mariage: ' . $affich['mariage'] . "\n";
		$message .= 'contenu: ' . $affich['contenu'] . "\n";
		$message .= 'newsletter: ' . $affich['newsletter'] . "\n";
		
		if(mail($destinataire, $titre, $message, $headers))
			header('Location: confirmation.php');
	}
}
?><!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" xml:lang="fr" lang="fr">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
		<title>Base</title>
		<style type="text/css">/*<![CDATA[*/

			#formulaire { width: 764px; margin: 0 auto; text-align: center; }
			#formulaire * { text-align: left; }
			form { background-color: #ddd; padding-bottom: 2em; border: 3px solid #888; }
			form fieldset { margin: 5px 20px; }
			form div { margin: 5px 0; }
			#envoyer { float: right; margin-right: 20px; border: 1px solid #888; background-color: #fff; }
			.error { margin: 2px 0 10px; color: red; }
			td:hover { background-color: red; }

		/*]]>*/</style>
	</head>
	<body>
		<div id="formulaire">
			<form method="post" action="<?php htmlspecialchars($PHP_SELF); ?>">
				<fieldset><legend>Vos coordonnées</legend>
					<div>
						<label for="nom">Votre nom *</label>
						<input class="textfield" type="text" name="nom" id="nom"<?php

// Si un nom a été envoyé et qu'on réaffiche le formulaire
// on ajoute la valeur en enlevant les caractères d'échappement
if(isset($affich['nom']))
	echo ' value="', $affich['nom'], '"';

						?> title="Veuillez entrer votre nom" />
						<?php

// Si une erreur existe
// on l'affiche
if(isset($Enom))
	echo $Enom;

						?>
					</div>
					<div>
						<label for="prenom">Votre prénom *</label>
						<input class="textfield" type="text" name="prenom" id="prenom"<?php

if(isset($affich['prenom']))
	echo ' value="', $affich['prenom'], '"';

						?> title="Veuillez entrer votre prénom" />
						<?php

if(isset($Eprenom))
	echo $Eprenom;

						?>
					</div>
					<div>
						<label for="email">Votre e-mail *</label>
						<input class="textfield" type="text" name="email" id="email"<?php

if(isset($affich['email']))
	echo ' value="', $affich['email'], '"';

						?> title="Veuillez entrer votre e-mail" />
						<?php

if(isset($Eemail))
	echo $Eemail;

						?>
					</div>
					<div>
						<label for="ville">Votre ville *</label>
						<input class="textfield" type="text" name="ville" id="ville"<?php

if(isset($affich['ville']))
	echo ' value="' . $affich['ville'] . '"';

						?> title="Veuillez entrer votre ville" />
						<?php

if(isset($Eville))
	echo $Eville;

						?>
					</div>
					<div>
						<label for="cp">Votre code postal *</label>
						<input class="textfield" type="text" name="cp" id="cp"<?php

if(isset($affich['cp']))
	echo ' value="' . $affich['cp'] .'"';

						?> title="Veuillez entrer votre code postal" />
						<?php

if(isset($Ecp))
	echo $Ecp;

						?>
					</div>
					<div>
						<label for="date_mariage">Date de votre mariage</label>
						<input class="textfield" type="text" name="date_mariage" id="date_mariage"<?php

if(isset($affich['date_mariage']))
	echo ' value="' . $affich['date_mariage'] . '"';

						?> title="Veuillez entrer la date de votre mariage"  />
					</div>
				</fieldset>
				<fieldset><legend>Votre message</legend>
					<div>
						<label for="contenu">A vous la parole</label>
						<textarea name="contenu" cols="41" rows="4" id="contenu" title="Veuillez entrez ici votre message"><?php

echo $affich['contenu'];

							?></textarea>
					</div>
					<div>
						<label>Newsletter</label>
						<input type="radio" name="newsletter" value="oui"<?php

if(isset($newsletter) && $newsletter === 'oui')
	echo ' checked="checked"';

						?> /> oui 
						<input type="radio" name="newsletter" value="non"<?php

if(isset($newsletter) && $newsletter === 'non')
	echo ' checked="checked"';

						?> /> non
						<?php

if(isset($Enewsletter))
	echo $Enewsletter;

						?>
					</div>
				</fieldset>
				<div id="envoyer">
					<input type="image" alt="Envoyer" src="images/submit.gif" />
					<input type="hidden" name="action" value="envoyer" />
					<input type="hidden" name="token" value="<?php

$token = md5(uniqid(rand(), true)); // On crée un identifiant aléatoire
$_SESSION['token'] = $token; // On l'affecte à la session
echo $token; // et on l'affiche dans le formulaire

					?>" />
				</div>
			</form>
		</div>
	</body>
</html>

Modifié par koala64 (14 Mar 2007 - 06:15)