8719 sujets

Développement web côté serveur, CMS

Bonjour tous le monde Smiley coucou ,

J'ai réussi à mettre en place le déroulement de l'envoi d'un mail, mais je veux sécuriser un minimum les champs. (envoi et réception en fonction)
Le champ e-mail est ma préoccupation actuellement, je ne sais pas où intégrer le " preg_match "
plus encore, je ne sais pas comment faire.

Voici ce que j'ai fait pour l'instant :



<?php
	/***********
	VERIF DU NOM
	***********/
	
	if( $_POST['name'] == "")
		{
			echo '<div class="error">Vous devez remplir votre nom</div>';
			exit();
		}
		
		else if( strlen($_POST['name']) < 2 )
		{
			echo '<div class="error">Votre nom n\'est pas valide</div>';
			exit();
		}
				
		
		
	/***********
	VERIF DU MAIL
	***********/

	if( $_POST['your-email'] == "")
		
		{
			echo '<div class="error">Vous devez remplir votre email</div>';
			exit();
		}
	else if( !filter_var($_POST['your-email'], FILTER_VALIDATE_EMAIL) )

		{
				echo '<div class="error">Vous adresse mail n\'est pas valide</div>';
				exit();
		}
	
	
	/******************
	VERIF DU MESSAGE
	******************/

	if( $_POST['message'] == "")
		{
			echo '<div class="error">Votre message ne peut pas être vide</div>';
			exit();
		}
	else if( strlen($_POST['message']) < 10 )
		{
				echo '<div class="error">Votre message est trop court</div>';
				exit();
		}
	
	/***************** 
	ENVOI DU MESSAGE 
	******************/

	
	$msg = "<html><head><meta name=\"keywords\" content=\"X-SWL:  www.xxx.com\"></head>";
 
	$msg .= "<body>De la part de <strong>$name</strong><br />";
	$msg .= "".$message."&nbsp;</body></html>";
	$subject .="Mon Folio";
	$recipient = "*********@gmail.com";
	
	$frontiere = '-----=' . md5(uniqid(mt_rand()));
	
	$mailheaders = "MIME-Version: 1.0\n";
	$mailheaders .= "Content-type: text/html; charset=iso-8859-1\r\n";
	$mailheaders .= "From: $name<$your-email>\r\n";
	$mailheaders .= "Cc: $Sender\r\n";
	$mailheaders .= "Reply-To: $your-email\r\n";
	$mailheaders .= 'Content-Type: multipart/mixed; boundary="'.$frontiere.'"';
	mail($recipient, $subject, $msg, $mailheaders);
	
	echo '<div class="success"><h1>Email envoyé</h1><p>Merci '. $_POST['name'] . ' pour votre message</p></div>';

?>



Si il y a des choses qui n'ont rien à faire là, n'hésitez pas Smiley cligne
En attente d'une réponse, je vous remercie d'avance.
Modifié par gentle973 (29 May 2014 - 17:34)
Pourquoi vouloir rajouter un preg_match à une fonction filter_vars qui travaille sur le même principe, en plus rapide et avec des regex beaucoup plus complexe ?