Créer un compte
Connexion

Probleme parsage BBcode

Pour créer et répondre aux sujets, vous devez être connecté.
Ce sujet est résolu.
Pages: 1
Auteur Message
Aglzime
03/09/2010 à 12:06:19
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Bonjour,
je n'arrive pas a parser mon code BBCODE! Tout fonctionne comme je le désire, mais à la lecture, le texte n'est pas en forme voulu aucune mise en forme! voici le code
mapage.php
<?php
session_start();
// on vérifie toujours qu'il s'agit d'un membre qui est connecté
if (!isset($_SESSION['login'])) {
        // si ce n'est pas le cas, on le redirige vers l'accueil
        header ('Location: index.php');
        exit();
}

// on teste si le formulaire a bien été soumis
if (isset($_POST['Envoyer']) && $_POST['Envoyer'] == 'Envoyer') {
if (!isset($_GET['id_message']) || empty($_GET['id_message'])) {

 

       
function parsecode($content) {
        // Parsage des balises
        $code = array(  
                '`&lt;italique&gt;(.+)&lt;/italique&gt;`isU',  
                '`&lt;gras&gt;(.+)&lt;/gras&gt;`isU',
                '`&lt;barre&gt;(.+)&lt;/barre&gt;`isU',
                '`&lt;lien&gt;(.+)&lt;/lien&gt;`isU',
                '`&lt;lien url=&quot;(.+)&quot;&gt;(.+)&lt;/lien&gt;`isU',
                '`&lt;image&gt;(.+)&lt;/image&gt;`isU',
                '`&lt;citation&gt;(.+)&lt;/citation&gt;`isU',
                '`&lt;citation nom=&quot;(.+)&quot;&gt;(.+)&lt;/citation&gt;`isU',
                '`&lt;citation lien=&quot;(.+)&quot;&gt;(.+)&lt;/citation&gt;`isU',
                '`&lt;taille valeur=&quot;(.+)&quot;&gt;(.+)&lt;/taille&gt;`isU'
        );  
       
        $html = array(  
                '<em>$1</em>',  
                '<strong>$1</strong>',
                '<del>$1</del>',
                '<a href="$1">$1</a>',
                '<a href="$1">$2</a>',
                '<img src="$1" alt="Image utilisateur" />',
                '<br /><span class="citation">Citation</span><div class="citation2">$1</div>',
                '<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>',
                '<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>',
                '<span class="$1">$2</span>'
        );
               
        if (get_magic_quotes_gpc()) {
                $content = stripslashes($content);
        }
        $content = nl2br(str_replace('&amp;#', '&#',htmlspecialchars($content, ENT_QUOTES, 'UTF-8')));
        $content = preg_replace($code, $html, $content);
       
         // parsage des smilies
        $smiliesName = array(':love:', ':bisouxx:', ':clin2:', ':confus:', ':vomir:', ':endormi:', ':foot:', ':ideeampoule:', ':pleurnich:', ':xD:', ':discuter:', ':fatigue:', ':tristesoupir:', ':tadssa:', ':gateauxaniv:', ':cafe:', ':houb:',  ':msgamour:', ':tafoukt:', ':clinclin:', ':daccord:', ':danse:', ':oiseau:', ':mechant:', ':bananedanse:', ':bananesalut:', ':winner:', ':satisfait:', ':magicien:', ':nouveau:');
        $smiliesUrl  = array('amoureu-content.png', 'bisoux.gif', 'clin2.gif', 'confus.gif', 'vomir.gif', 'endormi.gif', 'foot.gif', 'idee-ampoule.gif', 'pleurer.gif', 'lol.gif', 'discuter.gif', 'malade.gif', 'triste-soupir.gif', 'hahah.gif', 'gateauanniv.gif', 'cafe.gif', 'houb.gif', 'msg_amour.gif', 'soleil.gif', 'clin.gif', 'daccord.gif', 'danse.gif', 'oiseau.gif', 'mechant.gif', 'banane-danse.gif', 'banane-salut.gif', 'winner.gif', 'satisfait.gif', 'magicien.gif', 'nouveau.gif');
        $smiliesPath = "http://monsite.com/";
       
        for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
                $content = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $content);
        }
       
        return $content;

}

