Bonjour et merci xTG de vous intéresser à mon problème
Ou devrais-je insérer la ligne
var_dump($alert);
Mais en effet, quand je regarde le source de ma page une fois que le message a été envoyé, j'ai bien un espace dans le <p>
Code : Tout sélectionner
<p style="color:#a69a91; background-color:#660000;...."> </p>
mais je ne vois pas d’où vient cet espace...
Je ne sais pas si ça peut venir de là, mais cette $alert doit servir à différents message : Email non valide, champs vide, Message envoyé...
J'ai vérifié tout mon code, je ne vois pas ou il pourrait y avoir un espace...
Voici ma page contact.php :
<?php
/* Si le formulaire est envoyé alors on fait les traitements */
if (isset($_POST['envoye']))
{
/* Récupération des valeurs des champs du formulaire */
if (get_magic_quotes_gpc())
{
$nom = stripslashes(trim($_POST['nom']));
$expediteur = stripslashes(trim($_POST['email']));
$message = stripslashes(trim($_POST['message']));
}
else
{
$sujet = "Demande de contact depuis mon site";
$nom = trim($_POST['nom']);
$expediteur = trim($_POST['email']);
$message = trim($_POST['message']);
$message = utf8_decode($message);
}
/* Expression régulière permettant de vérifier si le
* format d'une adresse e-mail est correct */
$regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
/* Expression régulière permettant de vérifier qu'aucun
* en-tête n'est inséré dans les champs */
$regex_head = '/[\n\r]/';
/* Si le formulaire n'est pas posté de notre site on renvoie
* vers la page d'accueil */
if($_SERVER['HTTP_REFERER'] != 'http://www.monsite.com/contact.php')
{
header('Location: http://www.monsite.com');
}
/* On vérifie que tous les champs sont remplis */
elseif (empty($nom)
|| empty($expediteur)
|| empty($message))
{
$alert = 'Tous les champs doivent étre renseignés';
}
/* On vérifie que le format de l'e-mail est correct */
elseif (!preg_match($regex_mail, $expediteur))
{
$alert = 'L\'adresse email : '.$expediteur.' n\'est pas valide';
}
/* On vérifie qu'il n'y a aucun header dans les champs */
elseif (preg_match($regex_head, $expediteur)
|| preg_match($regex_head, $nom)
|| preg_match($regex_head, $sujet))
{
$alert = 'En-têtes interdites dans les champs du formulaire';
}
/* Si aucun problème et aucun cookie créé, on construit le message et on envoie l'e-mail */
elseif (!isset($_COOKIE['sent']))
{
/* Destinataire (votre adresse e-mail) */
$to = '[email protected]';
/* Construction du message */
$msg = ''."\r";
$msg .= 'Ce mail a été envoyé depuis http://www.wambaugh.us par :'."\r\n\r\n";
$msg .= ''.$nom."\r\n\r\n";
$msg .= 'Voici son message :'."\r\n";
$msg .= ''."\r";
$msg .= $message."\r\n";
/* En-têtes de l'e-mail */
$headers = 'From: '.$nom.' <'.$expediteur.'>'."\r\n\r\n";
/* Envoi de l'e-mail */
if (mail($to, $sujet, $msg, $headers))
{
$alert = '<p class="alert-success">Merci pour votre message, j\'y répondrai dès que possible.</p>';
/* On crée un cookie de courte durée (ici 120 secondes) pour éviter de
* renvoyer un mail en rafraichissant la page */
setcookie("sent", "1", time() + 120);
/* On détruit la variable $_POST */
unset($_POST);
}
else
{
$alert = '<p class="alert-info">Erreur d\'envoi de l\'e-mail</p>';
}
}
/* Cas ou le cookie est créé et que la page est rafraichie, on détruit la variable $_POST */
else
{
unset($_POST);
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="favicon.ico">
<title>Contact</title>
<!-- Bootstrap core CSS -->
<link href="bootstrap/css/bootstrap.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="bootstrap/css/navbar-fixed-top.css" rel="stylesheet">
<!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
<!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="../../assets/js/ie-emulation-modes-warning.js"></script>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<!-- Fixed navbar -->
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html"><img src="images/logo.png" width="142" height="60"></a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a class="Linknav" href="sculptures.html">Sculptures</a></li>
<li><a class="Linknav" href="installations.html">Installations</a></li>
<li><a class="Linknav" href="dessin.html">Dessins</a></li>
<li><a class="Linknav" href="projets.html">Projets</a></li>
<li><a class="Linknav" href="redidences.html">Résidences</a></li>
<li><a class="Linknav" href="prix.html">Prix</a></li>
<li><a class="Linknav" href="bio.html">Bio</a></li>
<li><a class="Linknav" href="lien.html">Liens</a></li>
<li class="active"><a class="Linknav" href="contact.php">Contact</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<div class="container">
<div class="contenuContact">
<?php
if (!empty($alert))
{
echo '<div class="col-sm-12"><div class="contact"><p style="color:#a69a91; background-color:#660000; text-align:center; font-size:16px; border-radius: 4px; margin: 10px 0; padding:10px;">'.$alert.'</p></div></div>';
}
?>
<form action="contact.php" method="post">
<div class="col-sm-12"><div class="contact"><input type="text" id="nom" name="nom" class="form-control" placeholder="Nom"
value="<?php echo (isset($_POST['nom'])) ? $nom : '' ?>"
/></div></div>
<div class="col-sm-12"><div class="contact"><input type="text" id="email" name="email" class="form-control" placeholder="Adresse email"
value="<?php echo (isset($_POST['email'])) ? $expediteur : '' ?>"
/></div></div>
<div class="col-sm-12"><div class="contact"><textarea style="width:100%" id="message" name="message" class="textarea" placeholder="Message"><?php echo (isset($_POST['message'])) ? $message : '' ?></textarea></div></div>
<div class="col-sm-12"><div class="contact" style="text-align:center"><input class="btn btn-default" type="submit" name="envoye" value="Envoyer" /></div>
</div>
</form>
</div>
</div><!-- /container -->
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>
</script>
</body>
</html>
Merci encore
Bonjour et merci xTG de vous intéresser à mon problème
Ou devrais-je insérer la ligne
[php]var_dump($alert);[/php]
Mais en effet, quand je regarde le source de ma page une fois que le message a été envoyé, j'ai bien un espace dans le <p>
[code]<p style="color:#a69a91; background-color:#660000;...."> </p>[/code]
mais je ne vois pas d’où vient cet espace...
Je ne sais pas si ça peut venir de là, mais cette $alert doit servir à différents message : Email non valide, champs vide, Message envoyé...
J'ai vérifié tout mon code, je ne vois pas ou il pourrait y avoir un espace...
Voici ma page contact.php :
[php]<?php
/* Si le formulaire est envoyé alors on fait les traitements */
if (isset($_POST['envoye']))
{
/* Récupération des valeurs des champs du formulaire */
if (get_magic_quotes_gpc())
{
$nom = stripslashes(trim($_POST['nom']));
$expediteur = stripslashes(trim($_POST['email']));
$message = stripslashes(trim($_POST['message']));
}
else
{
$sujet = "Demande de contact depuis mon site";
$nom = trim($_POST['nom']);
$expediteur = trim($_POST['email']);
$message = trim($_POST['message']);
$message = utf8_decode($message);
}
/* Expression régulière permettant de vérifier si le
* format d'une adresse e-mail est correct */
$regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
/* Expression régulière permettant de vérifier qu'aucun
* en-tête n'est inséré dans les champs */
$regex_head = '/[\n\r]/';
/* Si le formulaire n'est pas posté de notre site on renvoie
* vers la page d'accueil */
if($_SERVER['HTTP_REFERER'] != 'http://www.monsite.com/contact.php')
{
header('Location: http://www.monsite.com');
}
/* On vérifie que tous les champs sont remplis */
elseif (empty($nom)
|| empty($expediteur)
|| empty($message))
{
$alert = 'Tous les champs doivent étre renseignés';
}
/* On vérifie que le format de l'e-mail est correct */
elseif (!preg_match($regex_mail, $expediteur))
{
$alert = 'L\'adresse email : '.$expediteur.' n\'est pas valide';
}
/* On vérifie qu'il n'y a aucun header dans les champs */
elseif (preg_match($regex_head, $expediteur)
|| preg_match($regex_head, $nom)
|| preg_match($regex_head, $sujet))
{
$alert = 'En-têtes interdites dans les champs du formulaire';
}
/* Si aucun problème et aucun cookie créé, on construit le message et on envoie l'e-mail */
elseif (!isset($_COOKIE['sent']))
{
/* Destinataire (votre adresse e-mail) */
$to = '
[email protected]';
/* Construction du message */
$msg = ''."\r";
$msg .= 'Ce mail a été envoyé depuis http://www.wambaugh.us par :'."\r\n\r\n";
$msg .= ''.$nom."\r\n\r\n";
$msg .= 'Voici son message :'."\r\n";
$msg .= ''."\r";
$msg .= $message."\r\n";
/* En-têtes de l'e-mail */
$headers = 'From: '.$nom.' <'.$expediteur.'>'."\r\n\r\n";
/* Envoi de l'e-mail */
if (mail($to, $sujet, $msg, $headers))
{
$alert = '<p class="alert-success">Merci pour votre message, j\'y répondrai dès que possible.</p>';
/* On crée un cookie de courte durée (ici 120 secondes) pour éviter de
* renvoyer un mail en rafraichissant la page */
setcookie("sent", "1", time() + 120);
/* On détruit la variable $_POST */
unset($_POST);
}
else
{
$alert = '<p class="alert-info">Erreur d\'envoi de l\'e-mail</p>';
}
}
/* Cas ou le cookie est créé et que la page est rafraichie, on détruit la variable $_POST */
else
{
unset($_POST);
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="favicon.ico">
<title>Contact</title>
<!-- Bootstrap core CSS -->
<link href="bootstrap/css/bootstrap.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="bootstrap/css/navbar-fixed-top.css" rel="stylesheet">
<!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
<!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="../../assets/js/ie-emulation-modes-warning.js"></script>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<!-- Fixed navbar -->
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html"><img src="images/logo.png" width="142" height="60"></a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a class="Linknav" href="sculptures.html">Sculptures</a></li>
<li><a class="Linknav" href="installations.html">Installations</a></li>
<li><a class="Linknav" href="dessin.html">Dessins</a></li>
<li><a class="Linknav" href="projets.html">Projets</a></li>
<li><a class="Linknav" href="redidences.html">Résidences</a></li>
<li><a class="Linknav" href="prix.html">Prix</a></li>
<li><a class="Linknav" href="bio.html">Bio</a></li>
<li><a class="Linknav" href="lien.html">Liens</a></li>
<li class="active"><a class="Linknav" href="contact.php">Contact</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<div class="container">
<div class="contenuContact">
<?php
if (!empty($alert))
{
echo '<div class="col-sm-12"><div class="contact"><p style="color:#a69a91; background-color:#660000; text-align:center; font-size:16px; border-radius: 4px; margin: 10px 0; padding:10px;">'.$alert.'</p></div></div>';
}
?>
<form action="contact.php" method="post">
<div class="col-sm-12"><div class="contact"><input type="text" id="nom" name="nom" class="form-control" placeholder="Nom"
value="<?php echo (isset($_POST['nom'])) ? $nom : '' ?>"
/></div></div>
<div class="col-sm-12"><div class="contact"><input type="text" id="email" name="email" class="form-control" placeholder="Adresse email"
value="<?php echo (isset($_POST['email'])) ? $expediteur : '' ?>"
/></div></div>
<div class="col-sm-12"><div class="contact"><textarea style="width:100%" id="message" name="message" class="textarea" placeholder="Message"><?php echo (isset($_POST['message'])) ? $message : '' ?></textarea></div></div>
<div class="col-sm-12"><div class="contact" style="text-align:center"><input class="btn btn-default" type="submit" name="envoye" value="Envoyer" /></div>
</div>
</form>
</div>
</div><!-- /container -->
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>
</script>
</body>
</html>[/php]
Merci encore