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>
4326 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
5 357 vues
Que mettre dans la balise head
Afin de continuer à faire connaitre votre site pour son référencement nous allons parler du contenu de base dans la balise <head>.La balise <head> joue un rôle essentiel...
Créer son site
864 vues
Utilisation des directives @if, @for, @each, @while pour un contrôle de flux avancé
Utilisation des directives pour un contrôle de flux avancé en SASS1. Directive @if :La directive @if permet d'exécuter un bloc de code conditionnellement en fonction d'une expression booléenne....
Sass
1 643 vues
Afficher plus de conversation
Dans cette avant-dernière vidéo sur la création d’une messagerie interne nous allons personnaliser rapidement la page pour afficher les conversations et nous allons également corriger /...
Créer son site de rencontres
3 556 vues
Le protocole Open Graph
IntroductionLe protocole Open Graph permet à n'importe quelle page Web de devenir un objet riche dans un graphe social. Par exemple, ceci est utilisé...
Créer son site
4 493 vues
Créer un commentaire
Poster un commentaireDans notre dossier f_forum, nous allons reprendre la page topic.php. Dans cette page nous allons ajouter la possibilité à vos utilisateurs de pouvoir poster des commentaires...
Créer son site
3 882 vues
Afficher les commentaires
Nous allons reprendre notre page topic.php. Sur cette page nous allons afficher les commentaires postés de vos utilisateur.Dans notre page topic.php nous allons donc afficher les...
Créer son site
763 vues
Création de formulaires avec <form>
Création de formulaires avec <form>La balise <form> est utilisée pour créer des formulaires interactifs dans une page HTML. Elle permet aux utilisateurs de saisir et de soumettre des...
HTML
14 123 vues
Notre base de données
Avant d'entamer le développement de notre futur site il nous faut une base de données afin de pouvoir ajouter, modifier ou de supprimer des informations.Étapes...
Créer son site
Publicité
Cette pub permet au site de vivre ...