Créer un topic


Dans notre dossier **f_forum**, nous allons créer une nouvelle page creer_topic.php. Cette page permettra à vos utilisateurs de pouvoir créer un topic afin de demande de l'aide, poser une question, ... à votre communauté.



Nous allons également modifier notre fichier .htaccess afin d'appliquer l'URL souhaitée pour accéder à cette nouvelle page.


Fichier .htaccess


RewriteRule ^forum/creer-mon-topic$ f_forum/creer_topic


Dans notre page creer_topic.php nous allons faire un formulaire qui permettra la création d'un topic.


Page creer_topic.php


<?php
  session_start();
  include('../bd/connexionDB.php'); // Fichier PHP contenant la connexion à votre BDD
   
  if (!isset($_SESSION['id'])){
    header('Location: /forum');
    exit;
  }
   
	if(!empty($_POST)){
    extract($_POST);
    $valid = true;

    if (isset($_POST['creer-topic'])){
					
			// Récupération de nos différents champs
      $titre = htmlentities(trim($titre)); 
      $contenu = htmlentities(trim($contenu)); 
			$categorie = (int) htmlentities(trim($categorie));
			
      if(empty($titre)){
        $valid = false;
        $er_titre = ("Il faut mettre un titre");
      }    

      if(empty($contenu)){
        $valid = false;
        $er_contenu = ("Il faut mettre un contenu");
      }    
			
      if(empty($categorie)){ 
        $valid = false;
        $er_categorie = "Le mail ne peut pas être vide";

      }else{
        // On vérifit que la catégorie existe
        $verif_cat = $DB->query("SELECT id, titre FROM forum WHERE id = ?",
          array($categorie));

        $verif_cat = $verif_cat->fetch();

        if (!isset($verif_cat['id'])){
          $valid = false;
          $er_categorie = "Cette catégorie n'existe pas";
        }
      }

      if($valid){
        $date_creation = date('Y-m-d H:i:s');
       
        $DB->insert("INSERT INTO topic (id_forum, titre, contenu, date_creation, id_user) VALUES 
          (?, ?, ?, ?, ?)", 
          array($categorie, $titre, $contenu, $date_creation, $_SESSION['id']));

        header('Location: /forum/' . $categorie);
        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>Créer mon 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">
					<div class="cdr-ins">
				     
				    <h1>Créer mon topic</h1>
				     
				    <form method="post">
				
				      <?php
				        // S'il y a une erreur sur la catégorie alors on affiche
				        if (isset($er_categorie)){
				        ?>
				          <div class="er-msg"><?= $er_categorie ?></div>
				        <?php  
				        }
				      ?>
				      <div class="form-group">
				      	<div class="input-group mb-3">
									<select name="categorie" class="custom-select" id="inputGroupSelect01">
										
										<?php
											if(!isset($categorie)){
											?>
											<option selected>Sélectionner votre catégorie</option>
											<?php
											}else{
											?>
											<option value="<?= $categorie ?>"><?= $verif_cat['titre'] ?></option>
											<?php	
											}
										?>
										
										<?php
											$req_cat = $DB->query("SELECT * FROM forum");
											
											$req_cat = $req_cat->fetchALL();
											
											foreach($req_cat as $rc){
											?>
												<option value="<?= $rc['id'] ?>"><?= $rc['titre'] ?></option>
											<?php
											}	
										?>
									</select>
								</div>
				      </div>
				      <?php
				        if (isset($er_titre)){
				        ?>
				          <div class="er-msg"><?= $er_titre ?></div>
				        <?php  
				        }
				      ?>
				      <div class="form-group">
				      	 <input class="form-control" type="text" placeholder="Votre titre" name="titre" value="<?php if(isset($titre)){ echo $titre; }?>">  
				      </div>
				      <?php
				        if (isset($er_contenu)){
				        ?>
				          <div class="er-msg"><?= $er_contenu ?></div>
				        <?php  
				        }
				      ?>
				      <div class="form-group">
				    	  <textarea class="form-control" rows="3" placeholder="Décrivez votre topic" name="contenu"><?php if(isset($contenu)){ echo $contenu; }?></textarea>
				      </div>
				
							<div class="form-group">
				      	<button class="btn btn-primary" type="submit" name="creer-topic">Envoyer</button>
							</div>
				
				    </form>
			    </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>
4062 vues
Modifié le 29 avril 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
665 vues
Sélecteurs d'attribut : styliser en fonction des attributs des éléments HTML
Sélecteurs d'Attribut : Styliser en fonction des attributs des éléments HTMLLes sélecteurs d'attribut en CSS permettent de cibler des éléments HTML en fonction de la présence ou de la valeur...
CSS
8 962 vues
Barre de recherche : Complète
Barre de rechercheMaintenant que notre formulaire et que notre script sont fait, nous allons créer une nouvelle page PHP que l'on nommera recherche_utilisateur.php.Dans cette page...
Créer son site
1 735 vues
Voir plus de messages (1/2)
Dans cette nouvelle vidéo nous allons ajouter un bouton 'voir plus' qui va nous permettre de voir d'anciens messages. Nous allons commencer par mettre en place le bouton suivi du procédé pour voir...
Créer son site de rencontres
2 768 vues
Barre de menu intelligente
Vous en avez marre de dupliquer votre code afin d'ajouter un nouveau lien sur votre barre de menus ?Alors dans cette vidéo vous allez apprendre à vous simplifier la vie en utilisant la fonction...
Créer son site de rencontres
683 vues
Boucles (for, while, do-while, foreach)
Les boucles en PHP permettent d'exécuter un bloc de code plusieurs fois, en fonction d'une condition spécifiée. Les principales boucles en PHP sont for, while, do-while et foreach. Voici un cours...
PHP
792 vues
Qu'est-ce que PHP ?
Introduction à PHPPHP, acronyme de "Hypertext Preprocessor", est un langage de programmation côté serveur très populaire, principalement utilisé pour développer des sites Web dynamiques et...
PHP
9 011 vues
Introduction
Je vous propose un cours afin de concevoir votre premier site de A à Z incluant un espace membre, un forum & un blog 😎Les objectif de ce cours :L'objectif et de ce familiariser avec les...
Créer son site
4 292 vues
Afficher son article
Afficher son articleNous allons créer une nouvelle page que l'on nommera voir_article.php. Cette page affichera tous les articles qui constituerons notre blog.Nous allons modifier notre...
Créer son site
Publicité
Cette pub permet au site de vivre ...