htmlentities et ereg

WRInaute impliqué
bonjour

j'ai une question toute bête:

si lors d'une saisie de formulaire la chaine $donnee est le caractere " (guillemets) :

apres ceci:

Code:
$donnee=htmlentities($_POST['donnee']);

$donnee devient "

mais si apres on fait ceci:

Code:
if (ereg ("[\"]", $donnee))
   {
    /* on a trouvé des guillement !!!!!!! */
   }

pourquoi il me detecte des guillement dans " ?

il est où le truc que je pige pas?

un coup de pouce d'un pro du php ?

merci et bon surf sur WRI !

bonne soiree
 
WRInaute impliqué
LiFi a dit:
est-ce que tu as un caractère \ dans $_POST['donnee'] ?

euh... je sais pas, a priori non

je viens de regarder dans l'entete http:

Code:
Content-Type: application/x-www-form-urlencoded
Content-Length: 68
etablissement=%22&champs1=&champs2=&champs3=&champs4=

champs1, champs2, champs3, et champs4 sont les 4 champs de mon formulaire

le caractere " est transformé en %22 par je ne sais quel miracle (firefox ?)

merci de ton coup de pouce ;-)

apres ces infos peut tu m'en dire plus stp ? je ne suis pas familié des http header :oops:

a+
bonne soirée !
merci
 
WRInaute impliqué
Leonick a dit:
fait un print_r($_POST) pour afficher le contenu de _POST

salut

print_r($_POST['donnee']);

me donne:

" (dans le code source)
" (à l'affichage)

comprends toujours pas pourquoi

Code:
if (ereg ("["]", $donnee)) 
   { 
    /* on a trouvé des guillement !!!!!!! */ 
   }

me detecte des guillements....

y a un truc qui m'echape :cry:
 
WRInaute accro
le charset que tu met dans ton <head> c'est coté client, donc c'est ton navigateur qui se charge de faire la transcription

avec ton code tu es coté php donc coté serveur, pour decoder de l'iso tu peux uliser cette fonction php

Code:
<?php echo html_entity_decode("&quot;");  ?>
affiche un guillement (")

et au passage il faut oublier les fonctions ereg et utiliser des preg.. et cette syntaxe [\"] c'est bon pour le moteur rewrite, pas celui des pcre, tu dois utiliser !["] ou tout simplement !"

voila ton ptit snipet:

Code:
<?php

$donnee ="&quot;";
$donnee = html_entity_decode($donnee);

if ( preg_match('/!"/', $donnee ) )
  echo 'on a trouvé des guillement !!!!!!! ';
  else  echo 'on a PAS trouvé des guillement !!!!!!! ';

?>

te reste plus qu'a adpater ton script :)
 
Discussions similaires
Haut