Rechercher : dans
Par :

Affichage texte avec caracteres speciaux php

Dernière réponse le 13 nov 2007 à 14:12:19 lolo, le 25 jan 2005 à 23:17:13 
 Signaler ce message aux modérateurs

Bonjour,

Je suis en train de creer un mini forum en php/mysql. J ai un souci, pour l instant je recupere mes donnes dans un <textarea> html. Puis je les met tel que dans base de donnees.

Au niveau de ma base tout marche bien.

Le probleme est le suivant quand j affiche les donnes enregistrees dans la base, un simple echo "$mavar", $mavar est afficher en oubliant les caracteres de retour a la ligne. Pire pour le simuler j insere dans ma base de donnes des <br> la ou je faire des retour chariot.
Donc faille de securite important si on me place un javascript il sera interpreter, je crois.

De meme pour les caracteres speciaux accent apostrophe etc.
Une idee les gars
Merci de votre entaide.

Ps: tant que j'y suis, vous savez mettre du texte de plus de 255 characteres dans une base MySQl.

Meilleures réponses pour « affichage texte avec caracteres speciaux php » dans :
Utiliser des accents et autres caractères spéciaux VoirDans la plupart des langages de programmation, on ne peut utiliser directement les accents et autres caractères non-anglosaxon. La solution est l'unicode, une sorte de code universel. Par exemple pour afficher la chaine de caractères : " là, ça...
Oracle - Echappement de caractères spéciaux VoirPour certaines requêtes SQL, nous avons besoin de rechercher des chaînes de caractères contenant des caractères spéciaux tels que '%' Dans l'exemple suivant, qui est faux, le besoin est de trouver les enregistrements contenant au milieu le...
[CCM] Utiliser des caractères spéciaux VoirVous pouvez utiliser des caractères spéciaux dans vos messages sur les forums de CCM. Vous pouvez: Soit utiliser la table de caractères Windows (charmap.exe) et copier-coller les caractères dans le message. Soit utiliser les entités...
Caractères spéciaux HTML VoirCodage des caractères spéciaux Le standard HTML demande de respecter le codage des caractères ASCII 7 bits, c'est-à-dire que les caractères accentués ne sont pas autorisés. Il faut pour cela utiliser un codage particulier. Pour...

1

alconis, le 25 jan 2005 à 23:30:02

Je t'invite à regarder du côté des fonctions addslashes, stripslashes et nl2br.

De plus, utilise le type LONGTEXT et non VARCHAR pour ton champ qui nécessite plus de 255 caractères.

Répondre à alconis

2

kilian, le 25 jan 2005 à 23:42:07

Bonsoir,

Je crois que le type text est illimité avec MySql:
http://www.toutestfacile.com/sql/cours/printables/%5BSQLFaci­le.com%5Dtypes.php

Mais je comprends pas, pour les retours à la ligne, l'utilisateur doit poster des <br> ? ou peut être des \n?
Et en quoi est-ce une faille pour des attaques Javascript? Et où est le soucis avec les caractères spéciaux et apostrophes?

PS: Ah désolé Alconis, j'ai posté peu après toi j'avais pas vu ton message :-)

Répondre à kilian

3

alconis, le 25 jan 2005 à 23:48:48

Pouquoi ne tapes-tu pas plutôt les fonctions php que je t'ai donné dans google ?
Jamais je ne mâcherai le travail pour quelqu'un. Je donne des pistes. A toi de les suivre.

Répondre à alconis

4

kilian, le 25 jan 2005 à 23:54:44

Euh, tu as peut être cru que c'était moi qui avait posté le premier message?Confusion? :-)

Répondre à kilian

5

alconis, le 25 jan 2005 à 23:57:04

Arf exact !! Au temps pour moi :)

Répondre à alconis

6

kilian, le 25 jan 2005 à 23:59:32

:-)

Répondre à kilian

7

lolo, le 26 jan 2005 à 00:08:20

Merci les gars pour les PISTES bien tracées!!!
ça marche nickel
a bientot

Pour d autres qu ont le meme probleme faire:
nl2br_indent(htmlentities($mavar, ENT_QUOTES)) ;


function nl2br_indent($string, $indent = 0)
{
//remove carriage returns
$string = str_replace("\r", '', $string);

//convert indent to whitespaces if it is a integer.
if (is_int($indent)) {
//set indent to length of the string
$indent = str_repeat(' ', (int)$indent);
}

//replace newlines with "<br />\n$indent"
$string = str_replace("\n", "<br />\n".$indent, $string);
//add the indent to the first line too
$string = $indent.$string;

return $string;
}

Répondre à lolo

8

kilian, le 26 jan 2005 à 00:17:09

:-)

Par contre pourquoi <br/>?

Répondre à kilian

10

alconis, le 26 jan 2005 à 00:24:54

Tout simplement parce que tout le monde devrait utiliser <br/> plutôt que <br> pour coller à la norme des balises unitaires en XML dont le HTML découle. Sa fonction utilise donc <br/> car son auteur souhaite coder proprement :)

Pour rappel, les balises façon XML avec des exemples :

- Balise seule : <br/>
- Balise seule avec attribut: <img src="kikoo.jpg" />
- Balise complexe avec attribut: <a href="kikoo.html">LIEN</a>

Répondre à alconis

9

lolo, le 26 jan 2005 à 00:18:50
Répondre à lolo

11

kilian, le 26 jan 2005 à 00:27:00

Ah oui! Ben je comprends pas....
Bref, Bonne nuit :-)

Répondre à kilian

12

Maillet Aimé, le 19 déc 2006 à 14:52:09

Quend j'entoure un texte par "les formes automatiques", celles-ci n'apparaissent pas à l'impression. Ce phénomène est arrivé à mon grand étonnement je ne sais comment.
pouvez-vous m'éclaier sur ce point.
Avec mon merci et ma respectueuse considération.
AM

Répondre à Maillet Aimé

13

Alf-Red, le 13 nov 2007 à 14:07:44

Bonjour,
tu devrais plutot générer et éditer (modifier) des fichiers.txt plutot que de travailler en SQL !!

Répondre à Alf-Red

14

Alf-Red, le 13 nov 2007 à 14:09:20

Sans oublier les nl2br, htmlentities et hmtlspecialchars !

Répondre à Alf-Red

15

 Alf-Red, le 13 nov 2007 à 14:12:19
  • +2

Très bien dit, Alconis, très bon codeur, et respectueux avec çà !!

Répondre à Alf-Red