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] Besoin d'explication sur un bout de code

JoIie
JoIie
Niveau 10
07 janvier 2015 à 22:26:02

Bonsoir,

Dans ce code : https://wall.deblan.org/x1c96/php/1/

Malgré mes recherches je me pose toujours certaines questions.
J'aimerais savoir comment marche la partie comprise entre les lignes 60 et 75.

Je sais que j'insère dans la base de donnée les informations de mon formulaire mais ce que je ne comprends pas :

- Pourquoi les "?" à la place de ":pseudo" ou "$pseudo" ?
- On m'a dit que j'ai réalisé une requête sécurisé, comment puis-je le constater ?
- Quelle ligne dois-je enlever pour que cette requête ne soit plus sécurisé ?
- Je sais qu'il faut mettre autant de "s" qu'il y a de variable (i pour entier, d pour decimal et s pour chaine de caractères) mais à part ça, quel rôle ses "s" joues t-il ?

J'ai aussi une erreur dans la vérification du pseudo, si il existe dans la bdd ou non :

L'erreur, c'est soit je vérifie si le pseudo existe ou soit je vérifie si l'adresse mail existe, si j'insère les deux tâches en même temps j'ai des erreurs :

Pour le pseudo déjà existant ça m'affiche ces erreurs mais l'inscription ne s’exécute pas :

https://image.noelshack.com/fichiers/2015/02/1420470843-capture.png

Pour le mail déjà existant tout est correct :

https://image.noelshack.com/fichiers/2015/02/1420470714-capture.png

Merci pour vos réponses.

Pseudo supprimé
Pseudo supprimé 07 janvier 2015 à 22:41:07

J'ai pas bien compris l'histoire des "?" il suffit que tu remplaces par tes valeurs, par tes variables

JoIie
JoIie
Niveau 10
07 janvier 2015 à 22:41:53

Bah apparemment ça sécurise la requête ...

Pseudo supprimé
Pseudo supprimé 07 janvier 2015 à 22:42:39

Oui mais j'ai pas compris ce qui te posait problème a propos de ces "?"

JoIie
JoIie
Niveau 10
07 janvier 2015 à 22:55:23

Comment le fait de placer des "?" sécurise la requête ? Qu'est ce qui rend la requête sécurisé dans ce bout de code ?

JoIie
JoIie
Niveau 10
07 janvier 2015 à 23:26:36

C'est bon avec internet j'ai compris que les ? permettais de séparer la requête elle-même et les valeurs à manipuler.

Une dernière chose, comment je pourrais tester la sécurité ?
C'est à dire enlever les lignes qui permette de sécuriser la requête pour pouvoir réaliser une injection Mysql..

Comment je réalise cette injection ? J'ai vue sur le net que remplacer la fin de l'url par php?id=1' (avec l'apostrophe) permet d'en faire une mais quand je la réalise, rien ne se produit.

3615_mylife
3615_mylife
Niveau 10
08 janvier 2015 à 00:21:12

Salut !

Alors :
- En faite les points d'interrogation à l'intérieur de ta requête SQL sont ce qu'on appelle des "marqueurs".
L'extension mysqli va s'occuper toute seule de remplacer chaque marqueur par la bonne valeur qui sont les unes à la suite de l'autre à la ligne 69 avec la fonction mysqli_stmt_bind_param() .

- Elle est sécurisée parce que tu as utilisé se qu'on appelle une requête préparée. Grosso modo via ces fonctions php se charge de protéger ta requête contre tout les caractères qui ne devraient pas s'y trouver et qui sont charger de faire planter ta requête ou de retourner d'autres valeurs demandées (injection SQL).

- Faudrait que tu remplaces toute la partie de la requête préparée par une requête simple avec mysqli_query. (lignes 66 à 72)

- Ce sont les types de tes valeurs. Ca permet ainsi de dire à mysqli "Attention, pour cette valeur là j'attend un entier !" et donc d'appliquer la sécurité qui correspond.

JoIie
JoIie
Niveau 10
09 janvier 2015 à 01:46:02

Merci beaucoup pour tes détails 3615_mylife !

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