Se connecter / S'enregistrer

Résolu [HTML/Javascript]Afficher le résultat d'un BBcode :??:

Solutions (5)
Tags :
  • Php
  • Html
  • Javascript
  • Programmation
|
Bonjour a tous :hello: 
Je créée un site avec un pote et on a un probleme :/ 
On a crée un systeme de messagerie privé avec PHP et dans ce systeme nous avons mis un BBCODE ...
On a reussi a faire le système pour ajoutes des caractères dans le textarea et la prévisualisation :sweat: 
Voila les codes ...

Envoyer.php:
  1. <?php
  2. session_start();
  3. // on vérifie toujours qu'il s'agit d'un membre qui est connecté
  4. if (!isset($_SESSION['login'])) {
  5. // si ce n'est pas le cas, on le redirige vers l'accueil
  6. header ('Location: index.php');
  7. exit();
  8. }
  9.  
  10. // on teste si le formulaire a bien été soumis
  11. if (isset($_POST['go']) && $_POST['go'] == 'Envoyer') {
  12. if (empty($_POST['destinataire']) || empty($_POST['titre']) || empty($_POST['message'])) {
  13. $erreur = 'Au moins un des champs est vide.';
  14. }
  15. else {
  16. $base = mysql_connect ('localhost', 'webafond', '');
  17. mysql_select_db ('webafond_db', $base);
  18.  
  19. // si tout a été bien rempli, on insère le message dans notre table SQL
  20. $sql = 'INSERT INTO messages VALUES("", "'.$_SESSION['id'].'", "'.$_POST['destinataire'].'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['titre']).'", "'.mysql_escape_string($_POST['message']).'")';
  21. mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
  22.  
  23. mysql_close();
  24.  
  25. header('Location: membre.php');
  26. exit();
  27. }
  28. }
  29. ?>
  30. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" rel="nofollow" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>">
  31. <html xmlns="<a href="http://www.w3.org/1999/xhtml" rel="nofollow" target="_blank">http://www.w3.org/1999/xhtml</a>" xml:lang="fr" lang="fr">
  32. <head>
  33. <?php include("head.php"); ?>
  34. <?php include("script_interdiction_gm.php"); ?>
  35. <script type="text/javascript">
  36. <!--
  37. function insertion(repdeb, repfin) {
  38. var input = document.forms['formulaire'].elements['message'];
  39. input.focus();
  40. /* pour l'Explorer Internet */
  41. if(typeof document.selection != 'undefined') {
  42. /* Insertion du code de formatage */
  43. var range = document.selection.createRange();
  44. var insText = range.text;
  45. range.text = repdeb + insText + repfin;
  46. /* Ajustement de la position du curseur */
  47. range = document.selection.createRange();
  48. if (insText.length == 0) {
  49. range.move('character', -repfin.length);
  50. } else {
  51. range.moveStart('character', repdeb.length + insText.length + repfin.length);
  52. }
  53. range.select();
  54. }
  55. /* pour navigateurs plus récents basés sur Gecko*/
  56. else if(typeof input.selectionStart != 'undefined')
  57. {
  58. /* Insertion du code de formatage */
  59. var start = input.selectionStart;
  60. var end = input.selectionEnd;
  61. var insText = input.value.substring(start, end);
  62. input.value = input.value.substr(0, start) + repdeb + insText + repfin + input.value.substr(end);
  63. /* Ajustement de la position du curseur */
  64. var pos;
  65. if (insText.length == 0) {
  66. pos = start + repdeb.length;
  67. } else {
  68. pos = start + repdeb.length + insText.length + repfin.length;
  69. }
  70. input.selectionStart = pos;
  71. input.selectionEnd = pos;
  72. }
  73. /* pour les autres navigateurs */
  74. else
  75. {
  76. /* requête de la position d'insertion */
  77. var pos;
  78. var re = new RegExp('^[0-9]{0,3}$');
  79. while(!re.test(pos)) {
  80. pos = prompt("Insertion à la position (0.." + input.value.length + "):", "0");
  81. }
  82. if(pos > input.value.length) {
  83. pos = input.value.length;
  84. }
  85. /* Insertion du code de formatage */
  86. var insText = prompt("Veuillez entrer le message à formater:");
  87. input.value = input.value.substr(0, pos) + repdeb + insText + repfin + input.value.substr(pos);
  88. }
  89. }
  90. //-->
  91. </script>
  92. <script language="javascript" type="text/javascript">
  93. var timer=0;
  94. var ptag=String.fromCharCode(5,6,7);
  95. function visualisation() {
  96. t=document.formulaire.message.value
  97. t=code_to_html(t)
  98. if (document.getElementById) document.getElementById("previsualisation").innerHTML=t
  99. if (document.formulaire.auto.checked) timer=setTimeout(visualisation,1000)
  100. }
  101. function automatique() {
  102. if (document.formulaire.auto.checked) visualisation()
  103. }
  104. function code_to_html(t) {
  105. t=nl2khol(t)
  106. // balise Gras
  107. t=deblaie(/(\[\/b\])/g,t)
  108. t=remplace_tag(/\[b\](.+)\[\/b\]/g,'<b>$1</b>',t)
  109. t=remblaie(t)
  110. // balise Italique
  111. t=deblaie(/(\[\/i\])/g,t)
  112. t=remplace_tag(/\[i\](.+)\[\/i\]/g,'<i>$1</i>',t)
  113. t=remblaie(t)
  114. // balise Underline
  115. t=deblaie(/(\[\/u\])/g,t)
  116. t=remplace_tag(/\[u\](.+)\[\/u\]/g,'<u>$1</u>',t)
  117. t=remblaie(t)
  118. // balise quote
  119. t=deblaie(/(\[\/quote\])/g,t)
  120. t=remplace_tag(/\[quote\](.+)\[\/quote\]/g,'<p class="quote">$1</p>',t)
  121. t=remblaie(t)
  122. // balise code
  123. t=remplace_tag(/\[code\](.+)\[\/code\]/g,'<code>$1</code>',t)
  124. // balise h1
  125. t=remplace_tag(/\[h1\](.+)\[\/h1\]/g,'<h1>$1</h1>',t)
  126. // balise h2
  127. t=remplace_tag(/\[h2\](.+)\[\/h2\]/g,'<h2>$1</h2>',t)
  128. // balise h3
  129. t=remplace_tag(/\[h3\](.+)\[\/h3\]/g,'<h3>$1</h3>',t)
  130. // balise center
  131. t=remplace_tag(/\[center\](.+)\[\/center\]/g,'<center>$1</center>',t)
  132. // balise barre
  133. t=remplace_tag(/\[del\](.+)\[\/del\]/g,'<del>$1</del>',t)
  134. // balise Img
  135. t=deblaie(/(\[\/img\])/g,t)
  136. t=remplace_tag(/\[img\](.+)\[\/img\]/g,'<img src="$1"/>',t)
  137. t=remblaie(t)
  138. // balise URL
  139. t=remplace_tag(/\[urlExt=http://([^\s<>]+)\](.+)\[\/url\]/g,'<a href="$1" target="_blank">$2</a>',t)
  140. // balise Color
  141. t=deblaie(/(\[\/color\])/g,t)
  142. t=remplace_tag(/\[color=(#[a-fA-F0-9]{6})\](.+)\[\/color\]/g,'<font color="$1">$2</font>',t)
  143. t=remblaie(t)
  144. // balise size
  145. t=deblaie(/(\[\/size\])/g,t)
  146. t=remplace_tag(/\[size=([+-]?[0-9])\](.+)\[\/size\]/g,'<font size="$1">$2</font>',t)
  147. t=remblaie(t)
  148. t=unkhol(t)
  149. t=nl2br(t)
  150. return t
  151. }
  152. function deblaie(reg,t) {
  153. message=new String(t);
  154. return message.replace(reg,'$1\n');
  155. }
  156. function remblaie(t) {
  157. message=new String(t);
  158. return message.replace(/\n/g,'');
  159. }
  160. function remplace_tag(reg,rep,t) {
  161. message=new String(t);
  162. return message.replace(reg,rep);
  163. }
  164. function nl2br(t) {
  165. message=new String(t);
  166. return message.replace(/\n/g,'<br/>');
  167. }
  168. function nl2khol(t) {
  169. message=new String(t);
  170. return message.replace(/\n/g,ptag);
  171. }
  172. function unkhol(t) {
  173. message=new String(t);
  174. return message.replace(new RegExp(ptag,'g'),'\n');
  175. }
  176. </script>
  177. </head>
  178. <body>
  179. <!-- *************************************** #Conteneur **************************************** -->
  180. <div id="conteneur">
  181. <!-- ************************************** Début #Header *************************************** -->
  182. <div id="header">
  183. <!-- *************************************** Début #menu **************************************** -->
  184. <?php include("menu_haut.php"); ?>
  185. <!-- **************************************** Fin #menu ***************************************** -->
  186. </div>
  187. <!-- *************************************** Fin #Header **************************************** -->
  188. <!-- ****************************************** Début Colonne gauche #left ******************************************* -->
  189. <div id="left">
  190. <!-- ************************************ 1er cadre de news ************************************* -->
  191. <div class="bloc">
  192. <div class="cadre_haut"><div class="date">19 <br />Oct</div>Qui sommes-nous ?</div><div class="cadre_fond">
  193. Guillatutoriel est un site de tutoriels qui vous propose d'apprendre a utiliser certains logiciels.<br />
  194. Guillatutoriel est aussi pour tout débutant qui voudrait se lancer dans le graphisme, programmation.<br />
  195. Nous vous proposons des tutoriels sur :
  196. * Adobe Photoshop<br />
  197. * Adobe Flash<br />
  198. * Adobe Illustrator<br />
  199. * Adobe After Effects<br />
  200. * Blender<br />
  201. * PHP<br />
  202. * HTML/ CSS<br />
  203. * Ajax<br />
  204. * C/C++<br />
  205. * Java<br />
  206. Nos tutoriels sont payants.
  207.  
  208.  
  209. </div><div class="cadre_bas"></div>
  210. </div>
  211. <!-- *********************************** Fin 1er cadre de news ************************************ -->
  212. <!-- ************************************ 2er cadre de news ************************************* -->
  213. <div class="bloc">
  214. <div class="cadre_haut"><div class="date">19 <br /> Oct</div>Nos tarifs*</div><div class="cadre_fond">
  215. GuillaTutoriels propose des tarifs spéciaux pour chaque catégories.<br />
  216. <br />
  217. Adobe Photoshop: 0,25?<br />
  218. Adobe Flash: 0,25?<br />
  219. Adobe Illustrator: 0,10?<br />
  220. Adobe After Effects: 0,15?<br />
  221. Blender: 0,10?<br />
  222. PHP: 0,25?<br />
  223. HTML: 0,15?<br />
  224. Ajax: 0,10?<br />
  225. C/C++: 0,15?<br />
  226. Java: 0,10?<br />
  227. *Nos tarifs varient en fonction de la popularité des tutoriels.<br />
  228. <div style="padding:7px 0 0 0"></div>
  229. </div><div class="cadre_bas"></div>
  230. </div>
  231. <!-- *********************************** Fin 2er cadre de news ************************************ -->
  232. <div style="clear:both"></div>
  233. <!-- ************************************ Grand cadre de news ************************************* -->
  234. <div class="cadre_haut_grand"><div class="date">19 <br /> Oct</div>Bienvenue <?php echo htmlentities(trim($_SESSION['login'])); ?></div><div class="cadre_fond_grand">
  235. <?php
  236. $base = mysql_connect ('localhost', 'webafond', '');
  237. mysql_select_db ('webafond_db', $base);
  238.  
  239. // on prépare une requete SQL selectionnant tous les login des membres du site en prenant soin de ne pas selectionner notre propre login, le tout, servant à alimenter le menu déroulant spécifiant le destinataire du message
  240. $sql = 'SELECT membre.login as nom_destinataire, membre.id as id_destinataire FROM membre WHERE id <> "'.$_SESSION['id'].'" ORDER BY login ASC';
  241. // on lance notre requete SQL
  242. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  243. $nb = mysql_num_rows ($req);
  244.  
  245. if ($nb == 0) {
  246. // si aucun membre n'a été trouvé, on affiche tout simplement aucun formulaire
  247. echo 'Vous êtes le seul membre inscrit.';
  248. }
  249. else {
  250. // si au moins un membre qui n'est pas nous même a été trouvé, on affiche le formulaire d'envoie de message
  251. ?>
  252. <form action="envoyer.php" name="formulaire" method="post">
  253. Pour : <select name="destinataire">
  254. <?php
  255. // on alimente le menu déroulant avec les login des différents membres du site
  256. while ($data = mysql_fetch_array($req)) {
  257. echo '<option value="' , $data['id_destinataire'] , '">' , stripslashes(htmlentities(trim($data['nom_destinataire']))) , '</option>';
  258. }
  259. ?>
  260. </select><br />
  261. Titre : <br><input type="text" name="titre" size="78" value="<?php if (isset($_POST['titre'])) echo stripslashes(htmlentities(trim($_POST['titre']))); ?>"><br />
  262. <input type="button" value="Gras" onClick="insertion('[b]', '[/b]')"> <input type="button" value="Italique" onClick="insertion('[i]', '[/i]')"> <input type="button" value="Souligné" onClick="insertion('[u]', '[/u]')"><input type="button" value="Lien" onClick="insertion('[url=]', '[/urlExt]')"> <input type="button" value="Barré" onClick="insertion('[del]', '[/del]')"> <input type="button" value="Taille 1" onClick="insertion('[h1]', '[/h1]')"><input type="button" value="Taille 2" onClick="insertion('[h2]', '[/h2]')"><input type="button" value="Taille 3" onClick="insertion('[h3]', '[/h3]')"> <input type="button" value="Centre" onClick="insertion('[center]', '[/center]')"><br />
  263. Message : <br><textarea name="message" cols="60" rows="6" onkeyup="Compter(this, this.form.CharRestant);"><?php if (isset($_POST['message'])) echo stripslashes(htmlentities(trim($_POST['message']))); ?></textarea><br />
  264. Nombre de caractères restant : <input type="text" name="CharRestant" size="2" disabled="disabled"><br />
  265. <input type="submit" name="go" value="Envoyer">
  266. <input type="button" value="Prévisualiser" onClick="visualisation()">
  267. <input name="auto" type="checkbox" onClick="automatique()"> Auto<br />
  268. <br />
  269. </form>
  270. <?php
  271. }
  272. mysql_free_result($req);
  273. mysql_close();
  274. ?>
  275. <span id="previsualisation"> </span>
  276. <div style="padding:2px 0 0 0"></div>
  277. </div><div class="cadre_bas_grand"></div>
  278. <!-- *********************************** Fin Grand cadre de news ************************************ -->
  279. <!-- ***************************************** PUBLICITé ****************************************** -->
  280. <?php include("publicité.php"); ?>
  281. <!-- *************************************** Fin PUBLICITé **************************************** -->
  282. </div>
  283. <!-- ******************************************** Fin Colonne gauche #left ********************************************* -->
  284.  
  285. <!-- ****************************************** Début Colonne droite #right ******************************************* -->
  286. <div id="right">
  287. <!-- ************************************ 1er cadre de news ************************************* -->
  288. <div class="news_haut"></div><div class="news_fond">
  289. Soyez le bienvenue, <?php echo htmlentities(trim($_SESSION['login'])); ?>.<br />
  290. <?php
  291. $base = mysql_connect ('localhost', 'webafond', '');
  292. mysql_select_db ('webafond_db', $base);
  293.  
  294. // on prépare une requete SQL cherchant tous les titres, les dates ainsi que l'auteur des messages pour le membre connecté
  295. $sql = 'SELECT titre, date, membre.login as expediteur, messages.id as id_message FROM messages, membre WHERE id_destinataire="'.$_SESSION['id'].'" AND id_expediteur=membre.id ORDER BY date DESC';
  296. // lancement de la requete SQL
  297. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  298. $nb = mysql_num_rows($req);
  299.  
  300. if ($nb == 0) {
  301. echo 'Vous n\'avez aucun message.';
  302. }
  303. else {
  304. // si on a des messages, on affiche la date, un lien vers la page lire.php ainsi que le titre et l'auteur du message
  305. while ($data = mysql_fetch_array($req)) {
  306. echo $data['date'] , ' - <a href="lire.php?id_message=' , $data['id_message'] , '">' , stripslashes(htmlentities(trim($data['titre']))) , '</a> [ Message de ' , stripslashes(htmlentities(trim($data['expediteur']))) , ' ]<br />';
  307. }
  308. }
  309. mysql_free_result($req);
  310. mysql_close();
  311. ?>
  312. <br />
  313. <a href="deconnexion.php" >
  314. </div><div class="news_bas"></div>
  315. <?php include("form_recherche.php"); ?>
  316. <!-- ************************************ 2er cadre de news ************************************* -->
  317. <!-- *********************************** Fin 2er cadre de news ************************************ -->
  318. </div>
  319. <!-- ******************************************** Fin Colonne droite #right ********************************************* -->
  320. <?php include("copyright.php"); ?>
  321. </div><!-- Fin #Conteneur -->
  322.  
  323. </body>
  324. </html>
  325. <textarea style="display :none">


Donc quand je teste cette page, j'ecris un texte et je clique sur "Prévisualiser" et on voit le BBCode sur le texte.
Mais maintenant comment faire pour afficher le bbcode qui est stocker dans une base de donnée ?

Voila ma page lire.php
  1. <?php
  2. session_start();
  3. if (!isset($_SESSION['login'])) {
  4. header ('Location: index.php');
  5. exit();
  6. }
  7. ?>
  8. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" rel="nofollow" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>">
  9. <html xmlns="<a href="http://www.w3.org/1999/xhtml" rel="nofollow" target="_blank">http://www.w3.org/1999/xhtml</a>" xml:lang="fr" lang="fr">
  10. <head>
  11. <?php include("head.php"); ?>
  12. <script type="text/javascript">
  13. <!--
  14. function insertion(repdeb, repfin) {
  15. var input = document.forms['formulaire'].elements['message'];
  16. input.focus();
  17. /* pour l'Explorer Internet */
  18. if(typeof document.selection != 'undefined') {
  19. /* Insertion du code de formatage */
  20. var range = document.selection.createRange();
  21. var insText = range.text;
  22. range.text = repdeb + insText + repfin;
  23. /* Ajustement de la position du curseur */
  24. range = document.selection.createRange();
  25. if (insText.length == 0) {
  26. range.move('character', -repfin.length);
  27. } else {
  28. range.moveStart('character', repdeb.length + insText.length + repfin.length);
  29. }
  30. range.select();
  31. }
  32. /* pour navigateurs plus récents basés sur Gecko*/
  33. else if(typeof input.selectionStart != 'undefined')
  34. {
  35. /* Insertion du code de formatage */
  36. var start = input.selectionStart;
  37. var end = input.selectionEnd;
  38. var insText = input.value.substring(start, end);
  39. input.value = input.value.substr(0, start) + repdeb + insText + repfin + input.value.substr(end);
  40. /* Ajustement de la position du curseur */
  41. var pos;
  42. if (insText.length == 0) {
  43. pos = start + repdeb.length;
  44. } else {
  45. pos = start + repdeb.length + insText.length + repfin.length;
  46. }
  47. input.selectionStart = pos;
  48. input.selectionEnd = pos;
  49. }
  50. /* pour les autres navigateurs */
  51. else
  52. {
  53. /* requête de la position d'insertion */
  54. var pos;
  55. var re = new RegExp('^[0-9]{0,3}$');
  56. while(!re.test(pos)) {
  57. pos = prompt("Insertion à la position (0.." + input.value.length + "):", "0");
  58. }
  59. if(pos > input.value.length) {
  60. pos = input.value.length;
  61. }
  62. /* Insertion du code de formatage */
  63. var insText = prompt("Veuillez entrer le message à formater:");
  64. input.value = input.value.substr(0, pos) + repdeb + insText + repfin + input.value.substr(pos);
  65. }
  66. }
  67. //-->
  68. </script>
  69. </head>
  70. <body>
  71. <!-- *************************************** #Conteneur **************************************** -->
  72. <div id="conteneur">
  73. <!-- ************************************** Début #Header *************************************** -->
  74. <div id="header">
  75. <!-- *************************************** Début #menu **************************************** -->
  76. <?php include("menu_haut.php"); ?>
  77. <!-- **************************************** Fin #menu ***************************************** -->
  78. </div>
  79. <!-- *************************************** Fin #Header **************************************** -->
  80. <!-- ****************************************** Début Colonne gauche #left ******************************************* -->
  81. <div id="left">
  82. <!-- ************************************ 1er cadre de news ************************************* -->
  83. <div class="bloc">
  84. <div class="cadre_haut"><div class="date">19 <br />Oct</div>Qui sommes-nous ?</div><div class="cadre_fond">
  85. Guillatutoriel est un site de tutoriels qui vous propose d'apprendre a utiliser certains logiciels.<br />
  86. Guillatutoriel est aussi pour tout débutant qui voudrait se lancer dans le graphisme, programmation.<br />
  87. Nous vous proposons des tutoriels sur :
  88. * Adobe Photoshop<br />
  89. * Adobe Flash<br />
  90. * Adobe Illustrator<br />
  91. * Adobe After Effects<br />
  92. * Blender<br />
  93. * PHP<br />
  94. * HTML/ CSS<br />
  95. * Ajax<br />
  96. * C/C++<br />
  97. * Java<br />
  98. Nos tutoriels sont payants.
  99.  
  100.  
  101. </div><div class="cadre_bas"></div>
  102. </div>
  103. <!-- *********************************** Fin 1er cadre de news ************************************ -->
  104. <!-- ************************************ 2er cadre de news ************************************* -->
  105. <div class="bloc">
  106. <div class="cadre_haut"><div class="date">19 <br /> Oct</div>Nos tarifs*</div><div class="cadre_fond">
  107. GuillaTutoriels propose des tarifs spéciaux pour chaque catégories.<br />
  108. <br />
  109. Adobe Photoshop: 0,25?<br />
  110. Adobe Flash: 0,25?<br />
  111. Adobe Illustrator: 0,10?<br />
  112. Adobe After Effects: 0,15?<br />
  113. Blender: 0,10?<br />
  114. PHP: 0,25?<br />
  115. HTML: 0,15?<br />
  116. Ajax: 0,10?<br />
  117. C/C++: 0,15?<br />
  118. Java: 0,10?<br />
  119. *Nos tarifs varient en fonction de la popularité des tutoriels.<br />
  120. <div style="padding:7px 0 0 0"></div>
  121. </div><div class="cadre_bas"></div>
  122. </div>
  123. <!-- *********************************** Fin 2er cadre de news ************************************ -->
  124. <div style="clear:both"></div>
  125. <!-- ************************************ Grand cadre de news ************************************* -->
  126. <div class="cadre_haut_grand"><div class="date">19 <br /> Oct</div>Bienvenue <?php echo htmlentities(trim($_SESSION['login'])); ?></div><div class="cadre_fond_grand">
  127.  
  128. <?php
  129. // on teste si notre paramètre existe bien et qu'il n'est pas vide
  130. if (!isset($_GET['id_message']) || empty($_GET['id_message'])) {
  131. echo 'Aucun message reconnu.';
  132. }
  133. else {
  134. $base = mysql_connect ('localhost', 'webafond', '');
  135. mysql_select_db ('webafond_db', $base);
  136.  
  137. // on prépare une requete SQL selectionnant la date, le titre et l'expediteur du message que l'on souhaite lire, tout en prenant soin de vérifier que le message appartient bien au membre connecté
  138. $sql = 'SELECT titre, date, message, membre.login as expediteur FROM messages, membre WHERE id_destinataire="'.$_SESSION['id'].'" AND id_expediteur=membre.id AND messages.id="'.$_GET['id_message'].'"';
  139. // on lance cette requete SQL à MySQL
  140. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  141. $nb = mysql_num_rows($req);
  142.  
  143. if ($nb == 0) {
  144. echo 'Aucun message reconnu.';
  145. }
  146. else {
  147. // si le message a été trouvé, on l'affiche
  148. $data = mysql_fetch_array($req);
  149. echo '<form name="formulaire">';
  150. echo $data['date'] , ' - ' , stripslashes(htmlentities(trim($data['titre']))) , '</a> [ Message de ' , stripslashes(htmlentities(trim($data['expediteur']))) , ' ]<br /><br />';
  151. echo stripslashes(htmlentities(trim($data['message'])));
  152. // on affiche également un lien permettant de supprimer ce message de la boite de réception
  153. echo '<br /><br /><a href="supprimer.php?id_message=' , $_GET['id_message'] , '">Supprimer ce message</a>';
  154. }
  155. mysql_free_result($req);
  156. mysql_close();
  157. }
  158. ?>
  159.  
  160. <div style="padding:2px 0 0 0"></div>
  161. </div><div class="cadre_bas_grand"></div>
  162. <!-- *********************************** Fin Grand cadre de news ************************************ -->
  163. <!-- ***************************************** PUBLICITé ****************************************** -->
  164. <?php include("publicité.php"); ?>
  165. <!-- *************************************** Fin PUBLICITé **************************************** -->
  166. </div>
  167. <!-- ******************************************** Fin Colonne gauche #left ********************************************* -->
  168.  
  169. <!-- ****************************************** Début Colonne droite #right ******************************************* -->
  170. <div id="right">
  171. <!-- ************************************ 1er cadre de news ************************************* -->
  172. <div class="news_haut"></div><div class="news_fond">
  173. Soyez le bienvenue, <?php echo htmlentities(trim($_SESSION['login'])); ?>.<br />
  174. <?php
  175. $base = mysql_connect ('localhost', 'webafond', '');
  176. mysql_select_db ('webafond_db', $base);
  177.  
  178. // on prépare une requete SQL cherchant tous les titres, les dates ainsi que l'auteur des messages pour le membre connecté
  179. $sql = 'SELECT titre, date, membre.login as expediteur, messages.id as id_message FROM messages, membre WHERE id_destinataire="'.$_SESSION['id'].'" AND id_expediteur=membre.id ORDER BY date DESC';
  180. // lancement de la requete SQL
  181. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  182. $nb = mysql_num_rows($req);
  183.  
  184. if ($nb == 0) {
  185. echo 'Vous n\'avez aucun message.';
  186. }
  187. else {
  188. // si on a des messages, on affiche la date, un lien vers la page lire.php ainsi que le titre et l'auteur du message
  189. while ($data = mysql_fetch_array($req)) {
  190. echo $data['date'] , ' - <a href="lire.php?id_message=' , $data['id_message'] , '">' , stripslashes(htmlentities(trim($data['titre']))) , '</a> [ Message de ' , stripslashes(htmlentities(trim($data['expediteur']))) , ' ]<br />';
  191. }
  192. }
  193. mysql_free_result($req);
  194. mysql_close();
  195. ?>
  196. <br />
  197. <a href="deconnexion.php" >
  198. </div><div class="news_bas"></div>
  199. <?php include("form_recherche.php"); ?>
  200. <!-- ************************************ 2er cadre de news ************************************* -->
  201.  
  202. <!-- *********************************** Fin 2er cadre de news ************************************ -->
  203. </div>
  204. <!-- ******************************************** Fin Colonne droite #right ********************************************* -->
  205. <?php include("copyright.php"); ?>
  206. </div><!-- Fin #Conteneur -->
  207.  
  208. </body>
  209. </html>
  210. <textarea style="display :none">


Merci de bien vouloir aider un gars comme moi :( 
Contenus similaires
Meilleure solution
partage
|
Pour quelqu'un qui compte vendre des tutoriaux, tu demandes beaucoup d'aide :) 
Il te suffit de faire en PHP la même chose qu'en javascript.
Tu peux te baser sur un vieux truc à moi : http://www.g33k-zone.org/post/2010/10/22/Traiter-le-BBC...
  • Commenter cette solution |
Score
0
òh
òi
|
Content que ça aide :) 
  • Commenter cette réponse |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par WebAFond.
  • Commenter cette réponse |
Score
0
òh
òi
|
Ohh mon dieu !!!
Mon gars tu m'as sauvé la vie !!!!!!
En fait la variable $texte doit contenir le message que l'utilisateur a envoyé :) 
Grand merci !!!
J'ai galéré a trouver !
<3
  • Commenter cette réponse |
Score
0
òh
òi
|
J'ai pas trop compris la fonction bbcode :??: 

Et je suis pas fort avec le PHP ou Javascript :) 
Je gere avec Photoshop et After Effects :D 
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS