PHP - modifier un article
Bonjour,
j'aimerais pouvoir modifier un article que j'ai créé en PHP mais ça ne fonctionne pas. j'aimerais comprendre mon erreur, je vous montre le code :
Code:
<a href="index.php?action=edit&id=<?= $post['id'] ?>">Modifier</a>
La vue où je modifie l'article (UpdateView.php) :
Code:
1 2 3 4 5 6 7 8
|
<h3>Modifiez un billet existant à l'aide des champs ci-dessous :</h3>
<form action="index.php?action=listPosts&id=<?= $post['id']?>" method="POST">
<p><label for="title">Titre :</label><input type="text" name="newtitle" value="<?= $post['title']?>"></p>
<p><label for="content">Saisissez l'article modifié :</label><textarea name=" newcontent" ><?= $post['content']?></textarea></p>
<p><input type="submit"></p>
</form> |
Modèle :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
//Récupération du post que l'on veut modifier
function getEditPost() {
$db = dbConnect();
$req = $db->prepare('SELECT * FROM posts WHERE id = ?');
$req->execute(array($id));
$post = $req->fetch();
return $post;
}
//Modifier le post
function getUpdatePost($id) {
$db = dbConnect();
$update = $db->prepare('UPDATE posts SET title = ?, content = ? WHERE id = ?');
$update->execute(array($_POST['newtitle'], $_POST['newcontent'], $id));
return $update;
} |
Controller :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
function editPost() {
$post = getEditPost();
if ($post === false) {
print "Impossible d'accéder à la page demandé";
}else {
require('View/frontend/UpdateView.php');
}
}
function updatePost($id) {
if(isset($_POST['title']) && isset($_POST['content'])) {
if(!empty($_POST['title'])&& !empty($_POST['content'])) {
$update = getUpdatePost($id);
}else {
print "Tout les champs ne sont pas remplis !";
}
} else {
print "Les champs n'existent pas !";
}
} |
et enfin le routeur (l'index) :
Code:
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
| //Afficher les posts
if (isset($_GET['action'])) {
if ($_GET['action'] == 'listPosts') {
listPosts();
if(isset($_POST['title']) && isset($_POST['content'])) {
if(!empty($_POST['title']) && !empty($_POST['content'])) {
updatePost($_GET['id']);
}else {
print "Les champs sont pas remplis !";
}
}
//Afficher le post et ses commentaires
} elseif ($_GET['action'] == 'post') {
if (isset($_GET['id']) && $_GET['id'] > 0) {
post();
} else {
echo 'Erreur : aucun identifiant de billet envoyé';
}
// Affiche la vue UpdateView.php
} elseif ($_GET['action'] == 'edit') {
if (isset($_GET['id']) && $_GET['id'] > 0) {
editPost();
}
}else {
print "Les champs title et content n'existent pas !";
}
}
else {
listPosts();
} |
J'accède bien à UpdateView.php pour pouvoir modifier l'article mais quand j'envoie il n'y a aucune modification. Merci pour votre aide