Caractère % dans un text saisie

rogaleur Messages postés 4 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 11 mai 2010 - 10 mai 2010 à 17:12
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 11 mai 2010 à 18:13
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

Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
10 mai 2010 à 22:52
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
0
rogaleur Messages postés 4 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 11 mai 2010
11 mai 2010 à 09:32
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.
0
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
11 mai 2010 à 10:59
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 \% ? :)
0
rogaleur Messages postés 4 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 11 mai 2010
11 mai 2010 à 14:01
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
11 mai 2010 à 16:23
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')";
?>
0
rogaleur Messages postés 4 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 11 mai 2010
11 mai 2010 à 16:48
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%
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
11 mai 2010 à 18:13
Salut,

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


Cordialement,


Kohntark -
0
Rejoignez-nous