Permettre les ",' dans un champs
Résolu
samghami
Messages postés
61
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour, j'ai créer un système de profil etc... pour mon site.
Le problème étant que lorsqu'un utilisateur écrit un " ou ' cela ne fonctionne plus.
MySQL déclare une erreur, comment faire?
En plus lorsque j'ecrit le nom d'une variable ou autre l'on peur afficher le contenue etc... ce que je ne veux pas!
comment faire cela?
Le problème étant que lorsqu'un utilisateur écrit un " ou ' cela ne fonctionne plus.
MySQL déclare une erreur, comment faire?
En plus lorsque j'ecrit le nom d'une variable ou autre l'on peur afficher le contenue etc... ce que je ne veux pas!
comment faire cela?
A voir également:
- Permettre les ",' dans un champs
- Champs calculé tcd formule si - Forum Excel
- Le nom du champs de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
- Tableau croisé, fonction SI dans un calcul ✓ - Forum Excel
- Afficher champs de tableau croisé dynamique - Guide
- Générique champs elysées john miles - Forum Musique / Radio / Clip
5 réponses
salut,
pour les " et ' tu peux utiliser des fonctions d'encodage (que tu peux trouver facilement sur internet si tu avais cherché)
et pour ton histoire de variable qu'on peux afficher en nottant son nom dans une zone de texte, tu devrais revoir ton code, utiliser des les " (double quote) pour afficher tes messages (vu que les doubles quote n'interprète pas les variables).
vérifier le code concerné par l'affichage du contenu de ta variable (il y as probablement un détail qui provoque l'erreur)
pour les " et ' tu peux utiliser des fonctions d'encodage (que tu peux trouver facilement sur internet si tu avais cherché)
et pour ton histoire de variable qu'on peux afficher en nottant son nom dans une zone de texte, tu devrais revoir ton code, utiliser des les " (double quote) pour afficher tes messages (vu que les doubles quote n'interprète pas les variables).
vérifier le code concerné par l'affichage du contenu de ta variable (il y as probablement un détail qui provoque l'erreur)
Oui mais pour l'insérer le mettre dans la base de données je fais comment ?
j'ai mis cela:
Mais cela ne fonctionne pas :-/
if (isset($_POST["statue"])) { extract($_POST); $statue = addslashes($statue); $_POST['statue'] = htmlspecialchars($_POST['statue']); $statue = htmlspecialchars($_POST["statue"]); $auteur = $userrow['charname']; $profil_name = $utilisateurrow["charname"]; $query = doquery("INSERT INTO {{table}} SET id='',date=NOW(),profil_name='$profil_name', content='$statue', auteur='$auteur'", "dynabook"); }
Mais cela ne fonctionne pas :-/
salut,
avants de mettre les post ou get dans une base de donnée, tu fais les fait passer en parametre dans la fonction mysql_real_escape_string(); et tu recuperes la sortie, normalement ca resoudera ton probleme...
avants de mettre les post ou get dans une base de donnée, tu fais les fait passer en parametre dans la fonction mysql_real_escape_string(); et tu recuperes la sortie, normalement ca resoudera ton probleme...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Il y a aussi la fonction "addslashes($maChaine);" qui permet d'échapper les caractères tels que les quote, afin d'éviter qu'ils ne soient détecter comme des fins de chaîne par les scripts.
Une fois les infos en base, on les récupère normalement et on enlève les antislashes en trop par la méthode "stripslashes($maChaine);"
Mihawk
"The Weapon of Choice"
Il y a aussi la fonction "addslashes($maChaine);" qui permet d'échapper les caractères tels que les quote, afin d'éviter qu'ils ne soient détecter comme des fins de chaîne par les scripts.
Une fois les infos en base, on les récupère normalement et on enlève les antislashes en trop par la méthode "stripslashes($maChaine);"
Mihawk
"The Weapon of Choice"
voila ce que j'ai mis:
extract($_POST);
$statue = addslashes($statue);
sont (selon moi) complètement inutile (enfin surtout la seconde, mais d'après ce que dit la doc sur extract(), c'est pas utile non plus)
$statue ne contient rien, toi tu ajoute des \ mais en prime tu écrase l'éventuel valeur de $statue pour la remplacer par $_POST['statue']
pour l'encodage, tu peux utiliser ça: https://www.php.net/manual/fr/function.urlencode.php
tu stock les chaines encodé dans ta base, et tu les décodes quand tu veux les lire
si par exemple dans ta variable $statue se trouve la chaine $auteur: actuellement la méthode doquery feras la conversion $statue->$auteur->$userrow['charname']->machin
donc il faut utiliser une méthode qui encoderas le $ de $statue afin que la chaine soit enregistré comme tel.
bon après il existe probablement un truc plus simple, mais je pars du principe qu'un développeur dois avoir le contrôle des données qu'il traite, donc tu peux faire tout les traitements que tu veux a tes données, si tu fait les traitement inverse pour pouvoir les lire, ça passe
Car je débute vraiment dans le webmastering (si tu préfère j'ai que 16 ans et je fais ça que depuis 9-10 mois :) )