Pb contenu html en PHP

Pb contenu html en PHP - PHP - Programmation

Marsh Posté le 03-12-2010 à 11:32:51    

Bonjour, tout le monde ca va ?
 
j'ai un formulaire qui contient des champs text et text area .. je veux récuperer le contenu des champs et l'insérer dans une base de données.  
 
mon pb est au niveau d'insertion dans la base, exemple
 
contenu d'un champ titre = <gras>Répit pour le photovoltaïque</gras>  
pour récupere ce conteni j'ai utilisé : <gras>$titre = htmlspecialchars($_POST['titre'], ENT_QUOTES);</gras>
et  dans la base de données je me trouve juste avec le <gras>R</gras> !!!!  
 
si quelqu'un peut m'aider ? Merci  
 
Bonne journée

Reply

Marsh Posté le 03-12-2010 à 11:32:51   

Reply

Marsh Posté le 03-12-2010 à 11:37:35    

vérifie que ton champs dans ta base de données utilise le même jeu de caractère que tes pages PHP/HTML

Reply

Marsh Posté le 03-12-2010 à 11:59:06    

antac a écrit :

vérifie que ton champs dans ta base de données utilise le même jeu de caractère que tes pages PHP/HTML


 
j'ai vérifier mnt il remplace le accents par "?" ..

Reply

Marsh Posté le 03-12-2010 à 12:02:15    

atout1 a écrit :


 
j'ai vérifier mnt il remplace le accents par "?" ..


 
mes pages html ont comme charset=iso-8859-1 et dans la base de données mes champs sont latin1_swedish_ci

Reply

Marsh Posté le 05-12-2010 à 14:13:53    

Utilise str_replace pour remplacer les caractères accentués par le code ASCII (ex : "é"->"&#233;" ) et ça devrait être bon

Reply

Marsh Posté le 05-12-2010 à 17:50:06    

toughzaa a écrit :

Utilise str_replace pour remplacer les caractères accentués par le code ASCII (ex : "é"->"&#233;" ) et ça devrait être bon


Ba oui c'est normal tout le monde fait ça, on peut aussi remplacer les accents en Javascript.

 

Ou alors mettre au point un nouveau langage codé et un cron qui décode le texte en base.

 

Y en a plein des solutions a chier comme ça :/

 

Faudrait avoir un minimum de connaissances avant de vouloir aider les gens, la tu fais tout sauf l'aider.

 

ps: je c'est un simple problème d'encodage, qui doit être règle correctement, pas en faisant d'horribles replaces.
Et pas d'htmlspecialchars avant d'insérer des données en base, c'est une pratique a bannir

Reply

Marsh Posté le 05-12-2010 à 19:42:34    

A mon avis, c't'au niveau de son éditeur de texte qu'il se foire...
Fait ça bien, enregistre en utf8, met ton charset en utf8, et tes bases aussi...


---------------
Fort et motivé. Sauf parfois.
Reply

Marsh Posté le 06-12-2010 à 11:36:26    

Alisteroid a écrit :


Ba oui c'est normal tout le monde fait ça, on peut aussi remplacer les accents en Javascript.


 
La classe, j'aime :sol:  
 

Citation :


Ou alors mettre au point un nouveau langage codé et un cron qui décode le texte en base.
 
Y en a plein des solutions a chier comme ça :/
 
Faudrait avoir un minimum de connaissances avant de vouloir aider les gens, la tu fais tout sauf l'aider.
 
ps: je c'est un simple problème d'encodage, qui doit être règle correctement, pas en faisant d'horribles replaces.
Et pas d'htmlspecialchars avant d'insérer des données en base, c'est une pratique a bannir


 
Tout à fait :jap: Ça fout en l'air les recherches, les indexations et les tris.
 
 
UTF-8 ou la MORT :o
 
Faut laisser tomber iso et cie, c'est obsolète, c'est limité et ça génère plein de problèmes (un russe ou un chinois tape du texte dans son browser non-iso, ça va rentrer porte nawak dans la base).
 
En résumé :
* page html en UTF-8
* Traitement PHP en UTF-8 (attention aux config serveur foireuses qui forcent un encodage à la volée)
* Base de données en UTF-8 sans htmlspecialchar foireux, que du pur UTF-8
 
et là y aura plus jamais de problème d'encodage  :jap:  

Reply

Marsh Posté le 06-12-2010 à 13:48:42    

smaragdus a écrit :


 
La classe, j'aime :sol:  
 

Citation :


Ou alors mettre au point un nouveau langage codé et un cron qui décode le texte en base.
 
Y en a plein des solutions a chier comme ça :/
 
Faudrait avoir un minimum de connaissances avant de vouloir aider les gens, la tu fais tout sauf l'aider.
 
ps: je c'est un simple problème d'encodage, qui doit être règle correctement, pas en faisant d'horribles replaces.
Et pas d'htmlspecialchars avant d'insérer des données en base, c'est une pratique a bannir


 
Tout à fait :jap: Ça fout en l'air les recherches, les indexations et les tris.


Et aussi si on balance un texte accentué de 50 caractères dans un varchar(50), la fin va être tronquée, car l'équivalent d'un "<" en entité html prends 3 carctères de plus, au final le texte à insérer en base sera bcp plus long que 50 caractères ... le 50 eme caractère risque en plus de tomber sur une entité html qui ne pourra plus être décodée ..
Bref ça pose énormément de problèmes .
 

smaragdus a écrit :


UTF-8 ou la MORT :o
 
Faut laisser tomber iso et cie, c'est obsolète, c'est limité et ça génère plein de problèmes (un russe ou un chinois tape du texte dans son browser non-iso, ça va rentrer porte nawak dans la base).
 
En résumé :
* page html en UTF-8
* Traitement PHP en UTF-8 (attention aux config serveur foireuses qui forcent un encodage à la volée)
* Base de données en UTF-8 sans htmlspecialchar foireux, que du pur UTF-8
 
et là y aura plus jamais de problème d'encodage  :jap:  


Rien à dire de plus  :jap:  
 
Point important : Si mysql n'est pas configuré par défaut pour l'UTF8 il faut faire un SET NAMES 'utf8'; avant tout autre requete (à faire juste après la connexion donc  :o )

Reply

Marsh Posté le 06-12-2010 à 13:52:32    

Un tuto sympa pour bosser en UTF8 : http://electron-libre.fassnet.net/utf8.php
 
Ca résume à peut prêt tout ce qu'il faut savoir

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed