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.
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>
6 réponses
Merci j'y avis pas pensé.
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é ;) .
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";
}
}
}
}
Voilà exactement ce qu'il fallait ;) .
Merci mec.