Créer un article

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   
                                            }
                                        ?>

                                        <?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>
Par Clouder le 17 Oct 2018
Vous pouvez télécharger les fichiers de l'article
Cette pub permet au site de vivre ...

Commentaire

Tu veux participer ?
Alors connecte toi ou inscris toi et viens participer !