Afficher un topic de notre forum


Dans notre dossier f_forum, nous allons créer une nouvelle page topic.php. Cette page affichera le topique créé par un de vos utilisateur.


Nous allons également modifier notre fichier .htaccess afin d'appliquer l'URL souhaitée pour récupérer l'identifiant de la catégorie et l'identifiant du topique.


Fichier .htaccess


RewriteRule ^forum/([0-9]+)/([0-9]+)$ f_forum/topic?id_forum=$1&id_topic=$2


Ensuite dans notre page topic.php nous allons afficher le topique de qui est stocké dans la table topic.


Page topic.php


<?php
  session_start();
  include('../bd/connexionDB.php'); // Fichier PHP contenant la connexion à votre BDD  
  // Récupération de l'id de la catégorie
  $get_id_forum = (int) trim(htmlentities($_GET['id_forum'])); 
  // Récupération de l'id du topic
  $get_id_topic = (int) trim(htmlentities($_GET['id_topic']));
  // Si l'une des variables est vide alors on redirige vers la page forum
  if(empty($get_id_forum) || empty($get_id_topic)){
    header('Location: /forum');
    exit;
  }
  // On va sélectionner les informations nécessaire pour afficher notre topic
  $req = $DB->query("SELECT t.*, DATE_FORMAT(t.date_creation, 'Le %d/%m/%Y à %H\h%i') as date_c, U.prenom
    FROM topic T
    LEFT JOIN utilisateur U ON U.id = T.id_user
    WHERE t.id = ? AND t.id_forum = ?
    ORDER BY t.date_creation DESC", 
    array($get_id_topic, $get_id_forum));
  $req = $req->fetch();
  
  if(!isset($req['id'])){
    header('Location: /forum/' . $get_id_forum);
    exit;
  }  
?>
<!DOCTYPE html>
<html>
  <head>
    <base href="/"/>
    <meta charset="utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
    <title>Topic</title>
    <link rel="stylesheet" href="../css/bootstrap.min.css"/>
    <link rel="stylesheet" href="../css/style.css"/>
  </head>
  <body>
    <?php
      require_once('../menu.php');    
      ?>
      <div class="container">
        <div class="row">   
          <div class="col-sm-0 col-md-0 col-lg-0"></div>
          <div class="col-sm-12 col-md-12 col-lg-12">
            <h1 style="text-align: center">Topic : <?= $req['titre'] ?></h1>
            <div style="background: white; box-shadow: 0 5px 15px rgba(0, 0, 0, .15); padding: 5px 10px; border-radius: 10px">
              <h3>Contenu</h3>
              <div style="border-top: 2px solid #eee; padding: 10px 0"><?= $req['contenu'] ?></div>
              <div style="color: #CCC; font-size: 10px; text-align: right">
                <?= $req['date_c'] ?>
                par 
                <?= $req['prenom'] ?>
              </div>              
            </div>
          </div>
        </div>
      </div>
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
    <script src="../js/bootstrap.min.js"></script>
  </body>
</html>
3996 vues
Modifié le 26 février 2019
Publicité Sitedudev
Cette pub permet au site de vivre ...
Vidéo associée
Publicité Sitedudev
Cette pub permet au site de vivre ...
Télécharger le code source
Publicité
Cette pub permet au site de vivre ...
Voir d'autres articles
41 025 vues
Inscription en PHP
Pour débuter notre site nous allons créer un formulaire d'inscription afin d'enregistrer de nouveaux utilisateurs dans une base de données (BDD).Pour cela, il faut créer un formulaire...
Créer son site
444 vues
Utilisation de <tr> pour les lignes, <th> pour les en-têtes et <td> pour les cellules
Utilisation de <tr> pour les lignes, <th> pour les en-têtes et <td> pour les cellulesDans un tableau HTML, la balise <tr> est utilisée pour définir chaque ligne du tableau,...
HTML
4 422 vues
Le langage CSS
Le CSS permet de concevoir le design de votre site web. Le CSS agit sur des éléments HTML.On peut intégrer le CSS de deux façons :Directement sur les éléments de votre HTML,Mettre le...
Créer son site
333 vues
Tableaux : création, accès aux éléments, méthodes
Tableaux en JavaScript1. Création de Tableaux :Un tableau en JavaScript est une structure de données permettant de stocker plusieurs valeurs dans une seule variable. Vous pouvez créer un tableau...
JS
898 vues
Gestion des événements : click, submit, keydown, etc.
Gestion des Événements en JavaScriptLa gestion des événements en JavaScript permet d'interagir avec les actions de l'utilisateur sur une page web, telles que les clics de souris, les soumissions...
JS
4 424 vues
Créer sa première page
Attention ! ⚠️ À partir de ce cours je ne détaillerais plus comme le cours précédent.À la place il sera expliqué ce que la vidéo va vous apporter et .. comme toujours le code sera...
Créer son site de rencontres
363 vues
CSS interne : l'utilisation de balises <style> dans la section <head> du document HTML
CSS Interne : L'utilisation de balises <style> dans la section <head> du document HTMLLe CSS interne est une méthode de stylisation où les styles sont définis directement dans la...
CSS
825 vues
CSS externe : l'utilisation de fichiers CSS séparés pour styliser plusieurs pages HTML
CSS Externe : L'utilisation de fichiers CSS séparés pour styliser plusieurs pages HTMLLe CSS externe est une méthode de stylisation où les styles sont définis dans des fichiers CSS distincts et...
CSS
Publicité
Cette pub permet au site de vivre ...