Acces impossible

Par BunnyGaming, il y a 3 ans


Bonjour, voila depuis 2/3 jours je rencontre un probleme avec ma page pour éditer mes articles de mon blog, celle-ci fonctionner correctement juste la hors je n'est rien changer, quand je suis sur la page de l'article donc celle ci fonctionner bien vu qu'elle me recupere bien l'article donc quand je fait un renvoi pour l'éditer celle-ci me renvoi directement sur ma page blog.php

$titre = null; if(!isset($_GET['id'])){ header('location: blog.php'); exit; } $get_id_article = (int) $_GET['id']; if($get_id_article <= 0){ header('location: index.php'); exit; } $req = $DB->prepare("SELECT a.*, a.titre AS name_blog FROM blog "); $req->execute([$get_id_article]); $req_article = $req->fetch(); if(!isset($req_article['id'])){ header('location: blog.php'); exit; } if($req_article['id_utilisateur'] <> $_SESSION['id']){ header('location: article.php?id=' .$req_article['id']); exit; }

de plus j'ai fait un var_dump($_GET); exit; il me donne array(1) { ["id"]=> string(1) "7" } puis un
var_dump($req_article); exit; apres la variable du meme nom celui-ci me donne bool(false)

Merci de l'aide :)

6 réponses

JoolsMcFly, il y a 3 ans

Salut.

C'est parce que tu donnes un param à execute alors qu'il n'y en a pas dans la requête. Tu dois ajouter where id=:id pour ne récupérer que l'article en question.
Et puisque tu ne fais la requête que pour vérifier que l'article existe tu n'as pas besoin de renvoyer a.*, l'ID suffit.

$req = $DB->prepare("SELECT id AS name_blog FROM blog WHERE id=:id"); $req->execute(['id' => $get_id_article]); $req_article = $req->fetch();

Et pour simplifier un peu :

if (!isset($_GET['id'])){ header('location: blog.php'); exit; } $get_id_article = (int) $_GET['id']; if ($get_id_article <= 0){ header('location: index.php'); exit; }

devient (en renommant $get_id_article en $id_article car osef du prefix get_)

$id_article = (int) ($_GET['id'] ?? 0); if ($id_article <= 0){ header('location: index.php'); exit; }
BunnyGaming, il y a 3 ans

J'ai toujours le même probleme renvoi directement vers la page blog.php

JoolsMcFly, il y a 3 ans

T'as quoi dans $req_article ? Fais voir ce que donnes un var_dump dessus.

BunnyGaming, il y a 3 ans

Voila ce que ca me donne, array(2) { ["name_blog"]=> string(1) "4" [0]=> string(1) "4" } sachant que ça m'envoi sur le bon lien avec le bonne idée

Another, il y a 3 ans

Hello,

Mis à part les problèmes décris par les autres membres à savoir:

La requête SQL ne spécifie pas l'article à récupérer. Il manque la condition WHERE
La méthode execute() de l'objet $req utilise un tableau en argument, mais ce tableau n'est pas correctement formaté. Il devrait contenir les valeurs des paramètres de la requête, mais il n'y a qu'une seule valeur passée en argument. et sache aussi qu'il n'est pas nécessaire d'utiliser un tableau dans ce cas-ci, car il n'y a qu'un seul paramètre à passer.

Ensuite utilise plutôt l'opérateur de comparaison "!=" plutôt que "<>". et ça devrait le faire :)

BunnyGaming, il y a 3 ans

Salut,

j'ai pas vraiment compris le début