8797 sujets

Développement web côté serveur, CMS

Hello !
J'ai un problème d'insertion SQL avec
INSERT INTO bb_posts (forum_id, topic_id, poster_id, post_text, post_time, post_position) VALUES ('2', '8', '1','

Quelqu'un a demandé l'accès à la section Presse avec ces informations :

-NOM : testtes
-PRENOM: testes
-JOURNAL: testes
-COMMENTAIRES: testes

Pour valider son accès à la section presse, cliquez sur ce lien.
','1194204436','3')


Je sais bien que c'est la 4e valeur (post_text) qui pose problème puisque si je la remplace par un mot, par exemple, ça fonctionne.
Mais je ne sais pas OU est l'erreur...

                $post_text = '<p>Quelqu\'un a demandé l\'accès à la section Presse avec ces informations :</p>';
                $post_text .= '<p>-<strong>NOM :</strong> '.$press_name.'<br />';
                $post_text .= '-PRENOM: '.$press_prenom.'<br />';
                $post_text .= '-JOURNAL: '.$press_journal.'<br />';
                $post_text .= $post_comments_line;
                $post_text .= '</p><p>Pour valider son accès à la section presse, <a href="'.$user_id.'">cliquez sur ce lien</a>.</p>';


Merci d'avance !
Modifié par gordie (05 Nov 2007 - 01:29)
Administrateur
Quelqu'un a demandé l'accès à la section Presse avec ces informations :


échappement :

Quelqu\'un a demandé l\'accès à la section Presse avec ces informations :


(sinon le message d'erreur exact est toujours le bienvenu)
Modifié par dew (04 Nov 2007 - 21:00)
a écrit :
$post_text = '<p>Quelqu\'un a demandé l\'accès à la section Presse avec ces informations :</p>';


Hé bien justement, si tu regardes mon message d'au dessus, l'échappement y est...
a écrit :
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'un a demandé l'accès à la section Presse avec ces informations :

-NOM : ca' at line 1
Bonsoir,


Il faut doublement échapper les guillemets une fois pour mysql... et une fois pour php.

$post_text = '<p>Quelqu\\\'un a demandé l\\\'accès à la section Presse avec ces informations :</p>';
Ouais...

C'est rigolo mais c'est pas beau...

$post_text = addslashes("<p>Quelqu'un a demandé l'accès à la section Presse avec ces informations :</p>");


ou mieux (puisque le résultat stocké semble être du html):

$post_text = htmlentities("<p>Quelqu'un a demandé l'accès à la section Presse avec ces informations :</p>",ENT_QUOTES);