Insérer un contre-slash dans base de données MySQL
Résolu
david77179
Messages postés
172
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour à tous,
J'ai un petit problème tout bête avec un formulaire HTML. J'ai une case commentaires et lorsque je veux y insérer un apostrophe forcément ça coince...
Comment faire pour insérer automatiquement un contre-slash devant cet apostrophe ?
Merci de votre aide.
Cordialement,
David
--
Une fois le problème résolu, pensez à cliquer sur le lien "Marquer comme résolu " =D
Vive les communautés d'entre aides et surtout CommentçaMarche.net
J'ai un petit problème tout bête avec un formulaire HTML. J'ai une case commentaires et lorsque je veux y insérer un apostrophe forcément ça coince...
Comment faire pour insérer automatiquement un contre-slash devant cet apostrophe ?
Merci de votre aide.
Cordialement,
David
--
Une fois le problème résolu, pensez à cliquer sur le lien "Marquer comme résolu " =D
Vive les communautés d'entre aides et surtout CommentçaMarche.net
4 réponses
-
Bonjour
Comme il est indiqué dans le lien donné par nagashima, il NE FAUT PAS utiliser addslashes dans une requête pour une base de données.
Il faut utiliser mysql_real_escape string, ou mysqli_real_escape string ou une requête préparée (PDO) selon l'interface utilisée pour la base de données. Elles sont faites spécialement pour ça.
Et il n'y a rien à retirer pour l'affichage. Les slashes insérés ne sont insérés que dans la requête, pas dans la base, ils ne sont donc pas relus quand on extrait les données. -
salut,
Ton traitement se fait via php je suppose ? il y a une méthode qui fait ca bien :
addslashes
https://www.php.net/manual/fr/function.addslashes.php
naga -
Merci de ta réponse aussi rapide :)
C'est ce que j'essai de faire sauf que je ne sais pas où placer
<?php echo addslashes($coms); ?>
Dans la déclarations des variables ? après ? avant ? dans mon formulaire ?
La est mon problème. Là c'est placé juste après la déclaration des variables et ca ne fonctionne pas...
Merci :)
Une fois le problème résolu, pensez à cliquer sur le lien "Marquer comme résolu " =D
Vive les communautés d'entre aides et surtout CommentçaMarche.net-
et bien si le problème se pose au moment de l'insertion dans ta table, c'est à ce moment là, par exemple
..."INSERT INTO latable (lachaine) VALUES (" .addslashes($coms) . ")"...
ou avant l'insertion$coms=addslashes($coms);
en pensant après que pour ton affichage, il te faudra peu être les retirer avec stripslashes :
http://www.php.net/manual/fr/function.stripslashes.php
-
-
Merci de vos réponses :)
En faisant comme ca :
$coms = addslashes ($_POST['coms']);
ça fonctionne niquel :)
Par le plus grand des hasards vous ne voyez pas une méthode pour l'appliquer à toutes les pages et toutes les variables ?
Encore merci :)
Une fois le problème résolu, pensez à cliquer sur le lien "Marquer comme résolu " =D
Vive les communautés d'entre aides et surtout CommentçaMarche.net-
niquel.
Par contre, comme l'à dit le père, il est préférable d'utiliser les fonctionnalité pdo prévu à cet effet. Dans ton cas l'échappement est suffisant mais ce serai plus .... "correct".
Pour ce qui est de l'appliquer à chaque variables, il ne me semble pas qu'il y a un paramètre qui échappera systématiquement lors d'insertion dans ta bdd, à vérifier mais j'en doute fortement ... donc pour échapper toutes tes variables ... il faut échapper toutes tes variables x) mais bon, normalement tu n'a à le faire que lors de communication avec la bdd (ou lors des post pour éviter les injections, mais ce n'est pas dans le même but ni strictement le même traitement).
naga -
-