PHP? SQL caractères spéciaux [Résolu/Fermé]

Signaler
Messages postés
102
Date d'inscription
jeudi 26 mai 2011
Statut
Membre
Dernière intervention
18 novembre 2011
-
Messages postés
102
Date d'inscription
jeudi 26 mai 2011
Statut
Membre
Dernière intervention
18 novembre 2011
-
Bonjour, j'aimerais insérer dans une base de données du code HTML.
Voilà le type de code <p style="text-align: left;"><strong>message1</strong>, <em><span style="text-decoration: underline;">message 2</span></em></p> .
Bref du code basique, mais avec des caractères spéciaux.
Et justement, je n'arrive pas à insérer ce code dans ma base de données.

Est-ce qu'il y a un type de champs spécifique pour ce genre de chose ou est-ce qu'il y a une fonction php qui permet d'encoder (ou que sais-je) dans un format approprié ?

Sachant qu'au final, je dois récupérer ce code et affiché tel qu'il a été écrit...

7 réponses

Messages postés
175
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
29 juin 2012
20
Montre nous t'as requête SQL qui enregistre ce code pour le moment.
Je crois que si tu ne la protège pas avec htmlspecialchars, les caractère rentreront tels qu'ils sont et sortiront comme ils sont rentrés ;)
Messages postés
218
Date d'inscription
samedi 7 février 2009
Statut
Membre
Dernière intervention
13 juillet 2011
26
Salut,
Oui c'est faisable avec un champ de type text ou varchar.
Messages postés
102
Date d'inscription
jeudi 26 mai 2011
Statut
Membre
Dernière intervention
18 novembre 2011
3
Alors merci vous de vous intéresser à mon sujet.
Donc, dans le formulaire d'insertion, j'ai un type TEXT pour le sujet du message.
Et un TEXTAREA pour le corps du message (et c'est ça qui pose problème. Parce qu'il contient du code HTML à la réception par le PHP...

Donc ma requête sql est celle-ci
//Pour simplifier les choses, je met pas de variables, juste la requête que je pourrai rentrer dans PHPMyAdmin par exemple

INSERT INTO mp VALUES (1, "Sujet1", "<p style="text-align: left;"><strong>message1</strong>, <em><span style="text-decoration: underline;">message 2</span></em></p>")

Le 1, c'est l'ID du message, il s'auto-incrémente mais pour l'exemple, j'ai mis 1... Le Sujet1, c'est le sujet du message (l'entête quoi).
Et le reste, bah, c'est le code qui me taquine :D
Dans ma table mp, j'ai comme champs
idMessage (type= INT)
sujetMessage(type= VarChar(50))
CorpsMessage(tyope=TEXT).
Voilà, j'ai expliqué tout ce que je pouvais ;D
Messages postés
218
Date d'inscription
samedi 7 février 2009
Statut
Membre
Dernière intervention
13 juillet 2011
26
Poste le code html du formulaire et le code php qui recupere les infos et execute la requete; comme ça on trouvera le probleme plus rapidement :)
Messages postés
102
Date d'inscription
jeudi 26 mai 2011
Statut
Membre
Dernière intervention
18 novembre 2011
3
Je ne pense pas que cela arrangerait les choses...

Essaye la requête (que j'ai posté) sur PHPMyAdmin, tu verras elle ne fonctionne pas...
Messages postés
218
Date d'inscription
samedi 7 février 2009
Statut
Membre
Dernière intervention
13 juillet 2011
26
C'est normal que ça marchera pas.
La chaine de caractères que tu récupère contient des ("), alors il faudra que tu les entours de (') :
INSERT INTO mp VALUES (1, "Sujet1", '<p style="text-align: left;"><strong>message1</strong>', '<em><span style="text-decoration: underline;">message 2</span></em></p>') 

SI tu exécute cette requete dans phpMyAdmin, ça va marcher mais si je t'ai demandé de poster ton code php , c'est parce que je pense que le problème se trouve dans la requete, est j'ai besoin de voir la requete avec les variables pour pouvoir corriger le problème.
Messages postés
102
Date d'inscription
jeudi 26 mai 2011
Statut
Membre
Dernière intervention
18 novembre 2011
3
Non, mais c'est bon, c'est juste les guillemets...
Parfois, on chercher tellement l'erreur quelque part qu'on oublie l'essentiel ^^

Pour mon code PHP, c'est rien de très compliqué. C'est pour ça que je n'ai pas jugé utile de partager ce-dernier.

Et bien, merci :D