probleme de bbcode

probleme de bbcode - PHP - Programmation

Marsh Posté le 26-03-2005 à 18:46:55    

Bonjour a tous.  
 
J'ai creer un script de news , et je voudrais que mes membres puissent inserer des images dans leur news, ainsi qu des hyperliens cliquables.
 
Comment doit je faire ?? si'il faut utiliser du bbcode pouvez vous me donner un lien qui explique comment le mettre en place .
 
Merci a vous


Message édité par wydook le 27-03-2005 à 20:17:53
Reply

Marsh Posté le 26-03-2005 à 18:46:55   

Reply

Marsh Posté le 26-03-2005 à 19:18:10    

et google il pue ?


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 26-03-2005 à 19:23:56    

j'adooooooore les reponses sympathique comme ca

Reply

Marsh Posté le 26-03-2005 à 19:39:05    

j'adooooooore les questions stupides comme ca


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 26-03-2005 à 19:49:01    

je veut pas dire , mais entre la question , qui est trés bien formuler , avec un bonjour et un merci , et un gars qui me repond  
 
"et google il pue ?"
 
sans la moindre  politesse , je ne sait pas si c'est pas plutot la reponse qui est débile.
Mais bon tout le monde n'a pas été élevé pareil .
A bon entendeur salut.


Message édité par wydook le 26-03-2005 à 19:49:25
Reply

Marsh Posté le 27-03-2005 à 03:04:51    

Apprends à utiliser les regex pour faire ce que tu souhaites... Partie 1: http://www.siteduzero.com/php/regex1.php et Partie 2 http://www.siteduzero.com/php/regex2.php
 
Tu as un tuto deja tout fait mais bon, je suis sur que tu n'iras pas le copier coller bêtement hein ? :) http://www.siteduzero.com/php/regex2.php#capture

Reply

Marsh Posté le 27-03-2005 à 20:15:19    

bon j'ai essayer ca dans ma page qui affiche les news
 
 et j'ai donc ecrit dans ma page inserer une news
 
