Messages d'erreurs qui ne s'affiche pas sur ma page contact.php [Résolu/Fermé]

Signaler
-
 tofou -
Bonjour,

je viens demander votre aide pour un petit souci je m'explique:
J'ai suivi un tuto sur le net que j'ai reproduis sur mon site pour ma page de formulaire mais le problème c'est que certains messages d'erreurs ne s'affiche pas sur ma page et aussi quand les champs name, firstname et objet ne sont pas pas remplis l'email par tout de même je n'est pas de niveau du tout en php je viens pour un petit coup de pousse je vous en remercie d'avance je vous poste ma page contact.php ainsi que traitement.php .
Ca doit provenir de array_key_exists non ?


Ma page contact.php


<?php
session_start();
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<title>Contact</title>
<meta charset="utf-8" >
<link href="styles/style.css" rel="stylesheet" >
</head>
<body>
<div id="page">
<!-- DEBUT DE MON ENTETE -->
<header>
<div id="entete-haut">
<div id="logo">
<h1><a href="index.html">test <span>test</span></a></h1>
</div>
<div id="menu-entete">
</div>
</div>
<div id="entete-bas">
<div id="image-entete">
<p>test<span>test</span></p>
<p id="createur">Créateur de sens</p>
</div>
</div>
</header><!-- fin DE MON ENTETE -->
<div id="principale">
<!-- DEBUT DE col1 -->
<div id="col1">
<nav id="menu1">
<ul>
<li><a href="test.html">test</a></li>
<li><a href="test.html">test</a></li>
<li><a href="test.html">test</a></li>
<li><a href="test.html">test</a></li>
<li><a href="test.html">test</a></li>
</ul>
</nav>
<p class="centragep">
<a href="https://fr.linkedin.com">
<img style="border:1px solid black;width:88px;height:31px" src="images/linkedin.jpg" alt=""/>
</a>
</p>
<p class="centragep">
<a href="http://fr.viadeo.com/fr/">
<img style="border:1px solid black;width:88px;height:31px" src="images/viadeo.jpg" alt=""/>
</a>
</p>
</div><!-- FIN DE col1 -->
<div id="col2">
<!-- DEBUT DE COL2A (article) -->
<div id="col2a">
<article>
<h2>Me Contacter</h2>

<?php if(array_key_exists('errors', $_SESSION)): ?>
<p>
<?= implode('<br>', $_SESSION['errors']); ?>
</p>
<?php endif; ?>

<?php if(array_key_exists('success', $_SESSION)): ?>
<div>
Votre email a bien été envoyé !
</div>
<?php endif; ?>
<br/>
<form action="traitement.php" method="post">
<div>
<label for="inputname">Nom :</label>
<input type="text" id="inputname" name="name" value="<?= isset($_SESSION['inputs']['name']) ? $_SESSION['inputs']['name'] : '' ;?> ">
</div>
<div>
<label for="inputfirstname">Prenom :</label>
<input type="text" id="inputfirstname" name="firstname" value="<?= isset($_SESSION['inputs']['firstname']) ? $_SESSION['inputs']['firstname'] : '' ;?> ">
</div>
<div>
<label for="inputobjet">Objet :</label>
<input type="text" id="inputobjet" name="objet" value="<?= isset($_SESSION['inputs']['objet']) ? $_SESSION['inputs']['objet'] : '' ;?> ">
</div>
<div>
<label for="inputemail">E-mail :</label>
<input type="email" id="inputemail" name="email" value="<?= isset($_SESSION['inputs']['email']) ? $_SESSION['inputs']['email'] : '' ;?> ">
</div>
<div>
<label for="inputmessage">Message :</label>
<textarea id="inputmessage" name="message"><?= isset($_SESSION['inputs']['message']) ? $_SESSION['inputs']['message'] : '' ;?></textarea>
</div>
<div class="button">
<button type="submit" name="submit">Envoyer</button>
</div>
</form>
</article>
</div><!-- FIN DE COL2A (article) -->
<!-- DEBUT DE COL2b (3eme colonne) -->
<div id="col2b">
<p class="centragep"><img src="images/photo.jpg" alt=""></p>
<p class="centragep">Pour un rendez vous<br>
ou<br>un renseignement</p>
<p class="centragep">Appelez moi au 06 00 00 00 00</p>
</div> <!-- Fin DE COL2b (3eme colonne) -->
</div>
</div>
<p class="centragep">
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img style="border:0;width:88px;height:31px"
src="//jigsaw.w3.org/css-validator/images/vcss-blue"
alt="CSS Valide !" />
</a>
</p>
<!-- DEBUT DU PIED DE PAGE -->
<footer>
<p><a href="mentions.legales.html">Mentions légales</a></p>
</footer><!-- Fin DE pie de page -->
</div>
</body>
</html>

<?php
unset($_SESSION['inputs']);
unset($_SESSION['success']);
unset($_SESSION['errors']);
?>




Ma page traitement.php

<?php

$errors = [];

if(!array_key_exists('name', $_POST) || $_POST['name'] == ''){
$errors['name'] = "Vous n'avez pas renseigné votre nom";
}

if(!array_key_exists('firstname', $_POST) || $_POST['firstname'] == ''){
$errors['firstname'] = "Vous n'avez pas renseigné votre prenom";
}

if(!array_key_exists('objet', $_POST) || $_POST['objet'] == ''){
$errors['objet'] = "Vous n'avez pas renseigné l'objet de votre message";
}

if(!array_key_exists('email', $_POST) || $_POST['email'] == ''){
$errors['email'] = "Vous n'avez pas renseigné votre Email";
}

if(!array_key_exists('message', $_POST) || $_POST['message'] == ''){
$errors['message'] = "Vous n'avez pas renseigné votre message";
}

session_start();


if(!empty($errors)){
$_SESSION['errors'] = $errors;
header('Location: contact.php');
}else{
$_SESSION['success'] = 1;
$name = htmlspecialchars($_POST['name']);
$firstname = htmlspecialchars($_POST['firstname']);
$objet = htmlspecialchars($_POST['objet']);
$email = htmlspecialchars($_POST['email']);
$message = '<b>Nom:</b>'.$name.'<br/><b>Prenom:</b>'.$firstname.'<br/><b>Objet:</b>'.$objet.'<br/><b>E-mail:</b>'.$email.'<br/><b>Message:</b>'.htmlspecialchars($_POST['message']);
$headers = 'FROM: ***@***';
$headers = "Content-Type: text/html; charset=\"iso-8859-1\"";
mail('***@***', 'Formulaire de contact', $message, $headers);
header('Location: contact.php');
}
?>


1 réponse

Messages postés
760
Date d'inscription
samedi 29 mars 2014
Statut
Membre
Dernière intervention
8 septembre 2018
113
Bonjour,

il y a un espace blanc dans l'attribut value du coup le champ est quand même remplit.

il faut changer sa : '' ;?> "> par sa : '' ;?>">
Bonjour codeurh24 je vous remercie pour votre aide ça fonctionne maintenant dire que j'ai cherché une bonne partie de l'après midi pour 3 espaces :( je vous remercie encore pour la solution donné bonne journée