if (isset($_POST["string"])) {
        $content = $_POST["string"];
       
        if (get_magic_quotes_gpc()) {
                $content = stripslashes($content);
        }

        echo parsecode($content); // Ecriture du contenu parsé.
}
        if (empty($_POST['expediteur']) || empty($_POST['titre']) || empty($_POST['message_text'])) {
                $erreur = 'Au moins un des champs est vide.';
        }
        else {
        include('mysql_connect.php');
        mysql_select_db ('nom_base', $connexion_base) or die ("erreur de connexion base");
                mysql_query("SET NAMES 'utf8'");
 

                // si tout a été bien rempli, on insère le message dans notre table SQL
                $date_mois = date('d/m/Y');
                $hour_heure = date('H:i:s');
                $datenvoi = $date_mois. "&nbsp;&agrave;&nbsp;" .$hour_heure;
                $inser = 'INSERT INTO messages VALUES("", "'.$_SESSION['id'].'", "'.mysql_escape_string(str_replace('&amp;#', '&#', htmlentities($_POST['expediteur'], ENT_QUOTES, "UTF-8"))).'", "'.$datenvoi.'", "'.mysql_escape_string(str_replace('&amp;#', '&#', htmlentities(utf8_encode($_POST['titre']), ENT_QUOTES, "UTF-8"))).'", "'.mysql_escape_string(parsecode(utf8_encode($_POST['message_text']))).'", "0")';
                mysql_query($inser) or die('Erreur SQL !'.$inser.'<br />'.mysql_error());


        }
}

}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Repondre aux messages!</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="bbcode/mep.css" rel="stylesheet" type="text/css" media="all" />
<link rel="stylesheet" type="text/css" href="bbcode/skin.css">
<script type="text/javascript" src="bbcode/bbc.js"></script>
<link href="includes/design.css" rel="stylesheet" type="text/css" />
<link href="includes/menucss.css" rel="stylesheet" type="text/css" />
<link href="includes/template.css" rel="stylesheet" type="text/css" />
</head>

<body>
<?php include('includes/entetepage.php')?>
<a href="membre.php">Retour à l'accueil</a><br /><br />
R&eacute;pondre :<br /><br />
<?php
        include('mysql_connect.php');
        mysql_select_db ('nom_base', $connexion_base) or die ("erreur de connexion base");
                mysql_query("SET NAMES 'utf8'");
 $sql = mysql_query('SELECT id_expediteur FROM messages WHERE id="'.$_GET['id_message'].'" AND id_destinataire="'.$_SESSION['id'].'"')or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
 $dnn = mysql_fetch_array($sql);
 if(mysql_num_rows($sql)>0)
 {
                $logexp = $dnn['id_expediteur'];
        $sreq = mysql_query('SELECT login FROM membre WHERE id="'.$logexp.'"')or die('Erreur SQL !<br />'.$sreq.'<br />'.mysql_error());
           $dnno = mysql_fetch_array($sreq);
                   $idexpediteur = $dnno['id'];
                                }

 ?>
        <form action="repondre.php" method="post">
        A :<select name="expediteur">
        <?php
                   echo '<option id="expediteur" value="'.$idexpediteur.'"><strong>'.$dnno['login'].'</strong>';
        mysql_close();        
        ?>
        </select><br />
         Titre : <input type="text" name="titre" value="<?php if (isset($_POST['titre'])) echo str_replace('&amp;#', '&#',stripslashes(htmlentities($_POST['titre'], ENT_QUOTES, "UTF-8"))); ?>"><br />
        Message :
        <div>
               
                        <p>
                                <input type="button" style="font-weight: bold;" value="G" onclick="insertTag('&lt;gras&gt;', '&lt;/gras&gt;', 'message_text')" />
                                <input type="button" style="font: italic;" value="I" onclick="insertTag('&lt;italique&gt;', '&lt;/italique&gt;', 'message_text')" />
                                <input type="button" value="Lien" onclick="insertTag('', '', 'message_text', 'lien')" />
                                <input type="button" value="Image" onclick="insertTag('&lt;image&gt;', '&lt;/image&gt;', 'message_text')" />
                                <input type="button" value="Citation" onclick="insertTag('', '', 'message_text', 'citation')" />
                               
                                <select onchange="insertTag('&lt;taille valeur=&quot;' + this.options[this.selectedIndex].value + '&quot;&gt;', '&lt;/taille&gt;', 'message_text');">
                                        <option value="none" class="selected" selected="selected">Taille</option>
                                        <option value="ttpetit">Très très petit</option>
                                        <option value="tpetit">Très petit</option>
                                        <option value="petit">Petit</option>
                                        <option value="gros">Gros</option>
                                        <option value="tgros">Très gros</option>
                                        <option value="ttgros">Très très gros</option>
                                </select>
                                <select onchange="insertTag('&lt;couleur valeur=&quot;' + this.options[this.selectedIndex].value + '&quot;&gt;', '&lt;/couleur&gt;', 'message_text');">
                                        <option value="none" class="selected" selected="selected">Couleur</option>
                                        <option value="cbleu" style="background-color:blue">Bleu</option>
                                        <option value="crouge" style="background-color:red">Rouge</option>
                                        <option value="cvert" style="background-color:green">Vert</option>
                                        <option value="cmaroon" style="background-color:maroon">Maroon</option>
                                        <option value="cnoire" style="background-color:black; color:white">Noire</option>
                                        <option value="corange" style="background-color:orange">Orange</option>
                                </select>
                         

                                <img src="http://users.teledisnet.be/web/mde28256/smiley/smile.gif" alt=":)" onclick="insertTag(' :) ', '', 'message_text');" />
                                <img src="http://users.teledisnet.be/web/mde28256/smiley/unsure2.gif" alt=":euh:" onclick="insertTag(' :euh: ', '', 'message_text');" />
                        </p>
                       
                        <p>
                                <input name="previsualisation" type="checkbox" id="previsualisation" value="previsualisation" />
                                <label for="previsualisation">Pr&eacute;visualisation automatique</label>
                        </p>
                       
                </div>
               <table border="0"><tr><td>
                <Textarea name="message_text" onkeyup="preview(this, 'previewDiv');" onselect="preview(this, 'previewDiv');" id="message_text" cols="100" rows="10"><?php if (isset($_POST['message_text'])) echo stripslashes(htmlentities($_POST['message_text'], ENT_QUOTES, "UTF-8")); ?></Textarea></td><td>
                                <?php include('includes/imoticones.php');?></td></tr></table>
               <b><u>Aperçu de votre message:</u></b>
                <table border="0" cellspacing="0" width="890px" cellpadding="0"><tr><td bgcolor="#CEF6F5"><div id="previewDiv"></div></td></tr></table>

               
                <div id="viewDiv"></div>
                        <input type="submit" name="Envoyer" value="Envoyer"></form>
     

        <?php


mysql_close();
?>
</select>

<br /><br /><a href="deconnexion.php">Déconnexion</a>
<?php
// si une erreur est survenue lors de la soumission du formulaire, on l'affiche
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
<?php include('includes/footer.php')?>
</body>
</html>
Merci davance!

ybouane
03/09/2010 à 00:08:50
ybouane
Admin
Bonjour,
J'ai essayé et ça fonctionne, peut-tu préciser le problème.

Cordialement

Image
Aglzime
03/09/2010 à 18:27:47
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
désolé j'ai fait une petite erreur
sujet résolu!!

Pages: 1