Probléme avec / et caractéres spéciaux

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probléme avec / et caractéres spéciaux

par Nathou » 16 juin 2009, 21:37

Salut,
tu peux également utiliser
htmlentities(addslashes(nl2br($val)))
pour encoder les caractères spéciaux dans la base de données, et ensuite
html_entity_decode(stripslashes($val))
pour décoder tes valeurs.
Ça marche niquel !

Merci pour vos réponses, AB je garde ton lien dans mes favoris, je regarderais de plus prêt quand j'aurais un peu de temps, ça à l'air intéressant 8-)

par AB » 16 juin 2009, 20:37

Salut,
tu peux également utiliser
htmlentities(addslashes(nl2br($val)))
pour encoder les caractères spéciaux dans la base de données, et ensuite
html_entity_decode(stripslashes($val))
pour décoder tes valeurs.
Avant cette solution un peu extrême à mon goût, peut être regarder un tuto sur l'encodage utf-8 http://www.phpfrance.com/forums/voir_sujet-245062.php

par Wolfgang » 16 juin 2009, 20:11

Salut,
tu peux également utiliser
htmlentities(addslashes(nl2br($val)))
pour encoder les caractères spéciaux dans la base de données, et ensuite
html_entity_decode(stripslashes($val))
pour décoder tes valeurs.

par Aureusms » 16 juin 2009, 18:48

Je crois que les formulaires sont codés en UTF8 par défaut, un truc comme cela.
Essaye avec utf8_decode() pour voir ce que donne ton formulaire avant d'entrer la phrase dans la base.

Pour les \\\ tu as soit un addslashes() ou sont équivalent mysql quelque part soit tu as activé les magic-quote soit les deux (addslashes ou son équivalent + magic_quote)

Probléme avec / et caractéres spéciaux

par Nathou » 16 juin 2009, 17:57

J'ai un formulaire dans lequel j'entre un texte, qui est ensuite envoyé dans ma base de donnée, puis repris sur une autre page, le problème :

Le texte que je rentre :
Bonjour et bienvenue, j'aurais aimé être de la partie !
Le même texte qui arrive dans la BDD :
Bonjour et bienvenue, j'aurais aimé être de la partie !
Le même texte qui arrive sur l'autre page :
Bonjour et bienvenue, j\\\'aurais aimé être de la partie !
Au niveau du php :
Le texte que je rentre :
$patterns[] = "#\[fc\]([a-z0-9\#]+)\[/fc\](.*?)\[/f\]#Ssi";
          $replacements[] = '<font color="\1">\2</font>';
          $patterns[] = '#\[img\](.*?)\[/img\]#Smi';
          $replacements[] = '<img src="\1" alt="\1" style="border:0px;" />';
          $patterns[] = "#\[fc\]([a-z0-9\#\ \[\]]+)\[/fc\]#Ssi";
          $replacements[] = '<font color="\1">';
          $patterns[] = "#\[/f\]#Ssi";
          $replacements[] = '</font>';
          $ally['ally_description'] = preg_replace($patterns, $replacements, $ally['ally_description']);
          $lang['ally_description'] = nl2br($ally['ally_description']);
Le même texte qui arrive sur l'autre page :
if ($ally_description != "")
        {
          $ally_description = "<tr><th colspan=2 height=100>{$ally_description}</th></tr>";
        }
J'aimerais donc savoir ce qui ne va pas, pourquoi mon texte arrive t'il dans la BDD sous cette forme ; et s'il n'est pas possible de le faire arrivé avec une forme normale dans la BDD, comment "décoder" le texte qui est dans la BDD pour qu'il s'affiche sous une forme normale dans l'autre page?

Merci à ceux qui m'aideront :)