Page 1 sur 1

résultat de $_GET dans une requete

Posté : 26 févr. 2013, 17:03
par Stalker
Bonjour.

Une page de son site envoie un lien vers http://www.monsite.com/fiche_etoile.php?star=$star_name
Jusqu'à là ça marche assez bien, sur la page d'arrivée, si je fais :
$star=htmlspecialchars($_GET["star"]);
echo "$star";
J'obtiens bien le nom de l'étoile sur laquelle j'avais cliqué. Tout baigne donc.

Les choses se corsent plus tard, puisque je n'arrive pas à utiliser la variable $star dans une requete SQL. En effet je veux réutiliser le nom de l'étoile pour faire une recherche dans la table. Pour une étoile précise (par exemple 55 Cnc) je fais ceci:
$requete='SELECT DISTINCT star_name, star_distance, star_spec_type
               FROM  `epecatalog` 
               WHERE star_name =  "55 Cnc"';
     $resultat=mysql_query($requete)
               or die ("la requete ne peut pas être executee");
     while($ligne=mysql_fetch_array ($resultat))
                {
                  extract($ligne);
                  echo "$star_name est une etoile de type spectral $star_spec_type";
                }
Voici le résultat:
55 Cnc est une etoile de type spectral K0IV-V
Maintenant, je veux utiliser le nom de l'étoile sur laquelle j'ai cliqué plus tôt, je fais donc:
$star=htmlspecialchars($_GET["star"]);
$requete='SELECT DISTINCT star_name, star_distance, star_spec_type
               FROM  `epecatalog` 
               WHERE star_name =  "$star"';
     $resultat=mysql_query($requete)
               or die ("la requete ne peut pas être executee");
     while($ligne=mysql_fetch_array ($resultat))
                {
                  extract($ligne);
                  echo "$star_name est une etoile de type spectral $star_spec_type";
                }
Et ça ne me donne... rien, une page vide, pas même de message d'erreur (que j'obtiens en sabotant la requête).

Alors messieurs, pourrez vous s'il vous plait me souffler comment faire ce que je souhaites faire? :mrgreen:

Merci d'avance.

Re: résultat de $_GET dans une requete

Posté : 26 févr. 2013, 17:17
par damien_55
$star=htmlspecialchars($_GET["star"]);
$requete='SELECT DISTINCT star_name, star_distance, star_spec_type
               FROM  `epecatalog` 
               WHERE star_name =  "'.$_GET["star"].'"';
     $resultat=mysql_query($requete)
               or die ("la requete ne peut pas être executee");
     while($ligne=mysql_fetch_array ($resultat))
                {
                  extract($ligne);
                  echo "$star_name est une etoile de type spectral $star_spec_type";
                }

Re: résultat de $_GET dans une requete

Posté : 26 févr. 2013, 17:27
par Stalker
Merci Damien ça marche du tonnerre ;)

Re: [RESOLU] résultat de $_GET dans une requete

Posté : 26 févr. 2013, 17:33
par sam12
Bonjour l'injection sql là :D