CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PHP/SQL] Requete avec WHERE ...

Jedjav
Jedjav
Niveau 6
03 décembre 2014 à 16:23:36

CouCou :)

J'essaie de faire une requête SQL mais ça ne marche pas très bien car mes variables de conditions sont dans un GET ou proviennent d'une autre requete

Par exemple :
quand j'essaie de faire ça :

$SQL = 'SELECT * FROM table WHERE identifiant=$_GET[identifiant]';
ça me renvoit une erreur alors que si je met ça :

$SQL = 'SELECT * FROM table WHERE identifiant=5'; il n'y a pas de soucis, pourtant si je fais echo "$_GET[identifiant]"; ça m'affiche bien 5 :(

Comment puis-je faire pour que cela marche ?
J'ai essayé de faire :
identifiant='$_GET[identifiant]'
identifiant=$_GET['identifiant']
identifiant=\'$_GET[identifiant]\'

Mais sans succès ...

Voilà merci d'avance pour vos réponses

Meprisoft
Meprisoft
Niveau 10
03 décembre 2014 à 17:33:42

$SQL = "SELECT * FROM table WHERE identifiant=" + $_GET[identifiant]";

L'opérateur + permettra de mettre bout à bout tes chaînes. :oui:

Meprisoft
Meprisoft
Niveau 10
03 décembre 2014 à 17:34:12

D'ailleurs le dernier " est en trop, désolé.

Jedjav
Jedjav
Niveau 6
03 décembre 2014 à 17:37:13

D'accord merci beaucoup !! :D

godrik
godrik
Niveau 30
03 décembre 2014 à 18:03:53

Argl, je meurt! J'ai ete sql injecte!

Serieusement, on ne concatene jamais une chaine qui vient de l'exterieur dans une requete sql. On utilise pdo pour parametre la requete.

Jedjav
Jedjav
Niveau 6
03 décembre 2014 à 18:39:33

Malheureusement je ne peux utiliser pdo, c'est pour un projet scolaire (je suis un DUT info) et notre prof nous dit de n'utiliser que les anciennes fonctions :hum:

Du coup j'ai pas moyen de sécuriser mes requêtes autrement ?

Meprisoft
Meprisoft
Niveau 10
03 décembre 2014 à 18:44:32

Ah oui j'avais oublié les injections SQL... Le PHP n'est pas mon fort, pardonnez moi cette erreur horrible. :o))

Eij_iZ_WanteD
Eij_iZ_WanteD
Niveau 10
03 décembre 2014 à 20:01:57

1- ta requête ne fonctionne pas car tu places ta variable entre des guillemets et donc ce n'est pas interpréter en tant que variable mais en tant que du texte.

2- il faut donc concaténer ta variable à ton texte, pour cela il faut refermer les guillemets et utiliser l'opérateur de concaténation qui est un point .
ex :
$texteadditionnel = "BLABLABLA";
$texte = "blablabla" . $texteadditionnel . "blablabla";

3- http://php.net/manual/fr/security.database.sql-injection.php (plus bas tu as les techniques de contournement)

[Kyomaro]
[Kyomaro]
Niveau 10
03 décembre 2014 à 20:33:34

C'est completement con de vous donner des mauvaises habitudes dès le début

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment