Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1650 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  htmlentities()

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

htmlentities()

n°1365983
Aguila73
Posté le 14-05-2006 à 19:25:42  profilanswer
 

Bonjour,
Alors voilà, pour des raisons de codage que je n'arrive pas à résoudre au niveau de ma BDD, je veux utiliser htmlentities. Quand j'essaye l'exemple de la doc PHP, ca ne marche pas:
 
<?php
$new = htmlentities("<a href='test'>Test</a>", ENT_QUOTES);
echo $new;  
// &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>
 
et ca m'affiche à l'écran:
 
<a href='test'>Test</a>, c'est à dire, que htmlentites n'a rien fait...  :cry:  
 
Pourquoi?  :??: Merci d'éclairer ma lanterne!

mood
Publicité
Posté le 14-05-2006 à 19:25:42  profilanswer
 

n°1365988
FlorentG
Unité de Masse
Posté le 14-05-2006 à 19:30:54  profilanswer
 

Sisi, il a fait ce qu'il fallait, à savoir transformer tous les caractères bizarres en leur entités (y compris <, >, ', ", et & ). Du coup forcément le truc n'est plus interprété :(

n°1365992
Aguila73
Posté le 14-05-2006 à 19:42:48  profilanswer
 

A oki, merci beaucoup, mais j'ai étais un peu idiot sur ce coup là^^...
Alors autre problème. Ca, c'était un "problème" apparu suite a un "débogage"; j'explique:
 J'ai un script qui appelle une variable dans une base de données.
Cette variable contient des caractères spéciaux, à savoir des "é", des "à" etc...Le navigateur me remplace tout par des "?", des ",", des "..." ...
Donc, on m'a dit sur le forum de EasyPHP que c'était un problème d'encodage, mais j'ai pas réussi à corriger le problème. (d'ailleurs si vous savez comment faire sans passer par htmlentities()... :jap: ).
 
Je me résout donc à opter pour cette dernière option.
 
Je récupère ma variable.
Je lui applique htmlentities.
 
Résultat: toujours pareil, ca n'a rien modifié, et quand je vais voir dans le source de ma page les "," (normalement devant être des "é" ) par exemple, restent des "," et non des &code;
 
Voilà. Ceci est mon véritable problème sur lequel je lutte depuis pas mal de temps...
Toujours prêt à m'aider?  :(  
 
Merci!

n°1365993
FlorentG
Unité de Masse
Posté le 14-05-2006 à 19:44:32  profilanswer
 

L'encodage de la base de données est lequel ? UTF-8 ? iso-8859-1 ? Parce que sinon y'aurait la solution de mettre toutes tes pages dans le même encoding que celui de la base, y'aurait plus de probs. Ou alors de changer l'encoding de la base lors de sa création...

n°1365996
Aguila73
Posté le 14-05-2006 à 19:49:41  profilanswer
 

Je ne connais pas l'encodage de ma base, par contre je connais celui de mes tables. La table qui m'interesse est en latin1_general_ci, et les champs à l'intérieur en latin1_swedish_ci (je ne sais pas comment les modifier...).
Mes pages sont en ISO-8859-1.

n°1366025
Aguila73
Posté le 14-05-2006 à 21:10:24  profilanswer
 

Personne n'a une petite idée?  :??: J'ai essayé encore de chercher, et toujours rien trouver de bien convaincant.
Merci.

n°1366031
FlorentG
Unité de Masse
Posté le 14-05-2006 à 21:16:27  profilanswer
 

Bah si toute la chaîne est en iso-8859-1, devrait pas y avoir de problème...  (latin1 = iso-8859-1)... Pour le coup du swedish machin, c'est juste par exemple pour les comparaisons de chaînes, donc ça ne devrait pas influer l'encodage des strings...
 
Peut-être l'encodage par défaut de Mysql ? (C'est la 4.1) ?

n°1366039
Aguila73
Posté le 14-05-2006 à 21:36:24  profilanswer
 

Ok, mes tables et mes champs sont tous codés en latin1 maintenant (latin1_swedish_ci) et toujours ce problème. Bon je crois que je vais voir si il n'existe pas une petite fonction php qui pourrait résoudre mon problème. :sweat:  
Car la fonction htmlentities convertit certains comme les < > & etc... mais comment convertir tous les autres? (, ; : ( ) etc...)??
merci par avance. :hello:

n°1366041
FlorentG
Unité de Masse
Posté le 14-05-2006 à 21:41:20  profilanswer
 

Hum... Mais quand t'affiche le code source de la page, y'a quoi ? En regardant les header HTTP (des fois qu'il y aurait un charset: utf-8) ?

n°1366042
Aguila73
Posté le 14-05-2006 à 21:47:23  profilanswer
 

Merci de prendre du temps pour moi, jsuis désolé avec mes problèmes de débutant  :sweat:  
 
Dans mon code source, je suis bien en 8859-1...
 
<head>
<title>Accueil</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>

 
(au fait, ma version de MySQL est la 4.1.9, fournie avec EasyPHP 1.8)
 
Encore merci!

mood
Publicité
Posté le 14-05-2006 à 21:47:23  profilanswer
 

n°1366044
FlorentG
Unité de Masse
Posté le 14-05-2006 à 21:53:13  profilanswer
 

Et quand tu regardes la base par exemple avec phpMyAdmin, ou Mysql query Browser, comment s'affichent les données ?

n°1366047
Aguila73
Posté le 14-05-2006 à 21:57:38  profilanswer
 

Avec PMA, les données s'affichent avec des caractères bizarres (les mêmes que dans mes pages) (je ne pense pas que le probleme vienne donc de mes pages...) :heink:  
Quand j'affiche les données avec le shell Dos, les données sont bien retranscrites.
 
Mais est-ce qu'il n'yaurait pas eu un bug ou quelque chose dans le genre tout au début de la création de ma base? :??:

n°1366069
FlorentG
Unité de Masse
Posté le 14-05-2006 à 22:42:06  profilanswer
 

Il y a peut-être eu un problème lors de l'insertion. Faudrait tout réinsérer :D

n°1366073
Aguila73
Posté le 14-05-2006 à 22:55:03  profilanswer
 

Oui je crois que c'est le seul truc qu'il reste à faire. Heureusement que j'avais tout mis dans un fichier texte...!! :sol:

n°1366077
FlorentG
Unité de Masse
Posté le 14-05-2006 à 22:56:04  profilanswer
 

Yeah ! Vérifie aussi l'encoding du fichier texte, ça peut venir de ça. Genre si le fichier est en utf-8, ça risque de foirer :)

n°1366086
Aguila73
Posté le 14-05-2006 à 23:02:32  profilanswer
 

Bon, je viens de tout recréer (y'avait pas grand chose), le fichier texte était bien en ANSI...
Toujours le même problème. Ca me soule, je pète un câble  :fou:  !!! Je verrais çà une autre fois je crois!  
Merci bien de tes réponses, j'espère que ca pourra en aider d'autres!
Bye!

n°1366089
FlorentG
Unité de Masse
Posté le 14-05-2006 à 23:04:49  profilanswer
 

Attention, ANSI et iso, c'est pas pareil, ça peut venir de là

n°1366092
Aguila73
Posté le 14-05-2006 à 23:09:09  profilanswer
 

??? Une lueur d'espoir!!! :love:  Dans le bloc-notes, j'ai pas beaucoup de choix...
ANSI
Unicode
Unicode big endian
UTF-8
 
Faut-il utiliser un logiciel spécial?  :??:

n°1366096
FlorentG
Unité de Masse
Posté le 14-05-2006 à 23:14:14  profilanswer
 

Ah moins que... Je sais pas, en utilisant un autre éditeur de texte ?

n°1366103
Aguila73
Posté le 14-05-2006 à 23:23:38  profilanswer
 

nan mais en fait, je pense pas que le problème vienne de là tout bien réfléchi, car ce qui se trouve dans mon fichier txt, je l'implante dans ma base avec copier/coller...Bon, je sais pas d'où vient mon problème, mais c'est grave docteur!! Que ceux qui ont le même problème se disent qu'ils sont dans une galère monstre! ^^ Nan, sérieux, ca fait pas rire c't'affaire! :fou:  
Bon allez, je go dodo! Merci FlorentG pour ton aide, sympa!
Bye!

n°1366107
FlorentG
Unité de Masse
Posté le 14-05-2006 à 23:28:00  profilanswer
 

Ok ouais bonne nuit :D

n°1366158
Aguila73
Posté le 15-05-2006 à 08:45:09  profilanswer
 

Re salut!
Alors voilà, ce matin j'ai testé avec htmlentities, ca marchait pas. Du coup, j'ai essayé de travailler sous PMA au lieu de travailler sous Dos, et là, les htmlentities ont marchés...  :ouch:  
Bon, je suis content, mais en même temps, pas content...>>> je n'ai pas compris pourquoi!! :cry:
 
Edit: WAOU même mieux!!: je ne suis pas obligé d'utiliser htmlentities pour que celà fonctionne.  
       (mais vous me conseillez d'utiliser quand même cette fonction dans mes pages ou pas?)
       (celà dit, ce que j'ai écrit plus haut est toujours valable: je n'ai toujours pas compris, c'est peut-être même encore pire maintenant...)
 
Voilà, Bye!


Message édité par Aguila73 le 15-05-2006 à 08:48:57
n°1366163
FlorentG
Unité de Masse
Posté le 15-05-2006 à 09:05:35  profilanswer
 

Tu n'as pas besoin d'utiliser htmlentities si l'encodage est le même sur toute la ligne. Par contre, pour afficher des données genre entrées par des utilisateurs, faut utiliser htmlspecialchars pour transformer les < > & en &lt; &gt; &amp;

n°1366812
Aguila73
Posté le 15-05-2006 à 18:29:02  profilanswer
 

Salut!
Bon je vais utiliser htmlentities dans les formulaires, mais je pense aussi l'utiliser pour les variables de ma bdd, par sécurité...
Merci, bien! J'espère que ce topic servira à d'autres dans mon cas!

n°1366880
Djebel1
Nul professionnel
Posté le 15-05-2006 à 20:00:06  profilanswer
 

utilises pas htmlentities avant de mettre dans ta base hein, uniquement en sortie, sinon tu vas te retrouver avec du html dans ta bdd :p

n°1366890
Aguila73
Posté le 15-05-2006 à 20:07:58  profilanswer
 

A ok!  :jap:  mais est-ce que ce n'est pas une "sécurité" en plus que de le faire avant?. Comme ca si un jour y'a l'encodage qui pose problème, c'est une solution de secours non?
(ok, pour lire la bdd, ca doit etre un poil reloud... ^^, enfin je pense que c'est pour ca non?  :whistle: )

n°1367048
Djebel1
Nul professionnel
Posté le 16-05-2006 à 00:49:41  profilanswer
 

bah parce que si tu veux faire autre chose que de l'html (genre du xml) un de ces 4, tu pourras pas :p
Pour sécuriser ce qui rentre dans ta base, utilise mysql_real_escape_string()

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  htmlentities()

 

Sujets relatifs
htmlentities et code html, pb avec <br>probleme en utilisant htmlentities[résolu]
Alternative à HTMLENTITIES ?[Php] Pourquoi devoir mettre 2X htmlentities ?
htmlentities & addslashes, c'est quoi la différence ?utilisation de htmlentities en PHP/MySQL
[PHP] Htmlentities-Htmlspecialchars= ?[résolu (problème inexsitant][php]existe-t-il un inverse a htmlentities et nl2br?
Plus de sujets relatifs à : htmlentities()


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR