Caractère % dans un text saisie

Signaler
Messages postés
4
Date d'inscription
lundi 7 février 2005
Statut
Membre
Dernière intervention
11 mai 2010
-
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
-
Dans un texte que je saisie il y a le caractère %. Lorsque je fais mon sprintf(insert ....) cela me provoque un message d'erreur uniquememt lorsque j'ai le caractère %
Comment traiter ce problème.
merci de votre réponse

7 réponses

Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
7
Salut,

Si tu veux t'assurer que le % ne soit pas analysé il faut que tu le doubles (%%).

Exemple:
<?php
    sprintf('%% = pourcentage %d', 5);
?>


Documentation:
http://ca3.php.net/manual/en/function.sprintf.php
Messages postés
4
Date d'inscription
lundi 7 février 2005
Statut
Membre
Dernière intervention
11 mai 2010

la séquence exacte est celle-ci :
$comment = addslashes(trim($_POST['rte1']));
$insertSQL = sprintf("INSERT INTO table ( commentaire) VALUES ( '$comment')",


je ne vois pas bien comment intégrer les modifs que tu me proposes dans ma programmation.
merci d'avoir répondu si rapidement et mes excuses pour le dérangement, mais là franchement je cale.
Messages postés
255
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
4
Heu sauf erreur de ma part si tu donne a sprintf un % non protege il va attendre un type de donnees a afficher, tu as essaye \% ? :)
Messages postés
4
Date d'inscription
lundi 7 février 2005
Statut
Membre
Dernière intervention
11 mai 2010

je m'apperçois que ci je frappe dans mon texte 2 fois le %%, il n'y a pas d'erreur et dans mon texte je reçois uniquement un %.

si je frappe \% dans le texte cela provoque l'erreur.

comment donc intégrer dans ma séquence le doublage automatique du %
merci
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
7
Le plus simple c'est d'utiliser un str_replace pour remplacer tes % par des %%.

<?php
$comment = str_replace('%','%%', addslashes(trim($_POST['rte1'])));
$insertSQL = sprintf("INSERT INTO table ( commentaire) VALUES ( '$comment')";
?>
Messages postés
4
Date d'inscription
lundi 7 février 2005
Statut
Membre
Dernière intervention
11 mai 2010

Là, tu es un big chef, super, ça marche.
Heureusement j'étais un peu démoralisé.
merci encore de ton action et du suivi des problèmes que l'on rencontre.
efficacité 100%
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

J'ai une question con : à quoi le sprintf sert-il ??


Cordialement,


Kohntark -