Ce site utilise des cookies pour améliorer uniquement votre expérience utilisateur.
Vous pouvez lire à tout moment comment nous utilisons les cookies sur le site.
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
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; | |
} | |
} | |
} | |
<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> | |
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> |