Apostrophes et guillemets SQL
Résolu
Lala
-
Breub62 Messages postés 2989 Date d'inscription Statut Membre Dernière intervention -
Breub62 Messages postés 2989 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Tout d'abord j'ai déjà exposé mon problème hier mais je m'étais trompé dans le type de problème ce qui a donné un titre un peu HS donc je recommence:
Je dois faire une page d'accueil dans laquelle je peux modifier le contenu et le titre. Dans ma bdd le "accueil_contenu_fr" est de type TEXT et le "accueil_titre_fr" est de type VARCHAR.
Le problème c'est que lorsque dans le titre ou le contenu j'ai le malheur de placer une apostrophe j'ai une erreur de ce type (dans ce cas j'ai écris l'eau dans mon titre):
En bidouillant tout à l'heure j'ai réussi à afficher les apostrophes... Mais les guillemets ne marchaient plus.
Voici une partie du code, si quelqu'un a besoin du reste je le mettrait mais je ne pense pas que le problème vienne d'ailleurs:
Comme vous vous en doutez j'aimerais pouvoir afficher des apostrophes ET des guillemets dans mes titres/textes.
Tout d'abord j'ai déjà exposé mon problème hier mais je m'étais trompé dans le type de problème ce qui a donné un titre un peu HS donc je recommence:
Je dois faire une page d'accueil dans laquelle je peux modifier le contenu et le titre. Dans ma bdd le "accueil_contenu_fr" est de type TEXT et le "accueil_titre_fr" est de type VARCHAR.
Le problème c'est que lorsque dans le titre ou le contenu j'ai le malheur de placer une apostrophe j'ai une erreur de ce type (dans ce cas j'ai écris l'eau dans mon titre):
Erreur de syntaxe pr?s de 'eau', accueil_fr_contenu='
En bidouillant tout à l'heure j'ai réussi à afficher les apostrophes... Mais les guillemets ne marchaient plus.
Voici une partie du code, si quelqu'un a besoin du reste je le mettrait mais je ne pense pas que le problème vienne d'ailleurs:
$titre=($_POST['accueil_fr_titre']); $contenu= ($_POST['accueil_fr_contenu']); $requete="UPDATE accueil_fr SET accueil_fr_titre='$titre', accueil_fr_contenu='$contenu'";
Comme vous vous en doutez j'aimerais pouvoir afficher des apostrophes ET des guillemets dans mes titres/textes.
A voir également:
- Apostrophes et guillemets SQL
- Guillemets anglais - Guide
- Logiciel sql - Télécharger - Bases de données
- Sql lister les tables ✓ - Forum Programmation
- Guillemets français google doc ✓ - Forum Windows
- Requête sql pix - Forum Python
6 réponses
Me revoilà... Désolé ;-)
Je crois que pour éviter d'avoir tout problème d'insertion un mysql_real_escape_string() permet de transmettre ta chaîne quelque soit le caractère qui pourrait clore ta chaine de caractère.
Tu aurais quelque chose du genre :
et après (normalement) tu peux insérer $titre sans problème...
Je crois que pour éviter d'avoir tout problème d'insertion un mysql_real_escape_string() permet de transmettre ta chaîne quelque soit le caractère qui pourrait clore ta chaine de caractère.
Tu aurais quelque chose du genre :
$titre=mysql_real_escape_string($_POST['accueil_fr_titre']);
et après (normalement) tu peux insérer $titre sans problème...
Tiens bonjour Breub :)
Merci beaucoup je galérais depuis hier mais ça marche enfin grâce à toi!!!
J'ai une dernière question, mysql_real_escape_string() ne pose pas de problème de sécurité? Car même si dans l'absolu l'admin sera le seul à avoir accès à ces modifications j'aimerais utiliser cette fonction ailleurs.
Merci beaucoup je galérais depuis hier mais ça marche enfin grâce à toi!!!
J'ai une dernière question, mysql_real_escape_string() ne pose pas de problème de sécurité? Car même si dans l'absolu l'admin sera le seul à avoir accès à ces modifications j'aimerais utiliser cette fonction ailleurs.
Non c'est d'ailleurs presque une obligation de sécurité de le mettre, ça permet notamment d'éviter les injections sql. J'aurais dû y penser hier mais il y a des jours...
https://www.commentcamarche.net/contents/56-attaques-par-injection-de-commandes-sql
Donc à chaque variable postée (c'est à dire qui vient de l'utilisateur), tu dois faire un mysql_real_escape_string() avant d'interroger ta base...
Bonne continuation.
https://www.commentcamarche.net/contents/56-attaques-par-injection-de-commandes-sql
Donc à chaque variable postée (c'est à dire qui vient de l'utilisateur), tu dois faire un mysql_real_escape_string() avant d'interroger ta base...
Bonne continuation.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re!
J'ai un nouveau soucis :(
En faite depuis que j'utilise les "mysql_real_escape_string()" j'ai des soucis au niveau du TEXTAREA que j'utilise: je ne peux plus mettre de limite de taille sur une ligne, avant j'avais mit un "max-lenght" pour les images dans le css, et pour ce qui est de la taille du texte, le script tinyMCE que j'utilise allait tout seul à la ligne... Maintenant je peux écrire un nombre infini de caractère sur 1 ligne dans mon textarea (qu'on peut faire défilé avec un scroll du coup) et quand j'enregistre ça dans ma bdd pour le ressortir ensuite, ça ressort tout sur une ligne en sortant du "cadre" du site... D'un coté je me dis que ça n'a rien à voir avec la fonction, de l'autre je n'ai fais aucune modifications à part celle là.
J'ai un nouveau soucis :(
En faite depuis que j'utilise les "mysql_real_escape_string()" j'ai des soucis au niveau du TEXTAREA que j'utilise: je ne peux plus mettre de limite de taille sur une ligne, avant j'avais mit un "max-lenght" pour les images dans le css, et pour ce qui est de la taille du texte, le script tinyMCE que j'utilise allait tout seul à la ligne... Maintenant je peux écrire un nombre infini de caractère sur 1 ligne dans mon textarea (qu'on peut faire défilé avec un scroll du coup) et quand j'enregistre ça dans ma bdd pour le ressortir ensuite, ça ressort tout sur une ligne en sortant du "cadre" du site... D'un coté je me dis que ça n'a rien à voir avec la fonction, de l'autre je n'ai fais aucune modifications à part celle là.