[i]bonjour[/i ]  
 
 
et ca me donne dans la page afficher la news  
 
 
[i]bonjour[/i ]   (sans l'espace a la fin)
 
 
 
 
je vous  ma page entiere qui affiche les news
 
 

Code :
  1. <? session_start(); ?>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  3. <html>
  4. <head>
  5. <title>Document sans titre</title>
  6. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  7. <!-- DEBUT DU SCRIPT -->
  8. <script LANGUAGE="JavaScript">
  9. /*
  10. SCRIPT EDITE SUR L'EDITEUR JAVASCRIPT
  11. <a href='http://www.editeurjavascript.com' target='_blank'>http://www.editeurjavascript.com</a>
  12. */
  13. navvers = navigator.appVersion.substring(0,1);
  14. if (navvers > 3)
  15.     navok = true;
  16. else
  17.     navok = false;
  18. today = new Date;
  19. jour = today.getDay();
  20. numero = today.getDate();
  21. if (numero<10)
  22.     numero = "0"+numero;
  23. mois = today.getMonth();
  24. if (navok)
  25.     annee = today.getFullYear();
  26. else
  27.     annee = today.getYear();
  28. TabJour = new Array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi" );
  29. TabMois = new Array("janvier","février","mars","avril","mai","juin","juillet","aout","septembre","octobre","novembre","dééembre" );
  30. messageDate = TabJour[jour] + " " + numero + " " + TabMois[mois] + " " + annee;
  31. </SCRIPT>
  32. <!-- FIN DU SCRIPT --><script LANGUAGE="JavaScript">
  33. Today = new Date;
  34. Heure = Today.getHours();
  35. Min = Today.getMinutes();
  36. Message = "Il est " + Heure + "h" + Min + "";
  37. </SCRIPT>
  38. </head>
  39. <body background="../fond_site_bord.jpg" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
  40. <table width="980" border=0 cellspacing="0" background="../fond_site.jpg" style="border:1px solid black" table>
  41.   <tr>
  42.     <td height="21" colspan="2" align="center" valign="top">
  43.       <?php
  44.   include('../entete.php');  // Nous appelons notre menu
  45. ?>
  46.     </td>
  47.   </tr>
  48.   <tr>
  49.     <td width="19%" height="971" align="center" valign="top">
  50.       <?php
  51.   include('../menu-gauche.php');  // Nous appelons notre menu
  52. ?>
  53.     </td>
  54.     <td height="971" align="center" valign="top"> <div align="center"> </div>
  55.       <br> <br>
  56. <?
  57. if (isset($_POST['$texte_news']))
  58. {
  59.     $texte_news = stripslashes($_POST['$texte_news']); // On enlève les slash qui se seraient ajoutés automatiquement
  60.     $texte_news = htmlentities($texte_news); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
  61.     $texte_news = nl2br($texte_news); // On crée des <br /> pour conserver les retours à la ligne
  62.    
  63.     // On fait passer notre texte à la moulinette des Regex
  64.     $texte_news = preg_replace('!\[b\](.+)\[/b\]!isU', '<strong>$1</strong>', $texte_news);
  65.     $texte_news= preg_replace('!\[i\](.+)\[/i\]!isU', '<em>$1</em>', $texte_news);
  66.    $texte_news = preg_replace('!\[color=(red|green|blue|yellow|purple|olive)\](.+)\[/color\]!isU', '<span style="color:$1">$2</span>', $texte_news);
  67.     $texte_news = preg_replace('!http://[a-z0-9._/-]+!i', '<a href="$0">$0</a>', $texte_news);
  68.    
  69. }
  70. ?><?php
  71. // on se connecte à notre base
  72. $base = mysql_connect ('sql', '***', '***');
  73.     mysql_select_db('***', $base);
  74. $nombreDeMessagesParPage = 1; // Le nombre de news sur chaque page
  75. // On récupère le nombre total de messages
  76. $retour = mysql_query('SELECT COUNT(*) AS nb_news FROM news');
  77. $donnees = mysql_fetch_array($retour);
  78. $totalDesMessages = $donnees['nb_news'];
  79. // On calcule le nombre de pages à créer
  80. $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
  81. if (isset($_GET['num_page']))
  82. {
  83.     $page = $_GET['num_page']; // On récupère le numéro de la page indiqué dans l'adresse (news.php?num_page=4)
  84. }
  85. else // La variable n'existe pas, c'est la première fois qu'on charge la page
  86. {
  87.     $page = 1; // On se met sur la page 1 (par défaut)
  88. }
  89. // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
  90. $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
  91. // lancement de la requête. on sélectionne les news que l'on va ordonner suivant l'ordre "inverse" des dates (de la plus récente à la plus vieille : DESC) tout en ne sélectionnant que le nombre voulu de news à afficher (LIMIT)
  92. $sql = 'SELECT id, auteur, titre, date, texte_news FROM news3
  93. ORDER BY id  LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage;
  94. // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
  95. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  96. // on compte le nombre de news stockées dans la base de données
  97. $nb_news = mysql_num_rows($req);
  98. if ($nb_news == 0) {
  99.     echo 'Aucune news enregistrée.';
  100. }
  101. else {
  102.     // si on a au moins une news, on l'affiche
  103.     while ($data = mysql_fetch_array($req)) {
  104.         // on décompose la date  
  105.         sscanf($data['date'], "%4s-%2s-%2s %2s:%2s:%2s", $an, $mois, $jour, $heure, $min, $sec);
  106.         // on affiche les résultats
  107.        echo '<p id="'.$data['id'].'">'; ?>
  108. <body background="http://***.free.fr/fond_site.jpg">
  109. <div align="center">
  110.   <table width="743" border="0" align="center" cellspacing="0" bgcolor="#4ab7ff" style="border:1px solid black">
  111.     <tr align="center" valign="middle" bgcolor="E8F1F7"  >  
  112.       <td bgcolor="E8F1F7">  
  113.         <div align="right"><font color="#FF0000" size="3"><em><strong> </strong></em></font>  
  114.           <font color="#990000" size="3"><em><? echo 'Postée le : ' , $jour , '/' , $mois , '/' , $an , ' à ' , $heure , ':' , $min , '' ;  ?>  
  115.           ,  
  116.           <?  echo 'Auteur : ' , stripslashes(htmlentities(trim($data['auteur']))) ; ?>
  117.           </em></font></div></tr>
  118.     <tr align="center" valign="middle" bgcolor="#94BEDA">  
  119.       <td><font color="#000000" size="4 pt" ><strong><u><? echo '' , stripslashes(htmlentities(trim($data['titre']))) ; ?></u></strong></font></tr>
  120.     <tr align="center" valign="middle" bgcolor="E8F1F7" >  
  121.       <td><div align="left"><font color="#000000" size="3 pt" ><? echo '' , nl2br(stripslashes(htmlentities(trim($data['texte_news'])))) ; ?>  
  122.                 </font> </div></table>
  123.   <p>
  124.     <?
  125.          
  126.     }
  127. }
  128. // on libère l'espace mémoire alloué à cette requête
  129. mysql_free_result ($req);
  130. ?>
  131.   </p>
  132.   <p>Page :  
  133.     <?
  134. for ($i = 1 ; $i <= $nombreDePages ; $i++)
  135. {
  136.     echo '<a href="index_france.php?num_page=' . $i . '">' . $i . '</a> ';
  137. }
  138. ?>
  139.     <?
  140. // on ferme la connexion à la base de données
  141. mysql_close (); ?>
  142.   </p>
  143.   <p><font color="#000000" size="2"><a href="http://mameteo.free.fr/news/insert_news.php">Inserer  
  144.     une nouvelle news (Réserver modérateurs) </a></font> </p>
  145. </div>
  146.       <br> <br> &nbsp;<br> <br> &nbsp; </td>
  147.   </tr>
  148.   <tr>  
  149.     <td height="21" colspan="2" align="center" valign="top" style="border-top:1px solid black">  
  150.       <div align="center">  
  151.         <?php  
  152.   include('../infosbas.php');  // Nous appelons notre menu
  153. ?>
  154.       </div>
  155.       <div align="center"> </div></td>
  156.   </tr>
  157. </table>
  158. </body>
  159. </html>

Reply

Marsh Posté le 28-03-2005 à 03:57:32    

Ton register global semble a off...
Donc:

Code :
  1. $texte_news= preg_replace('!\[i\](.+)\[/i\]!isU', '<em>$1</em>', $texte_news); //pas bon
  2. $_POST['texte_news']= preg_replace('!\[i\](.+)\[/i\]!isU', '<em>$1</em>', $texte_news); //en principe bon


PS: J'ai eu la flemme de lire ton code... lol désolé, donc bon je pense que le probléme vient de la, si ce n'est pas le cas dis le moi :)


