Insérer un contre-slash dans base de données MySQL
Résolu
david77179
Messages postés
157
Date d'inscription
Statut
Membre
Dernière intervention
-
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
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
A voir également:
- Contre slash
- 3d slash - Télécharger - 3D
- Slash droit ✓ - Forum Autres distributions Linux
- Le signe " | " dans excel - Forum Excel
- Barre verticale droite sur clavier mac - Forum MacOS
- Anti slash ✓ - Forum Réseau
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.
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
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
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
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
ou avant l'insertion
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
..."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 :
ç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
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
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
Non non, c'est bien une obligation !
Le mieux est encore d'utiliser PDO, maintenant.