Bienvenue sur PEBKAC.fr, le site qui recense les anecdotes où l’on se moque des utilisateurs ne maîtrisant pas l’outil informatique. PEBKAC est un acronyme signifiant « Problem Exists Between Keyboard And Chair ».
Le problème se situe entre la chaise et le clavier : soumettez vos histoires, donnez votre avis !
Ce site n'est pas le site original pebkac.fr. Je publie ici la liste des PEBKAC que j'ai pu sauvegarder avant que le site original ne soit mis hors ligne.
Devant réaliser un formulaire de recherche en PHP, je pense naturellement à sécuriser chaque paramètre de mon $_POST pour éviter les vilains pirates et leurs injections SQL.
Pour ce faire, j'ai tout naturellement utilisé… la fonction htmlentities(), ce qui a eu pour effet de transformer ma recherche sur "le métro" en recherche sur "le métro", qui bien sûr n'a renvoyé aucun résultat.

Pour avoir oublié la fonction quote() de PDO, et pour avoir utilisé une fonction destinée uniquement à l'affichage pour de l'échappement SQL : PEBKAC.
PEBKAC #8157 proposé par iFrancois le 13/07/2013 | 10 commentaires | 👍🏽 👎🏽 +68
Pour les paramètres de la POST c'est normal, mon bon monsieur, à la poste ils perdent et mélangent tout.
Commentaire #101770 écrit par Mme Michu le 13/07/2013 à 18h10 | 👍🏽 👎🏽
"Rien ne se perd, rien ne se crée, tout se transforme. À part ce que l'on met sous pli chez la Poste, des fois, ça fait juste pouf." (OC)
Commentaire #101806 écrit par de passage le 13/07/2013 à 23h58 | 👍🏽 👎🏽
Waaaaahhh, tu as eu un instant d'inattention, ça mérite au moins le fouet....
Commentaire #101813 écrit par Mr P. le 14/07/2013 à 00h27 | 👍🏽 👎🏽
> injections SQL ... htmlentities()

Je ne crois pas que cette fonction a pour but de faire ce que tu crois qu'elle fait.

Le vrai PEBKAC étant d'utiliser une API qui impose d'échapper manuellement les données plutôt que des requêtes paramétrées...
Commentaire #101814 écrit par Résoteur le 14/07/2013 à 00h53 | 👍🏽 👎🏽
PDO ? Pourquoi ne pas les avoir préparé ?
Commentaire #101818 écrit par A-xis le 14/07/2013 à 02h22 | 👍🏽 👎🏽
Y a d'autre trucs visiblement qui t'on échappé avec PDO mais c'est pas bien grave une bonne majorité des devs php passent complètement a coté. Ce que tu fait ne sert a rien btw.
Allez une bonne lecture http://php.net/manual/fr/pdo.prepare.php
Commentaire #101830 écrit par cateland le 14/07/2013 à 09h41 | 👍🏽 👎🏽
Sinon, il peut aussi lire la page de la méthode qu'il a utilisée : http://www.php.net/manual/fr/pdo.quote.php ^^
`Si vous utilisez cette fonction pour construire des requêtes SQL, vous êtes vivement invités à utiliser PDO::prepare() pour préparer les requêtes SQL avec des paramètres liés au lieu d'utiliser PDO::quote() pour interpréter les entrées utilisateur dans la requête SQL`
Commentaire #101848 écrit par Anonyme le 14/07/2013 à 11h27 | 👍🏽 👎🏽
Après si tu utilises mysqli, tu peux utiliser mysqli_real_escape_string() pour échappeur tout ce qui vient de l'utilisateur.
Commentaire #101966 écrit par Geekimo le 15/07/2013 à 01h45 | 👍🏽 👎🏽
À un moment j'ai cru qu'il allait parler de magic_quotes_gpc, ouf !
Commentaire #102003 écrit par juu le 15/07/2013 à 09h48 | 👍🏽 👎🏽
ca doit représenter 35% des erreurs sur le SDZ... :D
Tellement courant. ;-)
Commentaire #102141 écrit par Cartman34 le 15/07/2013 à 21h52 | 👍🏽 👎🏽