MySql : récupérer l'ID d'une page

Résolu/Fermé
santaiide - Modifié par santaiide le 26/03/2011 à 11:00
dariumis Messages postés 571 Date d'inscription mardi 16 mars 2010 Statut Membre Dernière intervention 18 avril 2018 - 26 mars 2011 à 17:56
Bonjour,

Je ne sais pas trop comment expliquer dans le titre... bon.
Je suis en train de créer un système d'articles/coms sur mon site :


1 page où les derniers articles sont affichés (OK)
1 page où s'affiche l'article demandé et ses commentaires.


Le lien entre mes pages fonctionne donc grâce l'ID de l'article en question :


<a href="commentaires.php?article=<?php echo $donnees1['ID']; ?>">Lire l'article</a>


Par contre, au moment de récupérer cet ID sur la nouvelle page (commentaires.php), je bloque !


> Tout fonctionne au niveau connection/affichage du contenu de ma table si je ne mets pas WHERE dans la requete.
> Plus d'affichage (mais pas de rapport d'erreur), lorsque je demande, dans la requête, de sélectionner la ligne où l'ID correspond à celui de l'article :


$requete = 'SELECT ID, titre, content, auteur, DATE_FORMAT(date, \'%d/%m/%Y à %Hh%i\') AS date_fr FROM articles WHERE ID = ?';


Forcément, je débute en MySQL, et je ne sais pas comment s'appelle ce point d'interrogation pour googler...


MErci d'avance pour vos coups de main !!

2 réponses

dariumis Messages postés 571 Date d'inscription mardi 16 mars 2010 Statut Membre Dernière intervention 18 avril 2018 63
Modifié par dariumis le 26/03/2011 à 11:16
Salut, dans ta page commentaires.php tu récupère l'id dans un isset:

 if(isset ($_GET['article'])) { 
        $article=$_GET['article']; 
    }else { 
        $article=-1; 
    } 


Puis dans le where de ta requête tu écrit la variable:

$requete = 'SELECT ID, titre, content, auteur, DATE_FORMAT(date, \'%d/%m/%Y à %Hh%i\') AS date_fr FROM articles WHERE ID ='.$article ;
0
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 431
26 mars 2011 à 14:41
Attention a la securite... Ton code permet les injections sql.
0
Oups : comment ça?

J'ai, pour chaque affichage des commentaires, utilisé
 htmlspecialchars
, mais c'est que pour l'affichage de code html, c'est ça?

Comment ça se passe pour bloquer le sql?
0
dariumis Messages postés 571 Date d'inscription mardi 16 mars 2010 Statut Membre Dernière intervention 18 avril 2018 63
Modifié par dariumis le 26/03/2011 à 18:50
Attention a la securite... Ton code permet les injections sql.
ha oui c'est vrai: alors peut etre ça:

$requete = 'SELECT ID, titre, content, auteur, DATE_FORMAT(date, \'%d/%m/%Y à %Hh%i\') AS date_fr FROM articles WHERE ID ='.addslashes($article) ; 


Mais j'me demande s'il n'y a pas une fonction plus adéquat??

Edit: mais le champ id doit etre un integer, y a t'il dans ce cas là aussi risque d'injection???
0
Tout fonctionne, c'est super, merci beaucoup !
0