1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| if(isset($_POST['submit'])){
// $Jour = array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
// $Mois = array("","janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");
// $datefr = $Jour[date("w")]." ".date("d")." ".$Mois[date("n")]." ".date("Y").", ".date("H")." : ".date("i");
$loggin = $_POST['pseudo']; // htmlspecialchars ne sert à rien ici. Il ne faut l'utiliser que lorsqu'il y a une sortie de texte, pas une entrée. De plus, le "a écrit" est une donnée qui reviens donc elle aura sa place dans la boucle en bas
$mess = $_POST['message']; // pareil
$pass = $_POST['passwd'];
// si tous les champs sont vides
if(empty($_POST['pseudo']) OR empty($_POST['message']) OR empty($_POST['passwd'])){
echo '<p class="vide">Un des champs est vide</p>';
}
// vérification d'un pseudo existant
if(isset($_POST['pseudo']){
try{
$verif = $connexion->query('SELECT pseudo, pass FROM membres');
$data = $verif->fetch();
if($data != $loggin){
echo 'vous devez être connecté(e) pour poster un commentaire';
}
}
catch(Exception $e){
echo 'Erreur : '.$e;
}
}
// si tout est ok
else{
try{
// on définit les logins / paramètres de la base de donnée
$insertion_table = $connexion->prepare('INSERT INTO commentaires(pseudo, message,date_enregistrement) VALUES(:pseudo, :message,:date_enregistrement)')
or exit(print_r($insertion_table->errorInfo())); // on prépare la requete SQL afin d'envoyer le message / pseudo. Si la requete échoue, on affiche l'erreur
$insertion_table->execute(array('pseudo'=>$loggin, 'message'=>$mess, 'date_enregistrement'=>time())); // on éxécute la requete
}
catch(Exception $e){
echo 'problème d\'insertion dans la bdd : '.$e->getMessage();
}
try{
$result= $connexion->query('SELECT * FROM commentaires ORDER BY date_enregistrement DESC'); // on séléctionne tous les champs de la table commentaires
while ($donnees = $result->fetch()){
echo '<div id="pseudo">';
echo '<div class="heure">'.date('l d m Y H:i', $donnees['date_enregistrement']).'</div>';
echo '<div class="nom">'.htmlentities($donnees['pseudo']).' a écrit : </div></div>';
echo '<div id="bloc_message">"'.nl2br(htmlentities($donnees['message'])).'"</div>';
// ici donc, on rajoute htmlentities (un dérivé de htmlspecialchars()) car cette fois ci, on sort le texte. De plus, on peut voir que " a écrit : " reviens car il sera rajouté à chaque passage de la boucle
}
}
catch(Exception $e){
echo 'problème avec la requête d\'affichage : '.$e->getMessage();
}
$result->closeCursor();
}
} |
Partager