Message édité par Tempus_Fugit le 28-03-2005 à 03:58:46
Reply

Marsh Posté le 28-03-2005 à 04:01:13    

Je viens de relire vite fait (mais tjrs avec la flemme).
Je retire ce que j'ai dis precedemment, le probléme doit venir de :

Code :
  1. # if (isset($_POST['$texte_news']))
  2. # {
  3. #     $texte_news = stripslashes($_POST['$texte_news']); // On enlève les slash qui se seraient ajoutés automatiquement
  4. #     $texte_news = htmlentities($texte_news); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
  5. #     $texte_news = nl2br($texte_news); // On crée des <br /> pour conserver les retours à la ligne
  6. #     
  7. #     // On fait passer notre texte à la moulinette des Regex
  8. #     $texte_news = preg_replace('!\[b\](.+)\[/b\]!isU', '<strong>$1</strong>', $texte_news);
  9. #     $texte_news= preg_replace('!\[i\](.+)\[/i\]!isU', '<em>$1</em>', $texte_news);
  10. #    $texte_news = preg_replace('!\[color=(red|green|blue|yellow|purple|olive)\](.+)\[/color\]!isU', '<span style="color:$1">$2</span>', $texte_news);
  11. #     $texte_news = preg_replace('!http://[a-z0-9._/-]+!i', '<a href="$0">$0</a>', $texte_news);
  12. #
  13. #     
  14. # }


En fait c'est if (isset($_POST['texte_news'])) et non pas if (isset($_POST['$texte_news']))

Reply

Marsh Posté le 28-03-2005 à 08:59:39    

Merci a toi , mia ca fonctionne toujours pas . J'ai eesayer plusieur methode , et toujours rien .

Reply

Marsh Posté le 28-03-2005 à 08:59:39   

Reply

Marsh Posté le 29-03-2005 à 05:24:01    

Euh ben c'est simple, essai en sur une page vierge:
Récupération du champ X du formulaire.
preg_replace sur le post du formulaire
echo de la variable post une fois passé au preg replace.
 
Le principe marche... Donc a partir de la c'est qu'il y avoir une petite faute bête dans ton code.

Reply

Marsh Posté le 29-03-2005 à 14:49:34    

A mort le bbcode et tous les sites préprogrammés à la phpNuke, phpTournoi, ...

Reply

Marsh Posté le 29-03-2005 à 17:16:24    

lol pas mal le mec.
En gros internet ne doit être accessible qu'aux personnes connaissant le html ?
Les balises bbcode sont quand même bien. Ils ont eu une bonne idée, ca se standardise, point.
 
A moins d'avoir une meilleure ideé ? ^^

Reply

Marsh Posté le 29-03-2005 à 19:10:59    

BB code, franchement, je trouve ça con.
Pourquoi ne pas simplement autoriser certaines balises HTML ? Surtout que la majorité des bbcode sont, à part [], les mêmes qu'en HTML.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed