Salut, je sais ce genre de question a déjà été posée mais là, j'ai un soucis...
J'ai un forum sur mon site, les messages sont enregistrés dans une BDD et je les affiche.
Ca marche avec easyPhp en local mais pas su rmon site (hébergé par OVH)
code pour mettre le message dans la BDD :
Code pour l'afficher:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 openBDD(); // === AJOUT DU MESSAGE EVENTUEL === if(@$_POST["message"]) { $msg = iconv("UTF-8","UTF-8//IGNORE",$_POST['message']); $SQL = "INSERT into " . $bddForum ."(quand,login,email,message)" ." VALUES(" . time() .",'".$_POST["login"]."'" .",'".$_POST["email"]."'" // .",'".addslashes($msg)."'" .",'".$msg."'" .")"; mysql_query($SQL); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <table border=1 cellspacing=0 cellpadding=5 width=100%> <? // Requête de sélection des messages $SQL = "SELECT * FROM " . $bddForum . " ORDER BY ID DESC"; $res = mysql_query($SQL); // Tant qu'il y a des messages while($val=mysql_fetch_array($res)) { // Nouvelle ligne echo "<tr><td>"; // Ecrit la date du message echo date("d/m/Y",$val["quand"]); // Ecrit le login de l'auteur echo " - ".$val["login"]; echo "<br>"; // Ecrit le message, n'autorise pas les code html ;) // echo htmlentities($val["message"]); echo nl2br($val["message"]); // Fin de ligne echo "</td></tr>"; } ?> </table>
Exemple avec le message "c'est un test"
Mon problème est le suivant, dans la BDD, il stocke "c\'est un test", la fonction nl2br (qui gère le retour chariot) m'affiche "c'est un test" (pourquoi donc, je n'en sais rien...) alors que sur mon site (meme code), le forum affiche "c\est un test"...
Merci de votre aide, je galère avec ça et les fonction stripslashes et autres...
EDIT : autant pour moi, en local meme sans nl2br, les apostrophes marchent... donc je suppose que je dois ajouter une fonction pour les enlever sur OVH...
++
JC
Partager