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>
4239 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
3 143 vues
Référencer votre site (SEO)
Aujourd'hui, créer son propre site web est devenu facile mais qu'en est-il lorsque celui-ci est en ligne ?Il est facile de faire de la publicité pour votre site sur les réseaux sociaux...
Créer son site
2 224 vues
Création de tables avec PhpMyAdmin
1. Accéder à PhpMyAdmin :Ouvrez un navigateur web et accédez à l'URL où vous avez installé PhpMyAdmin sur votre serveur.2. Authentification :Connectez-vous à PhpMyAdmin en utilisant vos...
SQL
4 766 vues
Afficher la liste des topics
Dans notre dossier f_forum, nous allons créer une nouvelle page sujet.php. Cette page affichera la liste des topiques créer par les utilisateurs de votre site en fonction de la catégorie...
Créer son site
3 781 vues
Définir l'encodage de caractères avec <meta charset="utf-8">
Définir l'encodage de caractères avec <meta charset="utf-8">L'encodage de caractères définit la correspondance entre les caractères et les valeurs binaires utilisées par l'ordinateur....
HTML
1 198 vues
Syntaxe de base : balises PHP, commentaires
Introduction à la syntaxe de base en PHPPHP utilise une syntaxe simple et flexible pour écrire du code côté serveur. Commençons par explorer les balises PHP et les commentaires, deux éléments...
PHP
4 828 vues
Qu'est-ce que HTML ?
Cours sur HTML : Qu'est-ce que HTML ?HTML, ou HyperText Markup Language, est le langage de balisage standard utilisé pour créer des pages Web. Il fournit une structure de base pour organiser le...
HTML
2 462 vues
Ajouter un avatar
Nous allons maintenant ajouter des avatars à nos profils et afficher ses avatars lors de l’affichage des membres 😁
Créer son site de rencontres
4 865 vues
Afficher la liste des articles
Mise en pagePour commencer nous allons créer la page maître de notre blog. C'est cette page qui contiendra tous les articles qui constituerons notre blog.Tout d'abord nous allons créer...
Créer son site
Publicité
Cette pub permet au site de vivre ...