Je recontre un problème avec les quotes et la methode POST. A partir
d'une base MySQL, je recupere un champs via mysql_fetch_array et
lorsque j'affiche, le resultat est affiché sans souci avec les quotes.
Mais lorsque je le passe dans une methode POST, il coupe tous les
caracteres après la quote (exemple : l'herbe =>l').
J'ai recherché sur le net mais je comprend pas les causes et comment
faire pour eviter ce problème..? De plus, les methodes magic_quote
sont decrites comme dangereuse losqu'on les utilises.
Est ce que quelqu'un peu indiquer comment faire? Existe t il d'autre
methode pour palier à ce problème?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Guillaume Bouchard
maxx wrote:
Salut,
Salut.
Je recontre un problème avec les quotes et la methode POST. A partir d'une base MySQL, je recupere un champs via mysql_fetch_array et lorsque j'affiche, le resultat est affiché sans souci avec les quotes.
Montre ton code html d'affichage, montre ton code php. Bref soit plus précit (bien que j'ai une vague idee de ton problème.
-- Guillaume.
maxx wrote:
Salut,
Salut.
Je recontre un problème avec les quotes et la methode POST. A partir
d'une base MySQL, je recupere un champs via mysql_fetch_array et
lorsque j'affiche, le resultat est affiché sans souci avec les quotes.
Montre ton code html d'affichage, montre ton code php. Bref soit plus
précit (bien que j'ai une vague idee de ton problème.
Je recontre un problème avec les quotes et la methode POST. A partir d'une base MySQL, je recupere un champs via mysql_fetch_array et lorsque j'affiche, le resultat est affiché sans souci avec les quotes.
Montre ton code html d'affichage, montre ton code php. Bref soit plus précit (bien que j'ai une vague idee de ton problème.
-- Guillaume.
Paul Delannoy
maxx a écrit:
Salut,
...>
Est ce que quelqu'un peu indiquer comment faire? Existe t il d'autre methode pour palier à ce problème?
Regardes du cote de mysql_escape_string() J'eqça
Merci d'avance
de rien
maxx a écrit:
Salut,
...>
Est ce que quelqu'un peu indiquer comment faire? Existe t il d'autre
methode pour palier à ce problème?
Est ce que quelqu'un peu indiquer comment faire? Existe t il d'autre methode pour palier à ce problème?
Regardes du cote de mysql_escape_string() J'eqça
Merci d'avance
de rien
P'tit Marcel
maxx wrote:
Je recontre un problème avec les quotes et la methode POST. A partir d'une base MySQL, je recupere un champs via mysql_fetch_array et lorsque j'affiche, le resultat est affiché sans souci avec les quotes. Mais lorsque je le passe dans une methode POST, il coupe tous les caracteres après la quote (exemple : l'herbe =>l').
dans ton formulaire, tu ne devrais pas définir tes champs comme ça <input type='hidden' name='lechamp' value='<?php echo $valeursmysql;?>'>
si tu veux faire quick & dirty, code plutôt : <input type="hidden" name="lechamp" value="<?php echo $valeursmysql;?>">
je laisse les stakhanovistes des guillemets, genre Guillaume 10.85, proposer une approche plus rigoureuse...
a+ -- P'tit Marcel stats sur les forums modérés http://www.centrale-lyon.org/ng/coc/coc3.gif
maxx wrote:
Je recontre un problème avec les quotes et la methode POST. A partir
d'une base MySQL, je recupere un champs via mysql_fetch_array et
lorsque j'affiche, le resultat est affiché sans souci avec les quotes.
Mais lorsque je le passe dans une methode POST, il coupe tous les
caracteres après la quote (exemple : l'herbe =>l').
dans ton formulaire, tu ne devrais pas définir tes champs comme ça
<input type='hidden' name='lechamp' value='<?php echo $valeursmysql;?>'>
si tu veux faire quick & dirty, code plutôt :
<input type="hidden" name="lechamp" value="<?php echo $valeursmysql;?>">
je laisse les stakhanovistes des guillemets, genre Guillaume 10.85,
proposer une approche plus rigoureuse...
a+
--
P'tit Marcel
stats sur les forums modérés http://www.centrale-lyon.org/ng/coc/coc3.gif
Je recontre un problème avec les quotes et la methode POST. A partir d'une base MySQL, je recupere un champs via mysql_fetch_array et lorsque j'affiche, le resultat est affiché sans souci avec les quotes. Mais lorsque je le passe dans une methode POST, il coupe tous les caracteres après la quote (exemple : l'herbe =>l').
dans ton formulaire, tu ne devrais pas définir tes champs comme ça <input type='hidden' name='lechamp' value='<?php echo $valeursmysql;?>'>
si tu veux faire quick & dirty, code plutôt : <input type="hidden" name="lechamp" value="<?php echo $valeursmysql;?>">
je laisse les stakhanovistes des guillemets, genre Guillaume 10.85, proposer une approche plus rigoureuse...
a+ -- P'tit Marcel stats sur les forums modérés http://www.centrale-lyon.org/ng/coc/coc3.gif
Guillaume Bouchard
P'tit Marcel wrote:
dans ton formulaire, tu ne devrais pas définir tes champs comme ça <input type='hidden' name='lechamp' value='<?php echo $valeursmysql;?>'>
si tu veux faire quick & dirty, code plutôt : <input type="hidden" name="lechamp" value="<?php echo $valeursmysql;?>">
Notes que hormis les guillemets, je ne vois pas trop la nuance quick & dirty...
Le problème viens aussi du fait que pour tous champs de formulaires (et affichage de html en general) il faut utiliser htmlspecialchars(). Mais la question était telement precise que j'attendrais des précision avant de conclure définitivement...
je laisse les stakhanovistes des guillemets, genre Guillaume 10.85, proposer une approche plus rigoureuse...
Tu me cherches là ? :)
-- Guillaume. 10.79, Saloperie de thermo !
P'tit Marcel wrote:
dans ton formulaire, tu ne devrais pas définir tes champs comme ça
<input type='hidden' name='lechamp' value='<?php echo $valeursmysql;?>'>
si tu veux faire quick & dirty, code plutôt :
<input type="hidden" name="lechamp" value="<?php echo $valeursmysql;?>">
Notes que hormis les guillemets, je ne vois pas trop la nuance quick &
dirty...
Le problème viens aussi du fait que pour tous champs de formulaires (et
affichage de html en general) il faut utiliser htmlspecialchars(). Mais
la question était telement precise que j'attendrais des précision avant
de conclure définitivement...
je laisse les stakhanovistes des guillemets, genre Guillaume 10.85,
proposer une approche plus rigoureuse...
dans ton formulaire, tu ne devrais pas définir tes champs comme ça <input type='hidden' name='lechamp' value='<?php echo $valeursmysql;?>'>
si tu veux faire quick & dirty, code plutôt : <input type="hidden" name="lechamp" value="<?php echo $valeursmysql;?>">
Notes que hormis les guillemets, je ne vois pas trop la nuance quick & dirty...
Le problème viens aussi du fait que pour tous champs de formulaires (et affichage de html en general) il faut utiliser htmlspecialchars(). Mais la question était telement precise que j'attendrais des précision avant de conclure définitivement...
je laisse les stakhanovistes des guillemets, genre Guillaume 10.85, proposer une approche plus rigoureuse...
Tu me cherches là ? :)
-- Guillaume. 10.79, Saloperie de thermo !
maxx
Alors, je fais la requete SQL de cette maniere : while $row=mysq_fetch_array($query,MYSQL_ASSOC) ou $query est ma requete. { $res[]=$row["nom_de_mon_champ"] } return $res
Ensuite, je recupere les données dans un select (formulaire). Sur l'affichage du formulaire tout est bien affiché (par exemple : 15 de l'Erdre).
Mais lorsque je fais "envoyer" avec mon formulaire avec la methode "POST", je n'ai que "15 de l". Apres la quote, je n'ai plus rien. Pour verifier, j'ai un print_r ($_POST) et toutes les valeurs avec une quote ont le meme problème.
Alors, je fais la requete SQL de cette maniere :
while $row=mysq_fetch_array($query,MYSQL_ASSOC) ou $query est ma
requete.
{
$res[]=$row["nom_de_mon_champ"]
}
return $res
Ensuite, je recupere les données dans un select (formulaire). Sur
l'affichage du formulaire tout est bien affiché (par exemple : 15 de
l'Erdre).
Mais lorsque je fais "envoyer" avec mon formulaire avec la methode
"POST", je n'ai que "15 de l". Apres la quote, je n'ai plus rien.
Pour verifier, j'ai un print_r ($_POST) et toutes les valeurs avec une
quote ont le meme problème.
Alors, je fais la requete SQL de cette maniere : while $row=mysq_fetch_array($query,MYSQL_ASSOC) ou $query est ma requete. { $res[]=$row["nom_de_mon_champ"] } return $res
Ensuite, je recupere les données dans un select (formulaire). Sur l'affichage du formulaire tout est bien affiché (par exemple : 15 de l'Erdre).
Mais lorsque je fais "envoyer" avec mon formulaire avec la methode "POST", je n'ai que "15 de l". Apres la quote, je n'ai plus rien. Pour verifier, j'ai un print_r ($_POST) et toutes les valeurs avec une quote ont le meme problème.
Guillaume Bouchard
maxx wrote:
Alors, je fais la requete SQL de cette maniere :
while $row=mysq_fetch_array($query,MYSQL_ASSOC) ou $query est ma requete.
$row = mysql_fetch_assoc ne convient pas tout autant ? :)
{ $res[]=$row["nom_de_mon_champ"] } return $res
J'ai pas tout compris. Tu ne veux recuperer qu'un tableau contenant qu'un seul champs ?
Alors pourquoi ne pas le faire directement dans le SELECT
$sql = "SELECT nom_de_mon_champ FROM ...";
Ensuite, je recupere les données dans un select (formulaire). Sur l'affichage du formulaire tout est bien affiché (par exemple : 15 de l'Erdre).
Tu peux me dire COMMENT tu affiches ce formulaire ?
Mais lorsque je fais "envoyer" avec mon formulaire avec la methode "POST", je n'ai que "15 de l". Apres la quote, je n'ai plus rien. Pour verifier, j'ai un print_r ($_POST) et toutes les valeurs avec une quote ont le meme problème.
Oki, montre moi comment tu affiches le formulaire.
-- Guillaume.
maxx wrote:
Alors, je fais la requete SQL de cette maniere :
while $row=mysq_fetch_array($query,MYSQL_ASSOC) ou $query est ma
requete.
$row = mysql_fetch_assoc ne convient pas tout autant ? :)
{
$res[]=$row["nom_de_mon_champ"]
}
return $res
J'ai pas tout compris. Tu ne veux recuperer qu'un tableau contenant
qu'un seul champs ?
Alors pourquoi ne pas le faire directement dans le SELECT
$sql = "SELECT nom_de_mon_champ FROM ...";
Ensuite, je recupere les données dans un select (formulaire). Sur
l'affichage du formulaire tout est bien affiché (par exemple : 15 de
l'Erdre).
Tu peux me dire COMMENT tu affiches ce formulaire ?
Mais lorsque je fais "envoyer" avec mon formulaire avec la methode
"POST", je n'ai que "15 de l". Apres la quote, je n'ai plus rien.
Pour verifier, j'ai un print_r ($_POST) et toutes les valeurs avec une
quote ont le meme problème.
Oki, montre moi comment tu affiches le formulaire.
while $row=mysq_fetch_array($query,MYSQL_ASSOC) ou $query est ma requete.
$row = mysql_fetch_assoc ne convient pas tout autant ? :)
{ $res[]=$row["nom_de_mon_champ"] } return $res
J'ai pas tout compris. Tu ne veux recuperer qu'un tableau contenant qu'un seul champs ?
Alors pourquoi ne pas le faire directement dans le SELECT
$sql = "SELECT nom_de_mon_champ FROM ...";
Ensuite, je recupere les données dans un select (formulaire). Sur l'affichage du formulaire tout est bien affiché (par exemple : 15 de l'Erdre).
Tu peux me dire COMMENT tu affiches ce formulaire ?
Mais lorsque je fais "envoyer" avec mon formulaire avec la methode "POST", je n'ai que "15 de l". Apres la quote, je n'ai plus rien. Pour verifier, j'ai un print_r ($_POST) et toutes les valeurs avec une quote ont le meme problème.
Oki, montre moi comment tu affiches le formulaire.
-- Guillaume.
Choub
Le problème vient du fait que tu ne formatte pas tes valeurs. Il faut échapper les caractères spéciaux, tu peux soit les transformer en caractères HTML avec htmlentities() et html_entity_decode(), soit échapper directement les caractères avec addslashes().
Attention à ne jamais enregistrer des données brut qui viennent d'un formulaire HTML dans une base. Il faut toujours formater ton texte suivant les besoins, généralement j'utilise htmlentities() pour l'enregistrement et html_entity_decode() pour l'affichage.
Salutation.
Le problème vient du fait que tu ne formatte pas tes valeurs.
Il faut échapper les caractères spéciaux, tu peux soit les
transformer en caractères HTML avec htmlentities() et
html_entity_decode(), soit échapper directement les caractères avec
addslashes().
Attention à ne jamais enregistrer des données brut qui viennent d'un
formulaire HTML dans une base. Il faut toujours formater ton texte
suivant les besoins, généralement j'utilise htmlentities() pour
l'enregistrement et html_entity_decode() pour l'affichage.
Le problème vient du fait que tu ne formatte pas tes valeurs. Il faut échapper les caractères spéciaux, tu peux soit les transformer en caractères HTML avec htmlentities() et html_entity_decode(), soit échapper directement les caractères avec addslashes().
Attention à ne jamais enregistrer des données brut qui viennent d'un formulaire HTML dans une base. Il faut toujours formater ton texte suivant les besoins, généralement j'utilise htmlentities() pour l'enregistrement et html_entity_decode() pour l'affichage.
Salutation.
maxx
C'etait bien ça! en fait lors de la génération en code html, les quotes qui entouré le code HTML se confondé avec les valeurs contenant une quote. Exemple : "<input type='text' value='l'herbe'>"
Merci
C'etait bien ça! en fait lors de la génération en code html, les
quotes qui entouré le code HTML se confondé avec les valeurs
contenant une quote.
Exemple : "<input type='text' value='l'herbe'>"
C'etait bien ça! en fait lors de la génération en code html, les quotes qui entouré le code HTML se confondé avec les valeurs contenant une quote. Exemple : "<input type='text' value='l'herbe'>"