Bonjour,
je suis entrain de faire mon portfolio avec un blog avec la possiblité de poster des commentaires si l'utilisateur est connecté
Je voudrais des conseils sur mon code, merci !
index.php
<?php
require 'app/includes.php';
$title = "";
require 'partials/header.php';
// Récupération des news du blog
$req = $db->prepare("SELECT * FROM blog ORDER BY date_post LIMIT 0,5");
$req->execute();
$setBlog = $req->fetchAll();
?>
<div class="page-header">
<h3>
Mon Blog
</h3>
</div>
<?php foreach($setBlog as $blog): ?>
<div class="panel panel-default">
<div class="panel-heading">
<h3><?= $blog['title']; ?></h3>
<p>
Cet article a été publié par <i class="fa fa-user"></i> <?= $blog['author']; ?>, le <i class="fa fa-calendar"></i> <strong><?= $blog['date_post']; ?></strong>
</p>
</div>
<div class="panel-body">
<p>
<?= $blog['content']; ?>
<a class="btn btn-default" href="blog.php?id=<?= $blog['id']; ?>">
<i class="fa fa-plus"></i>
</a>
</p>
</div>
<div class="panel-footer">
<a class="btn btn-social-icon btn-twitter" href="">
<i class="fa fa-twitter"></i>
</a>
<a class="btn btn-social-icon btn-facebook" href="">
<i class="fa fa-facebook"></i>
</a>
<a class="btn btn-social-icon btn-google-plus" href="">
<i class="fa fa-google-plus"></i>
</a>
<a class="btn btn-success" href="">
<i class="fa fa-thumbs-up"></i>
J'aime
</a>
<a class="btn btn-danger" href="">
<i class="fa fa-thumbs-down"></i>
Je n'aime pas
</a>
</div>
</div>
<?php endforeach; ?>
<?php
require 'app/debug.php';
require 'partials/footer.php';
?>
blog.php
<?php
require 'app/includes.php';
$title = "";
require 'partials/header.php';
// Récupération de la news
$id = $_GET['id'];
$req = $db->prepare("SELECT * FROM blog WHERE id = $id");
$req->execute();
$setNews = $req->fetch();
if(!$setNews)
{
setFlash('Cet article n\'existe pas !', 'danger');
}
?>
<?php if($setNews): ?>
<div class="page-header">
<h3>
<?= $setNews['title']; ?>
</h3>
<p>
Cet article a été publié par <i class="fa fa-user"></i> <?= $setNews['author']; ?>, le <i class="fa fa-calendar"></i> <strong><?= $setNews['date_post']; ?></strong>
</p>
</div>
<p>
<?= $setNews['content']; ?>
</p>
<a class="btn btn-social-icon btn-twitter" href="">
<i class="fa fa-twitter"></i>
</a>
<a class="btn btn-social-icon btn-facebook" href="">
<i class="fa fa-facebook"></i>
</a>
<a class="btn btn-social-icon btn-google-plus" href="">
<i class="fa fa-google-plus"></i>
</a>
<a class="btn btn-success" href="">
<i class="fa fa-thumbs-up"></i>
J'aime
</a>
<a class="btn btn-danger" href="">
<i class="fa fa-thumbs-down"></i>
Je n'aime pas
</a>
<?php
endif;
// Récupération des commentaires
$req = $db->prepare("SELECT * FROM commentaires WHERE id = $id");
$req->execute();
$setComments = $req->fetch();
if($setComments):
?>
<hr />
<div class="panel panel-default">
<div class="panel-heading">
<h3><?= $setComments['title']; ?></h3>
<p>
Cet article a été publié par <i class="fa fa-user"></i> <?= $setComments['author']; ?>, le <i class="fa fa-calendar"></i> <strong><?= $setComments['date_post']; ?></strong>
</p>
</div>
<div class="panel-body">
<p>
<?= $setComments['content']; ?>
</p>
</div>
<div class="panel-footer">
<a class="btn btn-success" href="">
<i class="fa fa-thumbs-up"></i>
J'aime
</a>
<a class="btn btn-danger" href="">
<i class="fa fa-thumbs-down"></i>
Je n'aime pas
</a>
</div>
</div>
<?php if(isset($_SESSION['Auth']['id'])): ?>
<a class="btn btn-default btn-lg btn-block" href="commentaires.php?id=<?= $id; ?>">
<i class="fa fa-pencil"></i>
Poster un commentaire
</a>
<?php endif; ?>
<?php endif; ?>
<?php
require 'app/debug.php';
require 'partials/footer.php';
?>
Bonjour,
le code est propre, bien compartimenté (traitement/affichage). Je relève peut être un problème : que se passe t-il si l'utilisateur tape directement l'adresse "commentaires.php?id=4" dans sa bare d'adresse ?
A+
Bon continuation
Code propre, mais il faut gérer les sessions si ton utilisateur est connecté. Je n'ai pas vu de session_start() dans ton code, et je te conseille de mettre en place un système de token --> [http://www.grafikart.fr/tutoriels/php/faille-csrf-155]() ;)
SInon, essaye de suivre la formation [http://www.grafikart.fr/formations/programmation-objet-php](), @Grafikart fait un petit moteur de blog tout bête via MVC, je pense que ça pourrait aussi t'aider :)
Pour répondre à connected, si l'utilisateur rentre l'url il sera redirigé sur la news avec l'id si elle existe pas on lui retourne une erreur
Pour Cyrien G, j'essaie de mettre en place un systeme en "brut" et ensuite tout passer en mvc :)
De plus si quelqu'un pourrait m'aider pour les url
je voudrais une url comme ceci : www.monsite.fr/blog.php/slug
cependant je n'arrive pas j'obtiens : blog.php?id=1 car je n'arrive pas à vérifier le slug
Ce n'etait pas vraiment ma question, en même temps si je m'exprime mal, lool. Ma question c'est : est-ce que tu verifie sur la page commentaires si l'utilisateur est bien connecté ?
D'accord, mais je te conseille de commencer par le MVC directement, tu risques de t'emmêler les pinceaux sinon ^^
Pour tes routes, il te faudrait passer directement par le slug 'blog.php?slug=toto" (et donc lors de ta requête en BDD, faire ton WHERE sur le slug et on l'ID ;) )