Bonjour,
Je viens à l'instant de recopier le script du formulaire de grafikart; il fonctionne à merveille. Seulement j'aimerais que l'utilisateur qui saisissse son nom avec la barre d'espace ne soit plus valide; je sais qu'il existe la fonction trim() pour celà mais elle ne marche pas. Merci d'avance pour votre aide.
<?php
$nom = trim($_POST'nom']);
$message = trim($_POST'message']);
if(!empty($_POST))
{
extract($_POST);
$valid=true;
if($adresse != ""){
}
else{
if (empty($nom))
{
$valid=false;
$erreurnom="Vous n'avez pas rempli votre nom";
}
if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,4}$/i",$email))
{
$valid=false;
$erreuremail = "Votre email n'est pas valide";
}
if (empty($email))
{
$valid=false;
$erreuremail="Vous n'avez pas saisi votre email";
}
if (empty($message))
{
$valid=false;
$erreurmessage="Vous n'avez pas saisi votre message";
}
if($valid)
{
$to = "jean-charles@hotmail.fr";
$sujet = $nom." a contacté le site";
$header = "From: $nom <$email>";
$message = stripslashes($message);
$nom = stripslashes($nom);
if(mail($to,$sujet,$message,$header))
{
$erreur = "Votre message nous est bien parvenu";
unset($nom);
unset($email);
unset($message);
}else
{
$erreur = "Une erreur est survenu et votre email n'est pas parti";
}
}
}
}
?><!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">
<title>Design internet</title>
<script type="text/javascript" language="Javascript" src="jquery.js"></script>
<script type="text/javascript">
$(function() {
$("#adresse").hide();
$("#envoyer").click(function(){
valid=true;
if($("#nom").val()==""){
$("#nom").css("border-color","#FF0000");
$("#nom").next(".error-message").text("Veuillez entrer votre nom");
valid=false;
}
else{
$("#nom").css("border-color","#00FF00");
$("#nom").next(".error-message").text("");
}
if($("#email").val()==""){
$("#email").css("border-color","#FF0000");
$("#email").next(".error-message").text("Veuillez entrer un email");
valid=false;
}
else{
if(!$("#email").val().match(/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,4}$/i))
{
$("#email").css("border-color","#FF0000");
$("#email").next(".error-message").text("Veuillez entrer un email valide");
valid=false;
}
else{
$("#email").css("border-color","#00FF00");
$("#email").next(".error-message").text("");
}
}
if($("#message").val()==""){
$("#message").css("border-color","#FF0000");
$("#message").next(".error-message").text("Veuillez entrer votre message");
valid=false;
}
else{
$("#message").css("border-color","#00FF00");
$("#message").next(".error-message").text("");
}
return valid;
});
});
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<link rel="stylesheet" media="screen" href="css/style.css" type="text/css" title="Design" />
</head>
<body>
<div id="contenu">
<h1>Contactez-nous</h1>
<h2>N'hésitez pas à nous contacter</h2>
<hr/>
<?php
if(isset($erreur)){ echo "<p>$erreur</p>"; }
?>
<form method="post" action="index.php">
<label for="nom"><strong>Nom :</strong></label>
<input type="text" name="nom" id="nom" value="<?php if(isset($nom)) echo $nom; ?>"/>
<span class="error-message"><?php if(isset($erreurnom)) echo $erreurnom; ?></span><br />
<input type="text" name="adresse" id="adresse"/>
<label for="email"><strong>Email :</strong></label>
<input type="text" name="email" id="email" value="<?php if(isset($email)) echo $email; ?>"/>
<span class="error-message"><?php if(isset($erreuremail)) echo $erreuremail; ?></span><br />
<label for="message"><strong>Votre message :</strong></label>
<textarea name="message" id="message"><?php if(isset($message)) echo $message; ?></textarea>
<span class="error-message"><?php if(isset($erreurmessage)) echo $erreurmessage; ?></span><br />
<input type="submit" value="Envoyer" id="envoyer"/>
</form>
</div>
<div id="pied_de_page">
<p>Code et Design par Devillers. 2012.<br />
N'hésitez pas à <a href="exemple.php">me contacter</a>
</p>
</div>
<script src="jquery.js"></script>
<script src="cycle.js"></script>
<script src="func.js"></script>
</body>
</html>
Tu fais une expression régulière qui autorises les caractères que tu veux admettons, alphanumériques et dedans tu n'y inclus pas les espaces avec un preg_match tu vérifies que ce qui a été rentré correspond bien à l'expression régulière si c'est pas le cas tu renvoies une erreur pour dire que le format n'est pas adapté ;) .
Tu peux utiliser une expression régulière pour interdire les espaces où remplacer les espaces par des tirets par exemple avec un str_replace.
Voilà ce que j'ai pu faire. Merci.
<?php
if(!empty($_POST))
{
extract($_POST);
$valid=true;
if($adresse != ""){
}
else{
$nom = trim($nom);
if (empty($nom))
{
$valid=false;
$erreurnom="Vous n'avez pas rempli votre nom";
}
if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,4}$/i",$email))
{
$valid=false;
$erreuremail = "Votre email n'est pas valide";
}
if (empty($email))
{
$valid=false;
$erreuremail="Vous n'avez pas saisi votre email";
}
//$message = trim($message);
//if (empty($message))
//{
//$valid=false;
//$erreurmessage="Vous n'avez pas saisi votre message";
//}
if(!preg_match("#[A-Za-z0-9\-_.^èçéà&ù%:;,!?/@'¨]#",$message))
{
$valid=false;
$erreurmessage = "Votre message n'est pas valide";
}
if($valid)
{
$to = "jean@hotmail.fr";
$sujet = $nom." a contacté le site";
$header = "From: $nom <$email>";
$message = stripslashes($message);
$nom = stripslashes($nom);
if(mail($to,$sujet,$message,$header))
{
$erreur = "Votre message nous est bien parvenu";
unset($nom);
unset($email);
unset($message);
}else
{
$erreur = "Une erreur est survenu et votre email n'est pas parti";
}
}
}
}