Créer un article


Nous allons créer une nouvelle page que l'on nommera creer_article.php. Cette page permettra de créer un article qui sera visible sur le blog.


Nous allons modifier notre fichier .htaccess afin d'appliquer l'URL souhaitée.


Fichier .htaccess


RewriteRule ^blog/creer-mon-article$ f_blog/creer_article


Ensuite dans notre page creer_article.php nous allons créer un formulaire afin de poster un article sur votre blog.


Page creer_article.php


<?php
  session_start();
  include('../bd/connexionDB.php'); // Fichier PHP contenant la connexion à votre BDD

  if (!isset($_SESSION['id'])){
    header('Location: /blog');
    exit;
  }
  
  if($_SESSION['role'] <> 1){
    header('Location: /blog');
    exit;
  }
  
  if(!empty($_POST)){
    extract($_POST);
    $valid = true;

    if (isset($_POST['creer-article'])){
      $titre  = (string) htmlentities(trim($titre)); 
      $contenu = (string) 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 thème ne peut pas être vide";
      }else{
        // On vérifit que le mail est disponible
        $verif_cat = $DB->query("SELECT id, titre 
          FROM categorie 
          WHERE id = ?",
          array($categorie));

        $verif_cat = $verif_cat->fetch();
    
        if (!isset($verif_cat['id'])){
          $valid = false;
          $er_categorie = "Ce thème n'existe pas";
        }
      }
  
      if($valid){
        $date_creation = date('Y-m-d H:i:s');        
        $DB->insert("INSERT INTO blog (id_user, titre, text, date_creation, id_categorie) VALUES 
          (?, ?, ?, ?, ?)", 
          array($_SESSION['id'], $titre, $contenu, $date_creation, $categorie));

        header('Location: /blog');
        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 article</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-12 col-md-12 col-lg-12">
          <div class="cdr-ins">
            <h1>Créer mon article</h1>
            <form method="post">
              <?php
                // S'il y a une erreur sur le nom 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(empty($categorie)){
                      ?>
                        <option selected>Sélectionner votre thème</option>
                      <?php
                      }else{
                      ?>
                        <option value="<?= $categorie ?>"><?= $verif_cat['titre'] ?></option>
                      <?php   
                      }

                      $req_cat = $DB->query("SELECT * 
                        FROM categorie");
                      $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 article" name="contenu"><?php if(isset($contenu)){ echo $contenu; }?></textarea>
              </div>
              <div class="form-group">
                <button class="btn btn-primary" type="submit" name="creer-article">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>
4304 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
985 vues
Sélection d'éléments HTML
Sélection d'Éléments HTML en JavaScriptLa sélection d'éléments HTML est une opération fondamentale en JavaScript. Cela permet d'interagir avec les éléments de la page web, de modifier leur...
JS
749 vues
Utilisation de l'élément <li> pour les éléments de liste
Utilisation de l'élément <li> pour les éléments de listeL'élément <li> est utilisé pour définir chaque élément individuel d'une liste, qu'elle soit ordonnée <ol> ou non...
HTML
825 vues
Utilisation des éléments de division <div> et <span> pour structurer le contenu
Utilisation des éléments de division <div> et <span> pour structurer le contenuLes balises <div> et <span> sont des éléments de division utilisés pour structurer et...
HTML
554 vues
Création de tableaux avec <table>.
Création de tableaux avec <table>La balise <table> est utilisée pour créer des tableaux dans une page HTML. Elle permet de structurer les données tabulaires en lignes et colonnes....
HTML
4 361 vues
Afficher un topic
Afficher un topic de notre forumDans 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...
Créer son site
712 vues
Retour de valeurs avec return
En PHP, la fonction return est utilisée pour renvoyer une valeur depuis une fonction. Cela permet à une fonction d'effectuer des calculs ou des traitements sur des données et de renvoyer le...
PHP
4 342 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
824 vues
Utilisation des éléments <input>, <textarea>, <select> et <button>
Utilisation des éléments <input>, <textarea>, <select> et <button>Dans un formulaire HTML, différents éléments sont utilisés pour collecter des données de...
HTML
Publicité
Cette pub permet au site de vivre ...