Connexion
S'inscrire
Actualités
Quoi de neuf
Activités générales
Auteurs
Forums
Nouveaux messages
Rechercher un forum
Wiki
Pages
Dernière activité
Quoi de neuf
Nouveaux messages
Nouveaux articles
Nouveaux messages de profil
Activités générales
Membres
Membres inscrits
Visiteurs actuels
Nouveaux messages de profil
Rechercher dans les messages des profils
Teams
Créé ton équipe
Magasin
Quoi de neuf ?
Nouveaux messages
Rechercher un forum
Menu
Connexion
S'inscrire
Install the app
Install
Forums
Forums généraux
Informatique
Développement
#5 Espace membre - Une Shoutbox
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
Vous utilisez un navigateur non à jour ou ancien. Il ne peut pas afficher ce site ou d'autres sites correctement.
Vous devez le mettre à jour ou utiliser un
navigateur alternatif
.
Répondre à la discussion
Message
<blockquote data-quote="Iktus" data-source="post: 6877132" data-attributes="member: 334036"><p style="text-align: center"><span style="font-size: 15px"><img src="http://image.prntscr.com/image/0af7b735596b4a069cacdc502ec8893a.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Partie 1 -> <a href="https://reality-gaming.fr/threads/1-espace-membre-le-design.572110/" target="_blank">Clique ici</a> <span style="color: #b3b300">[Premium]</span></span></p> <p style="text-align: center"><span style="font-size: 15px">Partie 2 -> <a href="https://reality-gaming.fr/threads/2-espace-membre-connexion-inscription.572159/" target="_blank">Clique ici</a> <span style="color: #b3b300">[Premium]</span></span></p> <p style="text-align: center"><span style="font-size: 15px">Partie 3 -> <a href="https://reality-gaming.fr/threads/3-espace-membre-ranks-grades.572227/" target="_blank">Clique ici</a> <span style="color: #b3b300">[Premium]</span></span></p> <p style="text-align: center"><span style="font-size: 15px">Partie 4 -> <a href="https://reality-gaming.fr/threads/4-espace-membre-les-articles.573151/#post-6875300" target="_blank">Clique ici</a> <span style="color: #4da6ff">[Membre]</span></span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Bonjour, bonsoir,</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Aujourd'hui nous nous retrouvons pour l'épisode numéro 5 de ma série, <span style="color: #0080ff">une Shoutbox</span>.</span></p> <p style="text-align: center"><span style="font-size: 15px">Vouloir parler avec <span style="color: #0080ff">ses membres</span> depuis <span style="color: #0080ff">son site</span> est toujours utile, c'est donc pour cela que je fais <span style="color: #0080ff">ce tutoriel</span>.</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Pour ce tutoriel je me suis basé directement sur une <span style="color: #0080ff">Shoutbox</span> que [USER=8987]@Maxime'[/USER] a partagé (<a href="https://reality-gaming.fr/threads/code-source-dune-shoutbox.489716/" target="_blank">disponible ici</a>) mais que j'ai <span style="color: #0080ff">amélioré</span> pour afficher <span style="color: #0080ff">le grade</span> du membre qui postera un message, la possibilité de <span style="color: #0080ff">tagger</span> une personne depuis son message, <span style="color: #0080ff">le temps</span> de quand le message a été posté (Posté il y a x temps), l'<span style="color: #0080ff">avatar</span>, ainsi que deux commandes et les smileys (pris directement depuis les tutoriels de [USER=8987]@Maxime'[/USER] <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite375" alt=":trollface:" title="Trollface :trollface:" loading="lazy" data-shortname=":trollface:" />)</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px"><img src="http://image.prntscr.com/image/31c538a3a08544528e22233c4a837d3d.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Nous allons commencer par créer nombre table SQL comportant les colonnes suivante:</span></p> <p style="text-align: center"><span style="font-size: 15px"><span style="color: #0080ff">id</span> en <span style="color: #0080ff">int 11</span> en <span style="color: #0080ff">auto increment</span> avec une <span style="color: #0080ff">clé</span></span></p> <p style="text-align: center"><span style="font-size: 15px"><span style="color: #0080ff">utilisateur</span> en <span style="color: #0080ff">varchar 25</span></span></p> <p style="text-align: center"><span style="font-size: 15px"><span style="color: #0080ff">message</span> en <span style="color: #0080ff">text</span></span></p> <p style="text-align: center"><span style="font-size: 15px"><span style="color: #0080ff">rank</span> en <span style="color: #0080ff">enum</span> avec <span style="color: #0080ff">1</span> et <span style="color: #0080ff">2</span></span></p> <p style="text-align: center"><span style="font-size: 15px"><span style="color: #0080ff">date_p </span>en <span style="color: #0080ff">datetime</span></span></p> <p style="text-align: center"><span style="font-size: 15px"><span style="color: #0080ff">avatar</span> en <span style="color: #0080ff">text</span></span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">[SPOILER="Navicat"]<img src="http://image.prntscr.com/image/5aaf87762a934157a97d7e7aae730279.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> [/SPOILER]</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center">Puis vous appelez votre table <span style="color: #0080ff">shoutbox</span>.</p> <p style="text-align: center">Maintenant nous allons faire un simple design avec un panel.</p> <p style="text-align: center"></p> <p style="text-align: center">[SPOILER="Simple Design"]<img src="http://image.prntscr.com/image/85f9c174895a40bc844d1a814c5eb5a5.png" alt="" class="fr-fic fr-dii fr-draggable " style="" />[/SPOILER]</p> <p style="text-align: center"></p> <p style="text-align: center">On se dirige dans notre fichier <span style="color: #0080ff">shoutbox.php</span> puis nous commençons par mettre la <span style="color: #0080ff">function des smileys</span> (adapté à ce tutoriel, mais repris sur <a href="https://reality-gaming.fr/threads/systeme-de-smiley-sur-sa-shoutbox.469977/" target="_blank">ce topic</a>)</p><p>[PHP]function Smiley($smiley){</p><p> </p><p> $search = array(':dance:', ':D',':bave:',':$', ':bye:', ':coeur:', ':crazy:', ':devil:', ':DJ:', ':dodo:', ':nrv:', ':espion:', 'o_O', ':@', ':fight:', ':hug:', ':p', ':love:', ':mmh:', ':modo:', ':neo:', ':non:', ':oui:', ':mechant:', ':puke:', ':punch:', ':rofl:', ':bad:', ':tchuss:', ':\'(', ':nice:', ':troll:');</p><p></p><p> $replace = array('<img src="img/smileys/dance.gif" />', '<img src="img/smileys/awesone.png" />', '<img src="img/smileys/bave.gif" />', '<img src="img/smileys/blush.gif" />', '<img src="img/smileys/bye.gif" />', '<img src="img/smileys/coeur.gif" />', '<img src="img/smileys/crazy.gif" />', '<img src="img/smileys/devil.gif" />', '<img src="img/smileys/DJ.gif" />', '<img src="img/smileys/dodo.gif" />', '<img src="img/smileys/enerve.gif" />', '<img src="img/smileys/espion.gif" />', '<img src="img/smileys/etonne.gif" />', '<img src="img/smileys/facher.gif" />', '<img src="img/smileys/fight.gif" />', '<img src="img/smileys/hug.gif" />', '<img src="img/smileys/joueur.gif" />', '<img src="img/smileys/love.gif" />', '<img src="img/smileys/mmh.gif" />', '<img src="img/smileys/modo.gif" />', '<img src="img/smileys/neo.gif" />', '<img src="img/smileys/non.gif" />', '<img src="img/smileys/oui.gif" />', '<img src="img/smileys/pelo.gif" />', '<img src="img/smileys/puke.gif" />', '<img src="img/smileys/punch.gif" />', '<img src="img/smileys/rofl.gif" />', '<img src="img/smileys/bad.gif" />', '<img src="img/smileys/tchuss.gif" />', '<img src="img/smileys/triste.gif" />', '<img src="img/smileys/nice.gif" />', '<img src="img/smileys/troll.png" />');</p><p> </p><p> $smiley = str_replace($search, $replace, $smiley);</p><p> return $smiley;</p><p></p><p>}[/PHP]</p><p></p><p style="text-align: center">Maintenant nous allons donner le <span style="color: #0080ff"><strong>name</strong> shoutbox</span> à notre <span style="color: #0080ff">submit</span> et nous ferons l'étape de vérification pour savoir si notre <span style="color: #0080ff">input</span> où se situe notre message contient bien <span style="color: #0080ff">du texte</span>.</p> <p style="text-align: center"></p><p>[PHP]if(isset($_POST['shoutbox']))</p><p> {</p><p> $message = htmlspecialchars(trim($_POST['message']));</p><p> $messagesmiley = Smiley($message);[/PHP]</p><p></p><p style="text-align: center">Le <span style="color: #0080ff">$messagesmiley</span> permet de prendre en compte la <span style="color: #0080ff">function Smiley</span>.</p> <p style="text-align: center"></p> <p style="text-align: center">Ici nous allons dire que le message doit contenir au <span style="color: #0080ff">maximum 500 caractères</span>.</p> <p style="text-align: center"></p><p>[PHP]if(!empty($message))</p><p> {</p><p> $MessageLimite = strlen($messagesmiley);</p><p> if($MessageLimite <= 500)</p><p> {[/PHP]</p><p></p><p style="text-align: center">Alors ici, nous allons faire les commandes ainsi que l'insertion des données.</p> <p style="text-align: center"></p> <p style="text-align: center">Nous allons mettre la possibilité à ceux ayant un <span style="color: #0080ff">rank</span> <span style="color: #0080ff">au dessus</span> ou <span style="color: #0080ff">égal</span> à <span style="color: #0080ff">2</span> d'utiliser les commandes <span style="color: #0080ff">/bot</span> et <span style="color: #0080ff">/vide</span> puis la possibilité de dire bonjour au BOT avec <span style="color: #0080ff">[USER=104]@BOT[/USER]</span> pour tous les utilisateurs.</p> <p style="text-align: center"></p><p>[PHP]if(!isset($_COOKIE['messagesmiley']))</p><p> </p><p> {</p><p> </p><p> $bonjour = explode('@BOT', $messagesmiley);</p><p> </p><p> if($_SESSION['rank'] >= 2){</p><p> $bot = explode('/bot', $messagesmiley);</p><p> $vide = explode('/vide', $messagesmiley);</p><p></p><p> }[/PHP]</p><p style="text-align: center"></p> <p style="text-align: center"></p> <p style="text-align: center">Nous allons commencer par la commande /bot.</p> <p style="text-align: center">Nous allons préparer notre requête puis l'exécuter.</p> <p style="text-align: center"></p><p>[PHP]if(isset($bot['1']))</p><p> {</p><p> $robot = $bot['1'];</p><p> $MessageBot = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)');</p><p> $MessageBot->execute(array('BOT', $robot, '2', 'https://website.smooch.io/static_assets/images/features/bot-avatar.png'));</p><p> }[/PHP]</p><p style="text-align: center"></p> <p style="text-align: center">C'est simple à comprendre, il va juste y avoir une <span style="color: #0080ff">insertion de données</span> <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite355" alt=":)" title=":) :)" loading="lazy" data-shortname=":)" /></p> <p style="text-align: center"></p> <p style="text-align: center">Maintenant nous allons faire la commande <span style="color: #0080ff">/vide</span>.</p> <p style="text-align: center">Elle va <span style="color: #0080ff">vider</span> notre table <span style="color: #0080ff">shoutbox</span> et <span style="color: #0080ff">insérer un message</span> pour dire que celle-ci a bien été <span style="color: #0080ff">vidé</span>.</p> <p style="text-align: center"></p><p>[PHP]elseif(isset($vide['1']))</p><p> {</p><p> $CommandeVide = $bdd->prepare('TRUNCATE shoutbox');</p><p> $CommandeVide->execute(array());</p><p> $CommandeVide = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)');</p><p> $CommandeVide->execute(array($_SESSION['identifiant'], 'vient de vider la shoutbox.', $_SESSION['rank'], $_SESSION['avatar']));</p><p> }[/PHP]</p><p></p><p style="text-align: center">C'est aussi simple à comprendre, premièrement <span style="color: #0080ff">on prépare notre première requête</span> qui va nous permettre de <span style="color: #0080ff">vider notre table</span> puis elle est <span style="color: #0080ff">exécuté</span>.</p> <p style="text-align: center">Deuxièmement, on <span style="color: #0080ff">prépare</span> notre requête <span style="color: #0080ff">à l'insertion des données</span> qui vont afficher le message pour dire <span style="color: #0080ff">que la Shoutbox a bien été vidé</span> puis la <span style="color: #0080ff">préparation est exécuté</span>.</p> <p style="text-align: center"></p> <p style="text-align: center"></p> <p style="text-align: center"></p> <p style="text-align: center">Nous allons maintenant faire la <span style="color: #0080ff">dernière commande</span>, qui permet que le <span style="color: #0080ff">BOT dise bonjour</span>. (Oui il sera que dire bonjour <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite129" alt=":d:" title="Regard de travers :d:" loading="lazy" data-shortname=":d:" />, tu auras beau l'insulter, il dira toujours bonjour <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite375" alt=":trollface:" title="Trollface :trollface:" loading="lazy" data-shortname=":trollface:" />)</p> <p style="text-align: center"></p><p>[PHP]elseif(isset($bonjour['1']))</p><p> {</p><p> $CommandeBonjour = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)');</p><p> $CommandeBonjour->execute(array($_SESSION['identifiant'], $messagesmiley, $_SESSION['rank'], $_SESSION['avatar']));</p><p> $CommandeBonjour = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)');</p><p> $CommandeBonjour->execute(array('BOT', 'Salut '.$_SESSION['identifiant'].' <img src="img/smileys/awesone.png" />', '2', 'https://website.smooch.io/static_assets/images/features/bot-avatar.png'));</p><p> }[/PHP]</p><p style="text-align: center"></p><p></p><p style="text-align: center">Je vais vous expliquez ce que chaque <span style="color: #0080ff">prepare</span> signifie.</p> <p style="text-align: center">La première sert à <span style="color: #0080ff">afficher votre message</span> avec vos données, donc par exemple, si tu marques "<span style="color: #0080ff">[USER=104]@BOT[/USER] Salut <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite171" alt=":D" title="Awesome face :D" loading="lazy" data-shortname=":D" /></span>"</p> <p style="text-align: center">ton message s'affichera <span style="color: #0080ff">avant le message du BOT</span> (évidant)</p> <p style="text-align: center">Et le deuxième sert à <span style="color: #0080ff">insérer le bonjour</span> du BOT.</p> <p style="text-align: center"></p> <p style="text-align: center">Il nous reste plus cas faire la prepare pour l'insertion du message et les différentes erreurs.</p> <p style="text-align: center"></p> <p style="text-align: center">Donc, vous avez maintenant l'habitude de faire des prepares <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite375" alt=":trollface:" title="Trollface :trollface:" loading="lazy" data-shortname=":trollface:" /></p> <p style="text-align: center"></p><p>[PHP]else</p><p> {</p><p> </p><p> $MessageGo = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)');</p><p> $MessageGo->execute(array($_SESSION['identifiant'], $messagesmiley, $_SESSION['rank'], $_SESSION['avatar']));</p><p> setcookie('message', $message, time()+3, null, null, false, true);</p><p> unset($_POST);</p><p> }</p><p> }[/PHP]</p><p style="text-align: center">La <span style="color: #0080ff">prepare</span> et <span style="color: #0080ff">l'execute</span> je n'ai plus besoin de vous l'expliquer je pense, le <span style="color: #0080ff">setcookie</span> permet de mettre un intervalle entre deux message, là il est de 3 secondes.</p> <p style="text-align: center"></p> <p style="text-align: center">Aller, il nous reste plus que les erreurs et on a fini pour cette page!</p> <p style="text-align: center">(Oui oui, il reste encore deux pages <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite375" alt=":trollface:" title="Trollface :trollface:" loading="lazy" data-shortname=":trollface:" />)</p> <p style="text-align: center"></p><p>[PHP]else</p><p> {</p><p> $erreur = "Un message toutes les 3 secondes.";</p><p> }</p><p> }</p><p> else</p><p> {</p><p> $erreur = "Votre message fait plus de 500 caractères.";</p><p> }</p><p> }</p><p> else</p><p> {</p><p> $erreur = "Veuillez entrer un message.";</p><p> }</p><p> }[/PHP]</p><p></p><p style="text-align: center">Bon, pas besoin de vous expliquez, c'est écrire noir sur blanc <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite355" alt=":)" title=":) :)" loading="lazy" data-shortname=":)" /></p> <p style="text-align: center"></p> <p style="text-align: center">Voilà ce que vous devriez avoir</p> <p style="text-align: center"></p><p>[PHP]<?php</p><p></p><p>session_start();</p><p></p><p>if(isset($_SESSION['id']))</p><p> {</p><p></p><p> }else</p><p> {</p><p> header('Location: login');</p><p> exit();</p><p> }</p><p></p><p>require_once('includes/configuration.php');</p><p>require_once('includes/fonctions/configuration.fonction.php');</p><p></p><p>function Smiley($smiley){</p><p> </p><p> $search = array(':dance:', ':D',':bave:',':$', ':bye:', ':coeur:', ':crazy:', ':devil:', ':DJ:', ':dodo:', ':nrv:', ':espion:', 'o_O', ':@', ':fight:', ':hug:', ':p', ':love:', ':mmh:', ':modo:', ':neo:', ':non:', ':oui:', ':mechant:', ':puke:', ':1punch:', ':rofl:', ':bad:', ':tchuss:', ':\'(', ':nice:', ':troll:');</p><p></p><p> $replace = array('<img src="img/smileys/dance.gif" />', '<img src="img/smileys/awesone.png" />', '<img src="img/smileys/bave.gif" />', '<img src="img/smileys/blush.gif" />', '<img src="img/smileys/bye.gif" />', '<img src="img/smileys/coeur.gif" />', '<img src="img/smileys/crazy.gif" />', '<img src="img/smileys/devil.gif" />', '<img src="img/smileys/DJ.gif" />', '<img src="img/smileys/dodo.gif" />', '<img src="img/smileys/enerve.gif" />', '<img src="img/smileys/espion.gif" />', '<img src="img/smileys/etonne.gif" />', '<img src="img/smileys/facher.gif" />', '<img src="img/smileys/fight.gif" />', '<img src="img/smileys/hug.gif" />', '<img src="img/smileys/joueur.gif" />', '<img src="img/smileys/love.gif" />', '<img src="img/smileys/mmh.gif" />', '<img src="img/smileys/modo.gif" />', '<img src="img/smileys/neo.gif" />', '<img src="img/smileys/non.gif" />', '<img src="img/smileys/oui.gif" />', '<img src="img/smileys/pelo.gif" />', '<img src="img/smileys/puke.gif" />', '<img src="img/smileys/punch.gif" />', '<img src="img/smileys/rofl.gif" />', '<img src="img/smileys/bad.gif" />', '<img src="img/smileys/tchuss.gif" />', '<img src="img/smileys/triste.gif" />', '<img src="img/smileys/nice.gif" />', '<img src="img/smileys/troll.png" />');</p><p> </p><p> $smiley = str_replace($search, $replace, $smiley);</p><p> return $smiley;</p><p></p><p>}</p><p></p><p>if(isset($_POST['shoutbox']))</p><p> {</p><p> $message = htmlspecialchars(trim($_POST['message']));</p><p> $messagesmiley = Smiley($message);</p><p></p><p> if(!empty($message))</p><p> {</p><p> $MessageLimite = strlen($messagesmiley);</p><p> if($MessageLimite <= 500)</p><p> {</p><p> if(!isset($_COOKIE['messagesmiley']))</p><p> </p><p> {</p><p> </p><p> $bonjour = explode('@BOT', $messagesmiley);</p><p> </p><p> if($_SESSION['rank'] >= 2){</p><p> $bot = explode('/bot', $messagesmiley);</p><p> $vide = explode('/vide', $messagesmiley);</p><p></p><p> }</p><p> </p><p> if(isset($bot['1']))</p><p> {</p><p> $robot = $bot['1'];</p><p> $MessageBot = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)');</p><p> $MessageBot->execute(array('BOT', $robot, '2', 'https://website.smooch.io/static_assets/images/features/bot-avatar.png'));</p><p> }</p><p> elseif(isset($vide['1']))</p><p> {</p><p> $CommandeVide = $bdd->prepare('TRUNCATE shoutbox');</p><p> $CommandeVide->execute(array());</p><p> $CommandeVide = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)');</p><p> $CommandeVide->execute(array($_SESSION['identifiant'], 'vient de vider la shoutbox.', $_SESSION['rank'], $_SESSION['avatar']));</p><p> }</p><p> </p><p> elseif(isset($bonjour['1']))</p><p> {</p><p> $CommandeBonjour = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)');</p><p> $CommandeBonjour->execute(array($_SESSION['identifiant'], $messagesmiley, $_SESSION['rank'], $_SESSION['avatar']));</p><p> $CommandeBonjour = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)');</p><p> $CommandeBonjour->execute(array('BOT', 'Salut '.$_SESSION['identifiant'].' <img src="img/smileys/awesone.png" />', '2', 'https://website.smooch.io/static_assets/images/features/bot-avatar.png'));</p><p> }</p><p> else</p><p> {</p><p> </p><p> $MessageGo = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)');</p><p> $MessageGo->execute(array($_SESSION['identifiant'], $messagesmiley, $_SESSION['rank'], $_SESSION['avatar']));</p><p> setcookie('message', $message, time()+0, null, null, false, true);</p><p> unset($_POST);</p><p> }</p><p> }</p><p> else</p><p> {</p><p> $erreur = "Un message toute les 5 secondes !";</p><p> }</p><p> }</p><p> else</p><p> {</p><p> $erreur = "Le message ne doit pas dépasser les 100 caractères !";</p><p> }</p><p> }</p><p> else</p><p> {</p><p> $erreur = "Veuillez mettre un message !";</p><p> }</p><p> }</p><p></p><p>?>[/PHP]</p><p></p><p style="text-align: center"><img src="http://image.prntscr.com/image/31c538a3a08544528e22233c4a837d3d.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /></p><p></p><p style="text-align: center">Maintenant on va attaquer le fichier <span style="color: #0080ff">chargement_shoutbox.php</span> que nous allons créer dans le dossier <span style="color: #0080ff">includes</span>.</p> <p style="text-align: center"></p> <p style="text-align: center">Nous allons commencer par mettre l'include de la base de données et une autre pour une fonction que nous créerons après.</p> <p style="text-align: center"></p><p>[PHP]<?php</p><p></p><p> include ('configuration.php');</p><p> include ('fonctions/date.php');</p><p></p><p>?>[/PHP]</p><p style="text-align: center"></p> <p style="text-align: center">Maintenant on va utiliser <span style="color: #0080ff">query</span> pour <span style="color: #0080ff">exécuter notre requête SQL</span> qui va nous permettre de <span style="color: #0080ff">limité les messages jusque 30</span> qui seront ordonnée par <span style="color: #0080ff">id</span></p> <p style="text-align: center"></p><p>[PHP]<?php</p><p> include ('configuration.php');</p><p> include ('fonctions/date.php');</p><p> $message = $bdd->query('SELECT * FROM shoutbox ORDER BY id DESC LIMIT 30');</p><p></p><p>?>[/PHP]</p><p></p><p style="text-align: center">Maintenant nous allons utiliser <span style="color: #0080ff">foreach</span> pour itérer les cellules de notre tableau.</p> <p style="text-align: center"></p><p>[PHP]<?php</p><p> include ('configuration.php');</p><p> include ('fonctions/date.php');</p><p> $message = $bdd->query('SELECT * FROM shoutbox ORDER BY id DESC LIMIT 10');</p><p> foreach ($message as $message) {</p><p> ?>[/PHP]</p><p></p><p style="text-align: center">Maintenant à vous de faire votre design de message, vous utiliserez <span style="color: #0080ff"><?= $message['']; ?></span> pour afficher les données sauf pour le date_p vous utilisez <span style="color: #0080ff"><?= conversion($message['date_p']); ?></span>, le <span style="color: #0080ff">conversion()</span> permet d'utiliser notre <span style="color: #0080ff">function</span> que nous ferons juste après puis vous fermerez le <span style="color: #0080ff">foreach</span> avec<span style="color: #0080ff"> <?php } ?></span></p> <p style="text-align: center"></p> <p style="text-align: center">Maintenant, on va dans notre dossier <span style="color: #0080ff">fonctions</span> situé dans le dossier <span style="color: #0080ff">includes</span> puis on crée <span style="color: #0080ff">date.php</span> et vous collerez ceci</p> <p style="text-align: center"></p><p>[PHP]<?php</p><p>function conversion($temps){</p><p> $temps = strtotime($temps);</p><p> $diff_temps = time() - $temps;</p><p> </p><p> if($diff_temps < 1){</p><p> return 'à l\'instant';</p><p> }</p><p> </p><p> $sec = array (</p><p> 12 * 30 * 24 * 60 * 60 => 'an',</p><p> 30 * 24 * 60 * 60 => 'mois',</p><p> 24 * 60 * 60 => 'jour',</p><p> 60 * 60 => 'heure',</p><p> 60 => 'minute',</p><p> 1 => 'seconde'</p><p> );</p><p> </p><p> foreach($sec as $sec => $value){</p><p> $div = $diff_temps / $sec;</p><p> if($div >= 1){</p><p> $temps_conv = round($div);</p><p> $temps_type = $value;</p><p> if($temps_conv > 1 && $temps_type != "mois"){</p><p> $temps_type .= "s" ;</p><p> }</p><p> return 'il y a ' . $temps_conv .' ' . $temps_type;</p><p> }</p><p> }</p><p></p><p>}</p><p>?>[/PHP]</p><p style="text-align: center">Cette <span style="color: #0080ff">fonction</span> permet de convertir notre <span style="color: #0080ff">datetime</span> en <span style="color: #0080ff">Posté il y a x temps</span></p> <p style="text-align: center"><span style="color: #0080ff"></span></p> <p style="text-align: center">Voilà on a enfin fini <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite171" alt=":D" title="Awesome face :D" loading="lazy" data-shortname=":D" /></p> <p style="text-align: center">Tu veux tester ? <a href="http://em.share-systems.net" target="_blank">Clique ici</a></p> <p style="text-align: center">Télécharger le projet: <a href="https://mega.nz/#!oBAm1AYa!44rdEoiudyHNkA9ZBHOEPB2BxgLWTkbYsncq_vMnYC0" target="_blank">Clique ici</a></p></blockquote><p></p>
[QUOTE="Iktus, post: 6877132, member: 334036"] [CENTER][SIZE=4][IMG]http://image.prntscr.com/image/0af7b735596b4a069cacdc502ec8893a.png[/IMG] Partie 1 -> [URL='https://reality-gaming.fr/threads/1-espace-membre-le-design.572110/']Clique ici[/URL] [COLOR=#b3b300][Premium][/COLOR] Partie 2 -> [URL='https://reality-gaming.fr/threads/2-espace-membre-connexion-inscription.572159/']Clique ici[/URL] [COLOR=#b3b300][Premium][/COLOR] Partie 3 -> [URL='https://reality-gaming.fr/threads/3-espace-membre-ranks-grades.572227/']Clique ici[/URL] [COLOR=#b3b300][Premium][/COLOR] Partie 4 -> [URL='https://reality-gaming.fr/threads/4-espace-membre-les-articles.573151/#post-6875300']Clique ici[/URL] [COLOR=#4da6ff][Membre][/COLOR] Bonjour, bonsoir, Aujourd'hui nous nous retrouvons pour l'épisode numéro 5 de ma série, [COLOR=#0080ff]une Shoutbox[/COLOR]. Vouloir parler avec [COLOR=#0080ff]ses membres[/COLOR] depuis [COLOR=#0080ff]son site[/COLOR] est toujours utile, c'est donc pour cela que je fais [COLOR=#0080ff]ce tutoriel[/COLOR]. Pour ce tutoriel je me suis basé directement sur une [COLOR=#0080ff]Shoutbox[/COLOR] que [USER=8987]@Maxime'[/USER] a partagé ([URL='https://reality-gaming.fr/threads/code-source-dune-shoutbox.489716/']disponible ici[/URL]) mais que j'ai [COLOR=#0080ff]amélioré[/COLOR] pour afficher [COLOR=#0080ff]le grade[/COLOR] du membre qui postera un message, la possibilité de [COLOR=#0080ff]tagger[/COLOR] une personne depuis son message, [COLOR=#0080ff]le temps[/COLOR] de quand le message a été posté (Posté il y a x temps), l'[COLOR=#0080ff]avatar[/COLOR], ainsi que deux commandes et les smileys (pris directement depuis les tutoriels de [USER=8987]@Maxime'[/USER] :troll:) [IMG]http://image.prntscr.com/image/31c538a3a08544528e22233c4a837d3d.png[/IMG] Nous allons commencer par créer nombre table SQL comportant les colonnes suivante: [COLOR=#0080ff]id[/COLOR] en [COLOR=#0080ff]int 11[/COLOR] en [COLOR=#0080ff]auto increment[/COLOR] avec une [COLOR=#0080ff]clé utilisateur[/COLOR] en [COLOR=#0080ff]varchar 25 message[/COLOR] en [COLOR=#0080ff]text rank[/COLOR] en [COLOR=#0080ff]enum[/COLOR] avec [COLOR=#0080ff]1[/COLOR] et [COLOR=#0080ff]2 date_p [/COLOR]en [COLOR=#0080ff]datetime avatar[/COLOR] en [COLOR=#0080ff]text[/COLOR] [SPOILER="Navicat"][IMG]http://image.prntscr.com/image/5aaf87762a934157a97d7e7aae730279.png[/IMG] [/SPOILER] [/SIZE] Puis vous appelez votre table [COLOR=#0080ff]shoutbox[/COLOR]. Maintenant nous allons faire un simple design avec un panel. [SPOILER="Simple Design"][IMG]http://image.prntscr.com/image/85f9c174895a40bc844d1a814c5eb5a5.png[/IMG][/SPOILER] On se dirige dans notre fichier [COLOR=#0080ff]shoutbox.php[/COLOR] puis nous commençons par mettre la [COLOR=#0080ff]function des smileys[/COLOR] (adapté à ce tutoriel, mais repris sur [URL='https://reality-gaming.fr/threads/systeme-de-smiley-sur-sa-shoutbox.469977/']ce topic[/URL])[/CENTER] [PHP]function Smiley($smiley){ $search = array(':dance:', ':D',':bave:',':$', ':bye:', ':coeur:', ':crazy:', ':devil:', ':DJ:', ':dodo:', ':nrv:', ':espion:', 'o_O', ':@', ':fight:', ':hug:', ':p', ':love:', ':mmh:', ':modo:', ':neo:', ':non:', ':oui:', ':mechant:', ':puke:', ':punch:', ':rofl:', ':bad:', ':tchuss:', ':\'(', ':nice:', ':troll:'); $replace = array('<img src="img/smileys/dance.gif" />', '<img src="img/smileys/awesone.png" />', '<img src="img/smileys/bave.gif" />', '<img src="img/smileys/blush.gif" />', '<img src="img/smileys/bye.gif" />', '<img src="img/smileys/coeur.gif" />', '<img src="img/smileys/crazy.gif" />', '<img src="img/smileys/devil.gif" />', '<img src="img/smileys/DJ.gif" />', '<img src="img/smileys/dodo.gif" />', '<img src="img/smileys/enerve.gif" />', '<img src="img/smileys/espion.gif" />', '<img src="img/smileys/etonne.gif" />', '<img src="img/smileys/facher.gif" />', '<img src="img/smileys/fight.gif" />', '<img src="img/smileys/hug.gif" />', '<img src="img/smileys/joueur.gif" />', '<img src="img/smileys/love.gif" />', '<img src="img/smileys/mmh.gif" />', '<img src="img/smileys/modo.gif" />', '<img src="img/smileys/neo.gif" />', '<img src="img/smileys/non.gif" />', '<img src="img/smileys/oui.gif" />', '<img src="img/smileys/pelo.gif" />', '<img src="img/smileys/puke.gif" />', '<img src="img/smileys/punch.gif" />', '<img src="img/smileys/rofl.gif" />', '<img src="img/smileys/bad.gif" />', '<img src="img/smileys/tchuss.gif" />', '<img src="img/smileys/triste.gif" />', '<img src="img/smileys/nice.gif" />', '<img src="img/smileys/troll.png" />'); $smiley = str_replace($search, $replace, $smiley); return $smiley; }[/PHP] [CENTER]Maintenant nous allons donner le [COLOR=#0080ff][B]name[/B] shoutbox[/COLOR] à notre [COLOR=#0080ff]submit[/COLOR] et nous ferons l'étape de vérification pour savoir si notre [COLOR=#0080ff]input[/COLOR] où se situe notre message contient bien [COLOR=#0080ff]du texte[/COLOR]. [/CENTER] [PHP]if(isset($_POST['shoutbox'])) { $message = htmlspecialchars(trim($_POST['message'])); $messagesmiley = Smiley($message);[/PHP] [CENTER]Le [COLOR=#0080ff]$messagesmiley[/COLOR] permet de prendre en compte la [COLOR=#0080ff]function Smiley[/COLOR]. Ici nous allons dire que le message doit contenir au [COLOR=#0080ff]maximum 500 caractères[/COLOR]. [/CENTER] [PHP]if(!empty($message)) { $MessageLimite = strlen($messagesmiley); if($MessageLimite <= 500) {[/PHP] [CENTER]Alors ici, nous allons faire les commandes ainsi que l'insertion des données. Nous allons mettre la possibilité à ceux ayant un [COLOR=#0080ff]rank[/COLOR] [COLOR=#0080ff]au dessus[/COLOR] ou [COLOR=#0080ff]égal[/COLOR] à [COLOR=#0080ff]2[/COLOR] d'utiliser les commandes [COLOR=#0080ff]/bot[/COLOR] et [COLOR=#0080ff]/vide[/COLOR] puis la possibilité de dire bonjour au BOT avec [COLOR=#0080ff][USER=104]@BOT[/USER][/COLOR] pour tous les utilisateurs. [/CENTER] [PHP]if(!isset($_COOKIE['messagesmiley'])) { $bonjour = explode('@BOT', $messagesmiley); if($_SESSION['rank'] >= 2){ $bot = explode('/bot', $messagesmiley); $vide = explode('/vide', $messagesmiley); }[/PHP] [CENTER] Nous allons commencer par la commande /bot. Nous allons préparer notre requête puis l'exécuter. [/CENTER] [PHP]if(isset($bot['1'])) { $robot = $bot['1']; $MessageBot = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)'); $MessageBot->execute(array('BOT', $robot, '2', 'https://website.smooch.io/static_assets/images/features/bot-avatar.png')); }[/PHP] [CENTER] C'est simple à comprendre, il va juste y avoir une [COLOR=#0080ff]insertion de données[/COLOR] :) Maintenant nous allons faire la commande [COLOR=#0080ff]/vide[/COLOR]. Elle va [COLOR=#0080ff]vider[/COLOR] notre table [COLOR=#0080ff]shoutbox[/COLOR] et [COLOR=#0080ff]insérer un message[/COLOR] pour dire que celle-ci a bien été [COLOR=#0080ff]vidé[/COLOR]. [/CENTER] [PHP]elseif(isset($vide['1'])) { $CommandeVide = $bdd->prepare('TRUNCATE shoutbox'); $CommandeVide->execute(array()); $CommandeVide = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)'); $CommandeVide->execute(array($_SESSION['identifiant'], 'vient de vider la shoutbox.', $_SESSION['rank'], $_SESSION['avatar'])); }[/PHP] [CENTER]C'est aussi simple à comprendre, premièrement [COLOR=#0080ff]on prépare notre première requête[/COLOR] qui va nous permettre de [COLOR=#0080ff]vider notre table[/COLOR] puis elle est [COLOR=#0080ff]exécuté[/COLOR]. Deuxièmement, on [COLOR=#0080ff]prépare[/COLOR] notre requête [COLOR=#0080ff]à l'insertion des données[/COLOR] qui vont afficher le message pour dire [COLOR=#0080ff]que la Shoutbox a bien été vidé[/COLOR] puis la [COLOR=#0080ff]préparation est exécuté[/COLOR]. Nous allons maintenant faire la [COLOR=#0080ff]dernière commande[/COLOR], qui permet que le [COLOR=#0080ff]BOT dise bonjour[/COLOR]. (Oui il sera que dire bonjour (d), tu auras beau l'insulter, il dira toujours bonjour :troll:) [/CENTER] [PHP]elseif(isset($bonjour['1'])) { $CommandeBonjour = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)'); $CommandeBonjour->execute(array($_SESSION['identifiant'], $messagesmiley, $_SESSION['rank'], $_SESSION['avatar'])); $CommandeBonjour = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)'); $CommandeBonjour->execute(array('BOT', 'Salut '.$_SESSION['identifiant'].' <img src="img/smileys/awesone.png" />', '2', 'https://website.smooch.io/static_assets/images/features/bot-avatar.png')); }[/PHP] [CENTER][/CENTER] [CENTER]Je vais vous expliquez ce que chaque [COLOR=#0080ff]prepare[/COLOR] signifie. La première sert à [COLOR=#0080ff]afficher votre message[/COLOR] avec vos données, donc par exemple, si tu marques "[COLOR=#0080ff][USER=104]@BOT[/USER] Salut :D[/COLOR]" ton message s'affichera [COLOR=#0080ff]avant le message du BOT[/COLOR] (évidant) Et le deuxième sert à [COLOR=#0080ff]insérer le bonjour[/COLOR] du BOT. Il nous reste plus cas faire la prepare pour l'insertion du message et les différentes erreurs. Donc, vous avez maintenant l'habitude de faire des prepares :troll: [/CENTER] [PHP]else { $MessageGo = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)'); $MessageGo->execute(array($_SESSION['identifiant'], $messagesmiley, $_SESSION['rank'], $_SESSION['avatar'])); setcookie('message', $message, time()+3, null, null, false, true); unset($_POST); } }[/PHP] [CENTER]La [COLOR=#0080ff]prepare[/COLOR] et [COLOR=#0080ff]l'execute[/COLOR] je n'ai plus besoin de vous l'expliquer je pense, le [COLOR=#0080ff]setcookie[/COLOR] permet de mettre un intervalle entre deux message, là il est de 3 secondes. Aller, il nous reste plus que les erreurs et on a fini pour cette page! (Oui oui, il reste encore deux pages :troll:) [/CENTER] [PHP]else { $erreur = "Un message toutes les 3 secondes."; } } else { $erreur = "Votre message fait plus de 500 caractères."; } } else { $erreur = "Veuillez entrer un message."; } }[/PHP] [CENTER]Bon, pas besoin de vous expliquez, c'est écrire noir sur blanc :) Voilà ce que vous devriez avoir [/CENTER] [PHP]<?php session_start(); if(isset($_SESSION['id'])) { }else { header('Location: login'); exit(); } require_once('includes/configuration.php'); require_once('includes/fonctions/configuration.fonction.php'); function Smiley($smiley){ $search = array(':dance:', ':D',':bave:',':$', ':bye:', ':coeur:', ':crazy:', ':devil:', ':DJ:', ':dodo:', ':nrv:', ':espion:', 'o_O', ':@', ':fight:', ':hug:', ':p', ':love:', ':mmh:', ':modo:', ':neo:', ':non:', ':oui:', ':mechant:', ':puke:', ':1punch:', ':rofl:', ':bad:', ':tchuss:', ':\'(', ':nice:', ':troll:'); $replace = array('<img src="img/smileys/dance.gif" />', '<img src="img/smileys/awesone.png" />', '<img src="img/smileys/bave.gif" />', '<img src="img/smileys/blush.gif" />', '<img src="img/smileys/bye.gif" />', '<img src="img/smileys/coeur.gif" />', '<img src="img/smileys/crazy.gif" />', '<img src="img/smileys/devil.gif" />', '<img src="img/smileys/DJ.gif" />', '<img src="img/smileys/dodo.gif" />', '<img src="img/smileys/enerve.gif" />', '<img src="img/smileys/espion.gif" />', '<img src="img/smileys/etonne.gif" />', '<img src="img/smileys/facher.gif" />', '<img src="img/smileys/fight.gif" />', '<img src="img/smileys/hug.gif" />', '<img src="img/smileys/joueur.gif" />', '<img src="img/smileys/love.gif" />', '<img src="img/smileys/mmh.gif" />', '<img src="img/smileys/modo.gif" />', '<img src="img/smileys/neo.gif" />', '<img src="img/smileys/non.gif" />', '<img src="img/smileys/oui.gif" />', '<img src="img/smileys/pelo.gif" />', '<img src="img/smileys/puke.gif" />', '<img src="img/smileys/punch.gif" />', '<img src="img/smileys/rofl.gif" />', '<img src="img/smileys/bad.gif" />', '<img src="img/smileys/tchuss.gif" />', '<img src="img/smileys/triste.gif" />', '<img src="img/smileys/nice.gif" />', '<img src="img/smileys/troll.png" />'); $smiley = str_replace($search, $replace, $smiley); return $smiley; } if(isset($_POST['shoutbox'])) { $message = htmlspecialchars(trim($_POST['message'])); $messagesmiley = Smiley($message); if(!empty($message)) { $MessageLimite = strlen($messagesmiley); if($MessageLimite <= 500) { if(!isset($_COOKIE['messagesmiley'])) { $bonjour = explode('@BOT', $messagesmiley); if($_SESSION['rank'] >= 2){ $bot = explode('/bot', $messagesmiley); $vide = explode('/vide', $messagesmiley); } if(isset($bot['1'])) { $robot = $bot['1']; $MessageBot = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)'); $MessageBot->execute(array('BOT', $robot, '2', 'https://website.smooch.io/static_assets/images/features/bot-avatar.png')); } elseif(isset($vide['1'])) { $CommandeVide = $bdd->prepare('TRUNCATE shoutbox'); $CommandeVide->execute(array()); $CommandeVide = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)'); $CommandeVide->execute(array($_SESSION['identifiant'], 'vient de vider la shoutbox.', $_SESSION['rank'], $_SESSION['avatar'])); } elseif(isset($bonjour['1'])) { $CommandeBonjour = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)'); $CommandeBonjour->execute(array($_SESSION['identifiant'], $messagesmiley, $_SESSION['rank'], $_SESSION['avatar'])); $CommandeBonjour = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)'); $CommandeBonjour->execute(array('BOT', 'Salut '.$_SESSION['identifiant'].' <img src="img/smileys/awesone.png" />', '2', 'https://website.smooch.io/static_assets/images/features/bot-avatar.png')); } else { $MessageGo = $bdd->prepare('INSERT INTO shoutbox(utilisateur, message, rank, date_p, avatar) VALUES(?, ?, ?, NOW(), ?)'); $MessageGo->execute(array($_SESSION['identifiant'], $messagesmiley, $_SESSION['rank'], $_SESSION['avatar'])); setcookie('message', $message, time()+0, null, null, false, true); unset($_POST); } } else { $erreur = "Un message toute les 5 secondes !"; } } else { $erreur = "Le message ne doit pas dépasser les 100 caractères !"; } } else { $erreur = "Veuillez mettre un message !"; } } ?>[/PHP] [CENTER][IMG]http://image.prntscr.com/image/31c538a3a08544528e22233c4a837d3d.png[/IMG][/CENTER] [CENTER]Maintenant on va attaquer le fichier [COLOR=#0080ff]chargement_shoutbox.php[/COLOR] que nous allons créer dans le dossier [COLOR=#0080ff]includes[/COLOR]. Nous allons commencer par mettre l'include de la base de données et une autre pour une fonction que nous créerons après. [/CENTER] [PHP]<?php include ('configuration.php'); include ('fonctions/date.php'); ?>[/PHP] [CENTER] Maintenant on va utiliser [COLOR=#0080ff]query[/COLOR] pour [COLOR=#0080ff]exécuter notre requête SQL[/COLOR] qui va nous permettre de [COLOR=#0080ff]limité les messages jusque 30[/COLOR] qui seront ordonnée par [COLOR=#0080ff]id[/COLOR] [/CENTER] [PHP]<?php include ('configuration.php'); include ('fonctions/date.php'); $message = $bdd->query('SELECT * FROM shoutbox ORDER BY id DESC LIMIT 30'); ?>[/PHP] [CENTER]Maintenant nous allons utiliser [COLOR=#0080ff]foreach[/COLOR] pour itérer les cellules de notre tableau. [/CENTER] [PHP]<?php include ('configuration.php'); include ('fonctions/date.php'); $message = $bdd->query('SELECT * FROM shoutbox ORDER BY id DESC LIMIT 10'); foreach ($message as $message) { ?>[/PHP] [CENTER]Maintenant à vous de faire votre design de message, vous utiliserez [COLOR=#0080ff]<?= $message['']; ?>[/COLOR] pour afficher les données sauf pour le date_p vous utilisez [COLOR=#0080ff]<?= conversion($message['date_p']); ?>[/COLOR], le [COLOR=#0080ff]conversion()[/COLOR] permet d'utiliser notre [COLOR=#0080ff]function[/COLOR] que nous ferons juste après puis vous fermerez le [COLOR=#0080ff]foreach[/COLOR] avec[COLOR=#0080ff] <?php } ?>[/COLOR] Maintenant, on va dans notre dossier [COLOR=#0080ff]fonctions[/COLOR] situé dans le dossier [COLOR=#0080ff]includes[/COLOR] puis on crée [COLOR=#0080ff]date.php[/COLOR] et vous collerez ceci [/CENTER] [PHP]<?php function conversion($temps){ $temps = strtotime($temps); $diff_temps = time() - $temps; if($diff_temps < 1){ return 'à l\'instant'; } $sec = array ( 12 * 30 * 24 * 60 * 60 => 'an', 30 * 24 * 60 * 60 => 'mois', 24 * 60 * 60 => 'jour', 60 * 60 => 'heure', 60 => 'minute', 1 => 'seconde' ); foreach($sec as $sec => $value){ $div = $diff_temps / $sec; if($div >= 1){ $temps_conv = round($div); $temps_type = $value; if($temps_conv > 1 && $temps_type != "mois"){ $temps_type .= "s" ; } return 'il y a ' . $temps_conv .' ' . $temps_type; } } } ?>[/PHP] [CENTER]Cette [COLOR=#0080ff]fonction[/COLOR] permet de convertir notre [COLOR=#0080ff]datetime[/COLOR] en [COLOR=#0080ff]Posté il y a x temps [/COLOR] Voilà on a enfin fini :D Tu veux tester ? [URL='http://em.share-systems.net']Clique ici[/URL] Télécharger le projet: [URL='https://mega.nz/#!oBAm1AYa!44rdEoiudyHNkA9ZBHOEPB2BxgLWTkbYsncq_vMnYC0']Clique ici[/URL][/CENTER] [/QUOTE]
Insérer les citations…
Vérification
Publier la réponse
Forums
Forums généraux
Informatique
Développement
#5 Espace membre - Une Shoutbox
Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
Acceptez
En savoir plus.…
Haut