PHP? SQL caractères spéciaux

Résolu
anatolekadel Messages postés 102 Date d'inscription   Statut Membre Dernière intervention   -  
anatolekadel Messages postés 102 Date d'inscription   Statut Membre Dernière intervention   -
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...
A voir également:

7 réponses

Pyxouze Messages postés 175 Date d'inscription   Statut Membre Dernière intervention   21
 
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 ;)
0
wolves'sbrother Messages postés 218 Date d'inscription   Statut Membre Dernière intervention   35
 
Salut,
Oui c'est faisable avec un champ de type text ou varchar.
0
anatolekadel Messages postés 102 Date d'inscription   Statut Membre Dernière intervention   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
0
wolves'sbrother Messages postés 218 Date d'inscription   Statut Membre Dernière intervention   35
 
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 :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
anatolekadel Messages postés 102 Date d'inscription   Statut Membre Dernière intervention   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...
0
wolves'sbrother Messages postés 218 Date d'inscription   Statut Membre Dernière intervention   35
 
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.
0
anatolekadel Messages postés 102 Date d'inscription   Statut Membre Dernière intervention   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
0