addslashes sur les valeurs d'un $_POST ;

a marqué ce sujet comme résolu.

Bonjour à tous,

Je viens solliciter votre aide. J’essai d’échapper les valeur d’un tableau $_POST dans un foreach comme ceci :

1
2
3
4
5
6
foreach ($_POST as $key => $value) {
  $_POST["key"] = addslashes($value);
}

$requete = "SELECT * FROM client WHERE client_nom = '" . $_POST["client_nom"] . "'";
$query = query_execute($requete);

Rien ne se passe et j’obtient une erreur relative à la requête SQL, tandis que si je remplace le POST["key"] dans le foreach par POST["client_nom"] ça marche mais seulement sur "client_nom", j’aurais souhaité que ça s’applique à tous les $_POST…

+0 -0

Vaut mieux éviter de faire ça comme ça pour ce qui concerne les requête : les requêtes préparées sont fortement conseillées.

De plus addslashes n’est pas la méthodes à utiliser pour échaper les éléments dans une requête sql, c’est mysqli_real_escape_string qu’il faut utiliser (si tu utilises mysqli) ou $pdo->quote si tu utilises PDO.

"key" est la chaîne de caractères "key", pas la variable $key. Retourne à ton code et essaye de comprendre mon message. :)

Après, quand t’as bien compris, écoute artragis, il a raison !

victor

Bonjour victor, merci pour ta remarque, mais en fait j’ai déjà essayer de remplacer par $key mais ça me retourne toujours la même erreur, là je vais me pencher sur les requêtes préparées comme me l’a conseillé artragis…

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte