Créer un compte
Connexion

Ecriture arabe (BDD)

Pour créer et répondre aux sujets, vous devez être connecté.
Ce sujet est résolu.
Pages: 1
Auteur Message
Aglzime
02/08/2010 à 14:41:45
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Bonjour,
Je rencontre un petit problème, lorsque on poste un message en arab dans ma base de donné, s'afficher des caractères du genre: اÙ?سÙ?اÙ? عÙ?Ù?Ù?Ù? Ù? رحÙ?Ø© اÙ?Ù?Ù? Ù?برÙ?اتÙ?,
je ne sais pourquoi!
je précise les champs de ma bdd sont en utf8_general_ci :
 -_-
Merci d'avance

ybouane
02/08/2010 à 18:26:23
ybouane
Admin
Bonjour,
Essaye de mettre ce code juste après la connection à la BDD:
mysql_query("SET NAMES 'utf8'"); Avant d'envoyer le message dans la BDD est ce qu'il y a un htmlentities?
si oui, alors remplace dans ton code le:
htmlentities($variable);par
htmlentities($variable, ENT_QUOTES, "UTF-8"); Après dis moi si ça fonctionne.
Cordialement :)

Image
Aglzime
04/08/2010 à 22:58:23
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Non désolé ça ne fonctionne pas! celà gère que les caractères spéciaux comme "é", "è" "à"...
mais pas l'arabe!

ybouane
05/08/2010 à 20:26:03
ybouane
Admin
Bonjour,
peut-tu me donner le code de ta page pour que je puisse t'aider.

Cordialement

Image
Aglzime
05-08-2010 à 22:47:03
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Voici la page d'envoi:
envoyer.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') {
       
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>'
        );
       
        $content = htmlspecialchars($content);
        $content = preg_replace($code, $html, $content);
       
        // parsage des smilies
        $smiliesName = array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '&gt;_&lt;', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':\'\\(', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°');
        $smiliesUrl  = array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'pleure.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
        $smiliesPath = "http://monsite§.fr/images/smilies/";
       
        for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
                $content = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $content);
        }
       
        // Rtours à la ligne
        $content = preg_replace('`\n`isU', '<br />', $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['destinataire']) || empty($_POST['titre']) || empty($_POST['message_text'])) {
                $erreur = 'Au moins un des champs est vide.';
        }
        else {
                $base = mysql_connect ('host', 'idbdd', 'psswrd');
                mysql_select_db ('nom_base', $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;
                $sql = 'INSERT INTO messages VALUES("", "'.$_SESSION['id'].'", "'.$_POST['destinataire'].'", "'.$datenvoi.'", "'.mysql_escape_string($_POST['titre']).'", "'.mysql_escape_string(parsecode($_POST['message_text'])).'", "0")';
                mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

                mysql_close();

                header('Location: membre.php');
                exit();
        }
}
?>

<!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>Ecrire un message à un membre!</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" />
</head>

<body>
<a href="membre.php">Retour à l'accueil</a><br /><br />
Envoyer un message :<br /><br />

<?php
$base = mysql_connect ('sql.free.fr', ' ', '');
mysql_select_db ('nom_base', $base);
mysql_query("SET NAMES 'utf8'");


// 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
$sql = 'SELECT membre.login as nom_destinataire, membre.id as id_destinataire FROM membre WHERE id <> "'.$_SESSION['id'].'" ORDER BY login ASC';
// on lance notre requete SQL
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows ($req);

if ($nb == 0) {
        // si aucun membre n'a été trouvé, on affiche tout simplement aucun formulaire
        echo 'Vous êtes le seul membre inscrit.';
}
else {
        // si au moins un membre qui n'est pas nous même a été trouvé, on affiche le formulaire d'envoie de message
        ?>
        <form action="envoyer.php" method="post">
        Pour :<select name="destinataire">
        <?php
        // on alimente le menu déroulant avec les login des différents membres du site
        while ($data = mysql_fetch_array($req)) {
                echo '<option value="' , $data['id_destinataire'] , '">' , stripslashes(htmlentities(trim($data['nom_destinataire']))) , '</option>';
        }
        ?>
        </select><br />
        Titre : <input type="text" name="titre" value="<?php if (isset($_POST['titre'])) echo stripslashes(htmlentities(trim(($_POST['titre']), ENT_QUOTES, "UTF-8"))); ?>"><br />
        Message :
        <div>
               
                        <p>
                                <input type="button" value="G" onclick="insertTag('&lt;gras&gt;', '&lt;/gras&gt;', 'message_text')" />
                                <input type="button" 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>
                               
                                <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>
               
                <Textarea name="message_text" onkeyup="preview(this, 'previewDiv');" onselect="preview(this, 'previewDiv');" id="message_text" cols="150" rows="10"><?php if (isset($_POST['message_text'])) echo stripslashes(htmlentities(trim(($_POST['message_text']), ENT_QUOTES, "UTF-8"))); ?></Textarea>
               
                <div id="previewDiv"></div>
               
                <p>
                        <input type="button" value="Visualiser" onclick="view('message_text','viewDiv');" />
                </p>
               
                <div id="viewDiv"></div>
                        <input type="submit" name="Envoyer" value="Envoyer">
        </form>
       
</div>
        <?php
}
mysql_free_result($req);
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;
?>
</body>
</html>
et la page lire.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();
}
?>

<html>
<head>
<link href="includes/design.css" rel="stylesheet" type="text/css" />
<title>Lire les messages</title>
</head>

<body>
<div class="global">
<?php include('includes/entetepage.php');?>
<a href="membre.php">Retour à l'accueil</a><br /><br />
<?php
// on teste si notre paramètre existe bien et qu'il n'est pas vide
if (!isset($_GET['id_message']) || empty($_GET['id_message'])) {
        echo 'Aucun message reconnu.';
}
else {
        include('mysql_connect.php');
        mysql_select_db ('nom_base', $connexion_base) or die ("erreur de connexion base");
        // 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é
        $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'].'"';
        // on lance cette requete SQL à MySQL
        $req = mysql_query($sql,$test1) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
        $nb = mysql_num_rows($req);
       

        if ($nb == 0) {
                echo 'Aucun message reconnu.';
        }
        else {
                // si le message a été trouvé, on l'affiche
                $data = mysql_fetch_array($req);
                echo '<table border="0" cellspacing="0" cellpadding="0" width="885"><tr><td bgcolor="#E3CEF6"><table border="0" width=100%><tr><td align="left"><font face="verdana" size="2"> De:<b> ' , stripslashes(htmlentities(trim($data['expediteur']))) , '</b></td><td align="center">Titre:"<b>' , stripslashes(htmlentities(trim($data['titre']))) , '</b>"</td><td align="right">le: <b>'  , $data['date'] , '</b></td></tr></table></td></tr><tr><td bgcolor="#ECE0F8">';
                echo nl2br(stripslashes(htmlentities(trim($data['message']))));
                echo '<br/><br /><hr style="color:blue; height:1px; border:1px; width:345;">';
                // on affiche également un lien permettant de supprimer ce message de la boite de réception
                echo '<a href="supprimer.php?id_message=' , $_GET['id_message'] , '">Supprimer ce message</a></td></tr></table>';
        }
        mysql_query('UPDATE messages SET lu="1" WHERE id="'.$id_message.'"');
        mysql_free_result($req);
        mysql_close();
}
?>
<br />
<?php include('includes/footer.php');?>
</body>
</html>


ybouane
05/08/2010 à 22:45:17
ybouane
Admin
Bonjour,
essaye ça:
envoyer.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') {
       
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>'
        );
       
        $content = htmlentities($content, ENT_QUOTES, "UTF-8");
        $content = preg_replace($code, $html, $content);
       
        // parsage des smilies
        $smiliesName = array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '&gt;_&lt;', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':\'\\(', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°');
        $smiliesUrl  = array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'pleure.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
        $smiliesPath = "http://monsite§.fr/images/smilies/";
       
        for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
                $content = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $content);
        }
       
        // Rtours à la ligne
        $content = preg_replace('`\n`isU', '<br />', $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['destinataire']) || empty($_POST['titre']) || empty($_POST['message_text'])) {
                $erreur = 'Au moins un des champs est vide.';
        }
        else {
                $base = mysql_connect ('host', 'idbdd', 'psswrd');
                mysql_select_db ('nom_base', $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;
                $sql = 'INSERT INTO messages VALUES("", "'.$_SESSION['id'].'", "'.mysql_escape_string($_POST['destinataire']).'", "'.$datenvoi.'", "'.mysql_escape_string($_POST['titre']).'", "'.mysql_escape_string(parsecode($_POST['message_text'])).'", "0")';
                mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

                mysql_close();

                header('Location: membre.php');
                exit();
        }
}
?>

<!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>Ecrire un message à un membre!</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" />
</head>

<body>
<a href="membre.php">Retour à l'accueil</a><br /><br />
Envoyer un message :<br /><br />

<?php
$base = mysql_connect ('sql.free.fr', '', '');
mysql_select_db ('nom_base', $base);
mysql_query("SET NAMES 'utf8'");


// 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
$sql = 'SELECT membre.login as nom_destinataire, membre.id as id_destinataire FROM membre WHERE id <> "'.$_SESSION['id'].'" ORDER BY login ASC';
// on lance notre requete SQL
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows ($req);

if ($nb == 0) {
        // si aucun membre n'a été trouvé, on affiche tout simplement aucun formulaire
        echo 'Vous êtes le seul membre inscrit.';
}
else {
        // si au moins un membre qui n'est pas nous même a été trouvé, on affiche le formulaire d'envoie de message
        ?>
        <form action="envoyer.php" method="post">
        Pour :<select name="destinataire">
        <?php
        // on alimente le menu déroulant avec les login des différents membres du site
        while ($data = mysql_fetch_array($req)) {
                echo '<option value="' , $data['id_destinataire'] , '">' , stripslashes(htmlentities(trim($data['nom_destinataire']))) , '</option>';
        }
        ?>
        </select><br />
        Titre : <input type="text" name="titre" value="<?php if (isset($_POST['titre'])) echo stripslashes(htmlentities(trim(($_POST['titre']), ENT_QUOTES, "UTF-8"))); ?>"><br />
        Message :
        <div>
               
                        <p>
                                <input type="button" value="G" onclick="insertTag('&lt;gras&gt;', '&lt;/gras&gt;', 'message_text')" />
                                <input type="button" 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>
                               
                                <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>
               
                <Textarea name="message_text" onkeyup="preview(this, 'previewDiv');" onselect="preview(this, 'previewDiv');" id="message_text" cols="150" rows="10"><?php if (isset($_POST['message_text'])) echo stripslashes(htmlentities(trim(($_POST['message_text']), ENT_QUOTES, "UTF-8"))); ?></Textarea>
               
                <div id="previewDiv"></div>
               
                <p>
                        <input type="button" value="Visualiser" onclick="view('message_text','viewDiv');" />
                </p>
               
                <div id="viewDiv"></div>
                        <input type="submit" name="Envoyer" value="Envoyer">
        </form>
       
</div>
        <?php
}
mysql_free_result($req);
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;
?>
</body>
</html>
lire.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();
}
?>

<html>
<head>
<link href="includes/design.css" rel="stylesheet" type="text/css" />
<title>Lire les messages</title>
</head>

<body>
<div class="global">
<?php include('includes/entetepage.php');?>
<a href="membre.php">Retour à l'accueil</a><br /><br />
<?php
// on teste si notre paramètre existe bien et qu'il n'est pas vide
if (!isset($_GET['id_message']) || empty($_GET['id_message'])) {
        echo 'Aucun message reconnu.';
}
else {
        include('mysql_connect.php');
        mysql_select_db ('nom_base', $connexion_base) or die ("erreur de connexion base");
        // 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é
        $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'].'"';
        // on lance cette requete SQL à MySQL
        $req = mysql_query($sql,$test1) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
        $nb = mysql_num_rows($req);
       

        if ($nb == 0) {
                echo 'Aucun message reconnu.';
        }
        else {
                // si le message a été trouvé, on l'affiche
                $data = mysql_fetch_array($req);
                echo '<table border="0" cellspacing="0" cellpadding="0" width="885"><tr><td bgcolor="#E3CEF6"><table border="0" width=100%><tr><td align="left"><font face="verdana" size="2"> De:<b> ' , stripslashes(htmlentities(trim($data['expediteur']), ENT_QUOTES, "UTF-8")) , '</b></td><td align="center">Titre:"<b>' , stripslashes(htmlentities(trim($data['titre']), ENT_QUOTES, "UTF-8")) , '</b>"</td><td align="right">le: <b>'  , $data['date'] , '</b></td></tr></table></td></tr><tr><td bgcolor="#ECE0F8">';
                echo nl2br(stripslashes(trim($data['message']))));
                echo '<br/><br /><hr style="color:blue; height:1px; border:1px; width:345;">';
                // on affiche également un lien permettant de supprimer ce message de la boite de réception
                echo '<a href="supprimer.php?id_message=' , $_GET['id_message'] , '">Supprimer ce message</a></td></tr></table>';
        }
        mysql_query('UPDATE messages SET lu="1" WHERE id="'.$id_message.'"');
        mysql_free_result($req);
        mysql_close();
}
?>
<br />
<?php include('includes/footer.php');?>
</body>
</html>
Cordialement

Image
Aglzime
06/08/2010 à 02:05:57
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
desolé ça ne foctionne pas !
enfin une partie de bbcode fonctione mais la taille du texte non ! celà affcihe "le texte"
l'écriture arabe ne foctionne toujours pas!! ça affiche &#1604;&#1571;&#1588;&#1607;&#1585; &#1591;&#1608;&#1610;&#1604;&#1577; &#1608;&#1573;&#1583;&#1575;&#1585;&#1577; &#1575;&#1604;&#1605;&#1608;&#1602;&#1593;

ybouane
06/08/2010 à 07:58:29
ybouane
Admin
Bonjour,
c'est bizare O_o
Essaye ça dans ton code envoyer.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') {
       
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>'
        );
       
        $content = preg_replace($code, $html, $content);
       
        // parsage des smilies
        $smiliesName = array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '&gt;_&lt;', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':\'\\(', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°');
        $smiliesUrl  = array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'pleure.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
        $smiliesPath = "http://monsite§.fr/images/smilies/";
       
        for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
                $content = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $content);
        }
       
        // Rtours à la ligne
        $content = preg_replace('`\n`isU', '<br />', $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['destinataire']) || empty($_POST['titre']) || empty($_POST['message_text'])) {
                $erreur = 'Au moins un des champs est vide.';
        }
        else {
                $base = mysql_connect ('host', 'idbdd', 'psswrd');
                mysql_select_db ('nom_base', $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;
                $sql = 'INSERT INTO messages VALUES("", "'.$_SESSION['id'].'", "'.mysql_escape_string($_POST['destinataire']).'", "'.$datenvoi.'", "'.mysql_escape_string($_POST['titre']).'", "'.mysql_escape_string(parsecode($_POST['message_text'])).'", "0")';
                mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

                mysql_close();

                header('Location: membre.php');
                exit();
        }
}
?>

<!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>Ecrire un message à un membre!</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" />
</head>

<body>
<a href="membre.php">Retour à l'accueil</a><br /><br />
Envoyer un message :<br /><br />

<?php
$base = mysql_connect ('sql.free.fr', '', '');
mysql_select_db ('nom_base', $base);
mysql_query("SET NAMES 'utf8'");


// 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
$sql = 'SELECT membre.login as nom_destinataire, membre.id as id_destinataire FROM membre WHERE id <> "'.$_SESSION['id'].'" ORDER BY login ASC';
// on lance notre requete SQL
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows ($req);

if ($nb == 0) {
        // si aucun membre n'a été trouvé, on affiche tout simplement aucun formulaire
        echo 'Vous êtes le seul membre inscrit.';
}
else {
        // si au moins un membre qui n'est pas nous même a été trouvé, on affiche le formulaire d'envoie de message
        ?>
        <form action="envoyer.php" method="post">
        Pour :<select name="destinataire">
        <?php
        // on alimente le menu déroulant avec les login des différents membres du site
        while ($data = mysql_fetch_array($req)) {
                echo '<option value="' , $data['id_destinataire'] , '">' , stripslashes(htmlentities(trim($data['nom_destinataire']))) , '</option>';
        }
        ?>
        </select><br />
        Titre : <input type="text" name="titre" value="<?php if (isset($_POST['titre'])) echo stripslashes(htmlentities(trim(($_POST['titre']), ENT_QUOTES, "UTF-8"))); ?>"><br />
        Message :
        <div>
               
                        <p>
                                <input type="button" value="G" onclick="insertTag('&lt;gras&gt;', '&lt;/gras&gt;', 'message_text')" />
                                <input type="button" 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>
                               
                                <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>
               
                <Textarea name="message_text" onkeyup="preview(this, 'previewDiv');" onselect="preview(this, 'previewDiv');" id="message_text" cols="150" rows="10"><?php if (isset($_POST['message_text'])) echo stripslashes(htmlentities(trim(($_POST['message_text']), ENT_QUOTES, "UTF-8"))); ?></Textarea>
               
                <div id="previewDiv"></div>
               
                <p>
                        <input type="button" value="Visualiser" onclick="view('message_text','viewDiv');" />
                </p>
               
                <div id="viewDiv"></div>
                        <input type="submit" name="Envoyer" value="Envoyer">
        </form>
       
</div>
        <?php
}
mysql_free_result($req);
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;
?>
</body>
</html>

Cordialement:)

Image
Aglzime
06/08/2010 à 13:17:28
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
oh merciiii beaucoup maintenant l'écriture arabe fonctionne dans le champs message_text mais pas dans le titre!
et malheureusement le BBCODE ne fonctionne plus! aucune mise en forme du texte!!
:/

ybouane
06/08/2010 à 18:01:31
ybouane
Admin
Bonjour,
quand tu disait que ça affichait &#1604;[....]
Est ce que c'était dans le code source de la page ou dans le résultat même de la page?
et essaye avec ça et dis moi ce qui se passe:
envoyer.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') {
       
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>'
        );
               
        $content = str_replace('&amp;#', '&#', htmlentities($content, ENT_QUOTES, "UTF-8"));
        $content = preg_replace($code, $html, $content);
       
        // parsage des smilies
        $smiliesName = array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '&gt;_&lt;', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':\'\\(', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°');
        $smiliesUrl  = array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'pleure.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
        $smiliesPath = "http://monsite§.fr/images/smilies/";
       
        for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
                $content = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $content);
        }
       
        // Rtours à la ligne
        $content = preg_replace('`\n`isU', '<br />', $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['destinataire']) || empty($_POST['titre']) || empty($_POST['message_text'])) {
                $erreur = 'Au moins un des champs est vide.';
        }
        else {
                $base = mysql_connect ('host', 'idbdd', 'psswrd');
                mysql_select_db ('nom_base', $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;
                $sql = 'INSERT INTO messages VALUES("", "'.$_SESSION['id'].'", "'.mysql_escape_string(str_replace('&amp;#', '&#', htmlentities($_POST['destinataire'], ENT_QUOTES, "UTF-8"))).'", "'.$datenvoi.'", "'.mysql_escape_string(str_replace('&amp;#', '&#', htmlentities($_POST['titre'], ENT_QUOTES, "UTF-8"))).'", "'.mysql_escape_string(parsecode($_POST['message_text'])).'", "0")';
                mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

                mysql_close();

                header('Location: membre.php');
                exit();
        }
}
?>

<!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>Ecrire un message à un membre!</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" />
</head>

<body>
<a href="membre.php">Retour à l'accueil</a><br /><br />
Envoyer un message :<br /><br />

<?php
$base = mysql_connect ('sql.free.fr', '', '');
mysql_select_db ('nom_base', $base);
mysql_query("SET NAMES 'utf8'");


// 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
$sql = 'SELECT membre.login as nom_destinataire, membre.id as id_destinataire FROM membre WHERE id <> "'.$_SESSION['id'].'" ORDER BY login ASC';
// on lance notre requete SQL
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows ($req);

if ($nb == 0) {
        // si aucun membre n'a été trouvé, on affiche tout simplement aucun formulaire
        echo 'Vous êtes le seul membre inscrit.';
}
else {
        // si au moins un membre qui n'est pas nous même a été trouvé, on affiche le formulaire d'envoie de message
        ?>
        <form action="envoyer.php" method="post">
        Pour :<select name="destinataire">
        <?php
        // on alimente le menu déroulant avec les login des différents membres du site
        while ($data = mysql_fetch_array($req)) {
                echo '<option value="' , $data['id_destinataire'] , '">' , stripslashes(htmlentities(trim($data['nom_destinataire']))) , '</option>';
        }
        ?>
        </select><br />
        Titre : <input type="text" name="titre" value="<?php if (isset($_POST['titre'])) echo stripslashes(htmlentities(trim(($_POST['titre']), ENT_QUOTES, "UTF-8"))); ?>"><br />
        Message :
        <div>
               
                        <p>
                                <input type="button" value="G" onclick="insertTag('&lt;gras&gt;', '&lt;/gras&gt;', 'message_text')" />
                                <input type="button" 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>
                               
                                <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>
               
                <Textarea name="message_text" onkeyup="preview(this, 'previewDiv');" onselect="preview(this, 'previewDiv');" id="message_text" cols="150" rows="10"><?php if (isset($_POST['message_text'])) echo stripslashes(htmlentities(trim(($_POST['message_text']), ENT_QUOTES, "UTF-8"))); ?></Textarea>
               
                <div id="previewDiv"></div>
               
                <p>
                        <input type="button" value="Visualiser" onclick="view('message_text','viewDiv');" />
                </p>
               
                <div id="viewDiv"></div>
                        <input type="submit" name="Envoyer" value="Envoyer">
        </form>
       
</div>
        <?php
}
mysql_free_result($req);
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;
?>
</body>
</html>
lire.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();
}
?>

<html>
<head>
<link href="includes/design.css" rel="stylesheet" type="text/css" />
<title>Lire les messages</title>
</head>

<body>
<div class="global">
<?php include('includes/entetepage.php');?>
<a href="membre.php">Retour à l'accueil</a><br /><br />
<?php
// on teste si notre paramètre existe bien et qu'il n'est pas vide
if (!isset($_GET['id_message']) || empty($_GET['id_message'])) {
        echo 'Aucun message reconnu.';
}
else {
        include('mysql_connect.php');
        mysql_select_db ('nom_base', $connexion_base) or die ("erreur de connexion base");
        // 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é
        $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'].'"';
        // on lance cette requete SQL à MySQL
        $req = mysql_query($sql,$test1) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
        $nb = mysql_num_rows($req);
       

        if ($nb == 0) {
                echo 'Aucun message reconnu.';
        }
        else {
                // si le message a été trouvé, on l'affiche
                $data = mysql_fetch_array($req);
                echo '<table border="0" cellspacing="0" cellpadding="0" width="885"><tr><td bgcolor="#E3CEF6"><table border="0" width=100%><tr><td align="left"><font face="verdana" size="2"> De:<b> ' , stripslashes(trim($data['expediteur'])) , '</b></td><td align="center">Titre:"<b>' , stripslashes(trim($data['titre'])) , '</b>"</td><td align="right">le: <b>'  , $data['date'] , '</b></td></tr></table></td></tr><tr><td bgcolor="#ECE0F8">';
                echo nl2br(stripslashes(trim($data['message']))));
                echo '<br/><br /><hr style="color:blue; height:1px; border:1px; width:345;">';
                // on affiche également un lien permettant de supprimer ce message de la boite de réception
                echo '<a href="supprimer.php?id_message=' , $_GET['id_message'] , '">Supprimer ce message</a></td></tr></table>';
        }
        mysql_query('UPDATE messages SET lu="1" WHERE id="'.$id_message.'"');
        mysql_free_result($req);
        mysql_close();
}
?>
<br />
<?php include('includes/footer.php');?>
</body>
</html>

Cordialement

Image
Aglzime
06/08/2010 à 19:15:18
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre


ybouane
06/08/2010 à 20:33:58
ybouane
Admin
Bonjour,
Essaye ça:
envoyer.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') {
       
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>'
        );
               
        $content = str_replace('&amp;#', '&#', $content);
        $content = preg_replace($code, $html, $content);
       
        // parsage des smilies
        $smiliesName = array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '&gt;_&lt;', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':\'\\(', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°');
        $smiliesUrl  = array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'pleure.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
        $smiliesPath = "http://monsite§.fr/images/smilies/";
       
        for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
                $content = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $content);
        }
       
        // Rtours à la ligne
        $content = preg_replace('`\n`isU', '<br />', $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['destinataire']) || empty($_POST['titre']) || empty($_POST['message_text'])) {
                $erreur = 'Au moins un des champs est vide.';
        }
        else {
                $base = mysql_connect ('host', 'idbdd', 'psswrd');
                mysql_select_db ('nom_base', $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;
                $sql = 'INSERT INTO messages VALUES("", "'.$_SESSION['id'].'", "'.mysql_escape_string(str_replace('&amp;#', '&#', htmlentities($_POST['destinataire'], ENT_QUOTES, "UTF-8"))).'", "'.$datenvoi.'", "'.mysql_escape_string(str_replace('&amp;#', '&#', htmlentities($_POST['titre'], ENT_QUOTES, "UTF-8"))).'", "'.mysql_escape_string(parsecode($_POST['message_text'])).'", "0")';
                mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

                mysql_close();

                header('Location: membre.php');
                exit();
        }
}
?>

<!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>Ecrire un message à un membre!</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" />
</head>

<body>
<a href="membre.php">Retour à l'accueil</a><br /><br />
Envoyer un message :<br /><br />

<?php
$base = mysql_connect ('sql.free.fr', '', '');
mysql_select_db ('nom_base', $base);
mysql_query("SET NAMES 'utf8'");


// 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
$sql = 'SELECT membre.login as nom_destinataire, membre.id as id_destinataire FROM membre WHERE id <> "'.$_SESSION['id'].'" ORDER BY login ASC';
// on lance notre requete SQL
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows ($req);

if ($nb == 0) {
        // si aucun membre n'a été trouvé, on affiche tout simplement aucun formulaire
        echo 'Vous êtes le seul membre inscrit.';
}
else {
        // si au moins un membre qui n'est pas nous même a été trouvé, on affiche le formulaire d'envoie de message
        ?>
        <form action="envoyer.php" method="post">
        Pour :<select name="destinataire">
        <?php
        // on alimente le menu déroulant avec les login des différents membres du site
        while ($data = mysql_fetch_array($req)) {
                echo '<option value="' , $data['id_destinataire'] , '">' , stripslashes(htmlentities($data['nom_destinataire'], ENT_QUOTES, "UTF-8")) , '</option>';
        }
        ?>
        </select><br />
        Titre : <input type="text" name="titre" value="<?php if (isset($_POST['titre'])) echo stripslashes(htmlentities($_POST['titre'], ENT_QUOTES, "UTF-8")); ?>"><br />
        Message :
        <div>
               
                        <p>
                                <input type="button" value="G" onclick="insertTag('&lt;gras&gt;', '&lt;/gras&gt;', 'message_text')" />
                                <input type="button" 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>
                               
                                <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>
               
                <Textarea name="message_text" onkeyup="preview(this, 'previewDiv');" onselect="preview(this, 'previewDiv');" id="message_text" cols="150" rows="10"><?php if (isset($_POST['message_text'])) echo stripslashes(htmlentities($_POST['message_text'], ENT_QUOTES, "UTF-8")); ?></Textarea>
               
                <div id="previewDiv"></div>
               
                <p>
                        <input type="button" value="Visualiser" onclick="view('message_text','viewDiv');" />
                </p>
               
                <div id="viewDiv"></div>
                        <input type="submit" name="Envoyer" value="Envoyer">
        </form>
       
</div>
        <?php
}
mysql_free_result($req);
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;
?>
</body>
</html>
lire.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();
}
?>

<html>
<head>
<link href="includes/design.css" rel="stylesheet" type="text/css" />
<title>Lire les messages</title>
</head>

<body>
<div class="global">
<?php include('includes/entetepage.php');?>
<a href="membre.php">Retour à l'accueil</a><br /><br />
<?php
// on teste si notre paramètre existe bien et qu'il n'est pas vide
if (!isset($_GET['id_message']) || empty($_GET['id_message'])) {
        echo 'Aucun message reconnu.';
}
else {
        include('mysql_connect.php');
        mysql_select_db ('nom_base', $connexion_base) or die ("erreur de connexion base");
        // 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é
        $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'].'"';
        // on lance cette requete SQL à MySQL
        $req = mysql_query($sql,$test1) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
        $nb = mysql_num_rows($req);
       

        if ($nb == 0) {
                echo 'Aucun message reconnu.';
        }
        else {
                // si le message a été trouvé, on l'affiche
                $data = mysql_fetch_array($req);
                echo '<table border="0" cellspacing="0" cellpadding="0" width="885"><tr><td bgcolor="#E3CEF6"><table border="0" width=100%><tr><td align="left"><font face="verdana" size="2"> De:<b> ' , stripslashes($data['expediteur']) , '</b></td><td align="center">Titre:"<b>' , stripslashes($data['titre']) , '</b>"</td><td align="right">le: <b>'  , $data['date'] , '</b></td></tr></table></td></tr><tr><td bgcolor="#ECE0F8">';
                echo stripslashes($data['message']);
                echo '<br/><br /><hr style="color:blue; height:1px; border:1px; width:345;">';
                // on affiche également un lien permettant de supprimer ce message de la boite de réception
                echo '<a href="supprimer.php?id_message=' , $_GET['id_message'] , '">Supprimer ce message</a></td></tr></table>';
        }
        mysql_query('UPDATE messages SET lu="1" WHERE id="'.$id_message.'"');
        mysql_free_result($req);
        mysql_close();
}
?>
<br />
<?php include('includes/footer.php');?>
</body>
</html>

Cordialement

Image
Aglzime
07/08/2010 à 14:36:58
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Desolé! Y a plus rien qui marche au niveau du bbcode!. à la prévisualisation ça fonctionne très bien (ça veut dire le texte est mis en forme) mais à la récéption rien qui fonctionne !
c'est très étrange o_O


ybouane
07/08/2010 à 17:30:56
ybouane
Admin
Bonjour,
essaye ça, ça devrait fonctionner:
<?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') {
       
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(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '&gt;_&lt;', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':\'\\(', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°');
        $smiliesUrl  = array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'pleure.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
        $smiliesPath = "http://monsite§.fr/images/smilies/";
       
        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['destinataire']) || empty($_POST['titre']) || empty($_POST['message_text'])) {
                $erreur = 'Au moins un des champs est vide.';
        }
        else {
                $base = mysql_connect ('host', 'idbdd', 'psswrd');
                mysql_select_db ('nom_base', $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;
                $sql = 'INSERT INTO messages VALUES("", "'.$_SESSION['id'].'", "'.mysql_escape_string(str_replace('&amp;#', '&#', htmlentities($_POST['destinataire'], ENT_QUOTES, "UTF-8"))).'", "'.$datenvoi.'", "'.mysql_escape_string(str_replace('&amp;#', '&#', htmlentities($_POST['titre'], ENT_QUOTES, "UTF-8"))).'", "'.mysql_escape_string(parsecode($_POST['message_text'])).'", "0")';
                mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

                mysql_close();

                header('Location: membre.php');
                exit();
        }
}
?>

<!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>Ecrire un message à un membre!</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" />
</head>

<body>
<a href="membre.php">Retour à l'accueil</a><br /><br />
Envoyer un message :<br /><br />

<?php
$base = mysql_connect ('sql.free.fr', '', '');
mysql_select_db ('nom_base', $base);
mysql_query("SET NAMES 'utf8'");


// 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
$sql = 'SELECT membre.login as nom_destinataire, membre.id as id_destinataire FROM membre WHERE id <> "'.$_SESSION['id'].'" ORDER BY login ASC';
// on lance notre requete SQL
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows ($req);

if ($nb == 0) {
        // si aucun membre n'a été trouvé, on affiche tout simplement aucun formulaire
        echo 'Vous êtes le seul membre inscrit.';
}
else {
        // si au moins un membre qui n'est pas nous même a été trouvé, on affiche le formulaire d'envoie de message
        ?>
        <form action="envoyer.php" method="post">
        Pour :<select name="destinataire">
        <?php
        // on alimente le menu déroulant avec les login des différents membres du site
        while ($data = mysql_fetch_array($req)) {
                echo '<option value="' , $data['id_destinataire'] , '">' , str_replace('&amp;#', '&#',htmlentities(stripslashes($data['nom_destinataire'], ENT_QUOTES, "UTF-8"))) , '</option>';
        }
        ?>
        </select><br />
        Titre : <input type="text" name="titre" value="<?php if (isset($_POST['titre'])) echo str_replace('&amp;#', '&#',htmlentities(stripslashes($_POST['titre'], ENT_QUOTES, "UTF-8"))); ?>"><br />
        Message :
        <div>
               
                        <p>
                                <input type="button" value="G" onclick="insertTag('&lt;gras&gt;', '&lt;/gras&gt;', 'message_text')" />
                                <input type="button" 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>
                               
                                <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>
               
                <Textarea name="message_text" onkeyup="preview(this, 'previewDiv');" onselect="preview(this, 'previewDiv');" id="message_text" cols="150" rows="10"><?php if (isset($_POST['message_text'])) echo stripslashes(htmlentities($_POST['message_text'], ENT_QUOTES, "UTF-8")); ?></Textarea>
               
                <div id="previewDiv"></div>
               
                <p>
                        <input type="button" value="Visualiser" onclick="view('message_text','viewDiv');" />
                </p>
               
                <div id="viewDiv"></div>
                        <input type="submit" name="Envoyer" value="Envoyer">
        </form>
       
</div>
        <?php
}
mysql_free_result($req);
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;
?>
</body>
</html>

Cordialement

Image
Aglzime
07-08-2010 à 21:20:18
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
COOOL ça fonctionne!!
apart que les smileys ne fonctionnent pas, ça affiche juste à la place de l'image "smiley"!
AUSSI un petit problème:
- si le message contient des carctères comme : "é" , "ê", "à", "è"...
le message n'affiche pas le reste du texte à partir de la premiere lettre
( par exemple si j'envoie le texte suivant :"
Bonjour,
j'aime trop ce forum, il est très interessant! blabla bla"
Le resultat d'affichage est :"
Bonjour,
j'aime trop ce forum, il est tr"
) Donc je ne sais pas pourquoi  O_o

ybouane
08/08/2010 à 18:53:11
ybouane
Admin
Bonjour,
Est ce que dans la BDD le texte est coupé ou il est normal(complet)?

Cordialement :)

Image
Aglzime
09/08/2010 à 01:43:21
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Ouii dans la BDD le texte est incomplet! Il est coupé

ybouane
09/08/2010 à 07:23:51
ybouane
Admin
Bonjour,
Alors peut-tu me dire quel est le type(VARCHAR, TEXT...) du champ message mais aussi la valeur du champ message.
Par exemple dans:
Image
Le type de champ de email c'est VARCHAR avec une valeur de 255.

Et pour les emoticones, il faut qu'ils existent(Les images) et il faut que tu change la ligne:
$smiliesPath = "http://monsite§.fr/images/smilies/"; Par l'adresse du dossier ou tu a mis les images.

Cordialement

Image
Aglzime
12/08/2010 à 12:57:16
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Alors maintenant c'est réglé au niveau du bbcode et l'écriture arabe!! Mais le proble qui reste c'est celui des caractères spéciaux le texte se coupe!
alors le type de mon champs messages est 'Mediumtext' et pour le titre c'est 'text'
donc je vous rappel que le texte se coupe aussi dans le titre
amicalement

ybouane
12/08/2010 à 18:18:52
ybouane
Admin
Bonjour,
essaye ça:
<?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') {
       
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(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '&gt;_&lt;', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':\'\\(', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°');
        $smiliesUrl  = array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'pleure.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
        $smiliesPath = "http://monsite§.fr/images/smilies/";
       
        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['destinataire']) || empty($_POST['titre']) || empty($_POST['message_text'])) {
                $erreur = 'Au moins un des champs est vide.';
        }
        else {
                $base = mysql_connect ('host', 'idbdd', 'psswrd');
                mysql_select_db ('nom_base', $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;
                $sql = 'INSERT INTO messages VALUES("", "'.$_SESSION['id'].'", "'.mysql_escape_string(str_replace('&amp;#', '&#', htmlentities($_POST['destinataire'], 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($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

                mysql_close();

                header('Location: membre.php');
                exit();
        }
}
?>

<!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>Ecrire un message à un membre!</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" />
</head>

<body>
<a href="membre.php">Retour à l'accueil</a><br /><br />
Envoyer un message :<br /><br />

<?php
$base = mysql_connect ('sql.free.fr', '', '');
mysql_select_db ('nom_base', $base);
mysql_query("SET NAMES 'utf8'");


// 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
$sql = 'SELECT membre.login as nom_destinataire, membre.id as id_destinataire FROM membre WHERE id <> "'.$_SESSION['id'].'" ORDER BY login ASC';
// on lance notre requete SQL
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows ($req);

if ($nb == 0) {
        // si aucun membre n'a été trouvé, on affiche tout simplement aucun formulaire
        echo 'Vous êtes le seul membre inscrit.';
}
else {
        // si au moins un membre qui n'est pas nous même a été trouvé, on affiche le formulaire d'envoie de message
        ?>
        <form action="envoyer.php" method="post">
        Pour :<select name="destinataire">
        <?php
        // on alimente le menu déroulant avec les login des différents membres du site
        while ($data = mysql_fetch_array($req)) {
                echo '<option value="' , $data['id_destinataire'] , '">' , str_replace('&amp;#', '&#',htmlentities(stripslashes($data['nom_destinataire'], ENT_QUOTES, "UTF-8"))) , '</option>';
        }
        ?>
        </select><br />
        Titre : <input type="text" name="titre" value="<?php if (isset($_POST['titre'])) echo str_replace('&amp;#', '&#',htmlentities(stripslashes($_POST['titre'], ENT_QUOTES, "UTF-8"))); ?>"><br />
        Message :
        <div>
               
                        <p>
                                <input type="button" value="G" onclick="insertTag('&lt;gras&gt;', '&lt;/gras&gt;', 'message_text')" />
                                <input type="button" 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>
                               
                                <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>
               
                <Textarea name="message_text" onkeyup="preview(this, 'previewDiv');" onselect="preview(this, 'previewDiv');" id="message_text" cols="150" rows="10"><?php if (isset($_POST['message_text'])) echo stripslashes(htmlentities($_POST['message_text'], ENT_QUOTES, "UTF-8")); ?></Textarea>
               
                <div id="previewDiv"></div>
               
                <p>
                        <input type="button" value="Visualiser" onclick="view('message_text','viewDiv');" />
                </p>
               
                <div id="viewDiv"></div>
                        <input type="submit" name="Envoyer" value="Envoyer">
        </form>
       
</div>
        <?php
}
mysql_free_result($req);
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;
?>
</body>
</html>

Cordialement :)

Image
Aglzime
14/08/2010 à 15:21:55
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Désolé pour ce retard, j'avais pas accès à internet !!
Maintenant ça va mieux xD ouii ça fonctionne mais ya juste un petit problème c'est que dans le message maintenant ça remplace "é" par "é" et "à" par "Ã"...
mais au niveau du "titre" c'est parfait :)


ybouane
16/08/2010 à 20:28:23
ybouane
Admin
Bonjour,
essaye ça:
<?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') {
       
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(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '&gt;_&lt;', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':\'\\(', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°');
        $smiliesUrl  = array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'pleure.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
        $smiliesPath = "http://monsite§.fr/images/smilies/";
       
        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['destinataire']) || empty($_POST['titre']) || empty($_POST['message_text'])) {
                $erreur = 'Au moins un des champs est vide.';
        }
        else {
                $base = mysql_connect ('host', 'idbdd', 'psswrd');
                mysql_select_db ('nom_base', $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;
                $sql = 'INSERT INTO messages VALUES("", "'.$_SESSION['id'].'", "'.mysql_escape_string(str_replace('&amp;#', '&#', htmlentities($_POST['destinataire'], ENT_QUOTES, "UTF-8"))).'", "'.$datenvoi.'", "'.mysql_escape_string(str_replace('&amp;#', '&#', htmlentities(utf8_encode($_POST['titre']), ENT_QUOTES, "UTF-8"))).'", "'.mysql_escape_string(utf8_encode(parsecode($_POST['message_text']))).'", "0")';
                mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

                mysql_close();

                header('Location: membre.php');
                exit();
        }
}
?>

<!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>Ecrire un message à un membre!</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" />
</head>

<body>
<a href="membre.php">Retour à l'accueil</a><br /><br />
Envoyer un message :<br /><br />

<?php
$base = mysql_connect ('sql.free.fr', '', '');
mysql_select_db ('nom_base', $base);
mysql_query("SET NAMES 'utf8'");


// 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
$sql = 'SELECT membre.login as nom_destinataire, membre.id as id_destinataire FROM membre WHERE id <> "'.$_SESSION['id'].'" ORDER BY login ASC';
// on lance notre requete SQL
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows ($req);

if ($nb == 0) {
        // si aucun membre n'a été trouvé, on affiche tout simplement aucun formulaire
        echo 'Vous êtes le seul membre inscrit.';
}
else {
        // si au moins un membre qui n'est pas nous même a été trouvé, on affiche le formulaire d'envoie de message
        ?>
        <form action="envoyer.php" method="post">
        Pour :<select name="destinataire">
        <?php
        // on alimente le menu déroulant avec les login des différents membres du site
        while ($data = mysql_fetch_array($req)) {
                echo '<option value="' , $data['id_destinataire'] , '">' , str_replace('&amp;#', '&#',htmlentities(stripslashes($data['nom_destinataire'], ENT_QUOTES, "UTF-8"))) , '</option>';
        }
        ?>
        </select><br />
        Titre : <input type="text" name="titre" value="<?php if (isset($_POST['titre'])) echo str_replace('&amp;#', '&#',htmlentities(stripslashes($_POST['titre'], ENT_QUOTES, "UTF-8"))); ?>"><br />
        Message :
        <div>
               
                        <p>
                                <input type="button" value="G" onclick="insertTag('&lt;gras&gt;', '&lt;/gras&gt;', 'message_text')" />
                                <input type="button" 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>
                               
                                <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>
               
                <Textarea name="message_text" onkeyup="preview(this, 'previewDiv');" onselect="preview(this, 'previewDiv');" id="message_text" cols="150" rows="10"><?php if (isset($_POST['message_text'])) echo stripslashes(htmlentities($_POST['message_text'], ENT_QUOTES, "UTF-8")); ?></Textarea>
               
                <div id="previewDiv"></div>
               
                <p>
                        <input type="button" value="Visualiser" onclick="view('message_text','viewDiv');" />
                </p>
               
                <div id="viewDiv"></div>
                        <input type="submit" name="Envoyer" value="Envoyer">
        </form>
       
</div>
        <?php
}
mysql_free_result($req);
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;
?>
</body>
</html>

Cordialement :)

Image
Aglzime
17/08/2010 à 16:31:57
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Oh je m'excuse profondément !
c'est dans la page lire.php que j'ai trouvé l'erreur
ça venait de :
<meta http-equiv="Content-Type" content="text/html"; charset="iso...">
et maintenat je l'ai remplacé par :
<meta http-equiv="Content-Type" content="text/html"; charset="utf-8">
et ça fonctionne maintenat !
Je te remerci beaucoup YBOUANE
Désolé pour le temps que jt'ai fait perdu!!! :(
Merci encore

Pages: 1