Bonjour, je cherche la bonne solution pour enregistrer les noms d'utilisateurs sur mon site correctement.
j'ai un problème avec les caracères spéciaux.
Lorsque je fais une requête préparée avec pdo pour obtenir les information de mon utilisateur et que que je j'exécute en lui passant le nom d'utilisateur en tableau, si le nom d'utilisateur contient des "é" ou autre caratère spécial, la requête sql ne retourne rien.
Voici à quoi ressemble la fonction dans mon code :
$sql = "SELECT * FROM users WHERE user_name=:username";
try {
$stmt = $this->pdo->prepare($sql);
$stmt->execute([
"username" => $username
]);
$result = $stmt->fetch();
return $result;
} catch (\Exception $e) {
die($e);
}
Ce que je veux savoir :
Est-ce que c'est une bonne pratique de sauver dans la base de données des "é" ou autres ou est ce qu'il faut mettre des "á" à la place (la fonction htmlentities de php)
Est-ce que c'est normal que la requête préparée ne fonctionne pas avec des caractères spéciaux en condition (WHERE) alors qu'ils sont bien présents dans la bdd
Merci.
| Est-ce que c'est une bonne pratique de sauver dans la base de données des "é" ou autres ou est ce qu'il faut mettre des "á" à la place (la fonction htmlentities de php)
Surtout pas pour en parti les raisons indiquées ici : Ne pas confondre faille par injection SQL et faille XSS