PHP/sql

PHP/sql - PHP - Programmation

Marsh Posté le 03-03-2007 à 14:33:20    

Bonjour ,  
 
j'ai un petit probleme avec ce code que j'ai fait :  
 
 
 
<?PHP
$idsql = $_GET['id'];
$db = mysql_connect('sql.free.fr', 'user', 'pass');  
mysql_select_db('user',$db);  
 
$sql = 'SELECT * FROM livres WHERE id='$idsql'' ;  
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());  
 
while($data = mysql_fetch_array($req))  
{  
echo $data['id'];
echo $data['titre'];
echo $data['auteur'];  
echo $data['url_off'];  
echo $data['url_fr'];
echo $data['resume'];
echo $data['url_fiche'];
}  
mysql_close();
?>

 
en faite j'aimerai que la page fasse une requete sur la table livres et récupéré tout les caractéristique du livre , chaque livre est identifié par un id et dans une page lien.php il y a le lien vers une page(tab.php)qui contient la source ci dessous et des qu'on clique sur le lien d'un livre par ex : tab.php?id=512 je voudrai que la requete sql récupere la valeur id=512 pour pouvoir récupéré toutes les caracteristique du livre ayant l'id 512. ici j'ai essayé de récuperer par $_GET['id'] mais je n'y arrive pas.  
 
aidez moi svp merci !!


---------------
-[Juck'n0]-
Reply

Marsh Posté le 03-03-2007 à 14:33:20   

Reply

Marsh Posté le 03-03-2007 à 15:17:50    

j'ai trouvé le probleme il fallait rajouter le point avant la variable et au lieu de prendre une variable $idsql nous pouvons mettre directement $_GET
 
$sql = 'SELECT * FROM livres WHERE id=" .$_GET['id'];
 
a+

Reply

Marsh Posté le 03-03-2007 à 15:41:39    

Tu peux aussi corriger la faille d'injection SQL au passage... :spamafote:
 
(C'est assez stupéfiant de voir le nombre de personnes qui semblent ne pas en être conscients du tout... [:figti] )


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 03-03-2007 à 15:43:19    

désolé mais je commence le php et je ne vois pas de quelle faille tu parles . merci de m'éclairer

Reply

Marsh Posté le 03-03-2007 à 16:08:37    

tu parle d'une injection si quelqu'un insere un autre résultat a id ? au début je vais vérifié si l'id existe et sa sera bon non ?

Reply

Marsh Posté le 03-03-2007 à 16:43:07    

ah j'pense que c'est bon j'ai mis htmlentities('$_GET['id'])
mais comme "id" a pour type INT il sera impossible d'y mettre un script quelconque non ?

Reply

Marsh Posté le 03-03-2007 à 17:14:08    

Cherche "injection sql" sur Google pour comprendre.
 
Et pour sécuriser, renseigne-toi sur mysqli (ou PDO) ou mysql_real_escape_string si mysqli n'est pas dispo.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed