كيفاش نصاوب blog بل php الجزء الثاني


فهاد الجزء الثاني من هاد المشروع غادي نشوفو كيفاش نسجلو المعلومات ديالنا فقاعدة البيانات و كيفاش نديرو صفحة خاصة بالأدمين لي غادي تكون عندو صلاحيات الإضافة والحذف.

نظرة سريعة بالفيديو


- إنشاء المجلد admin و باقي الملفات


أول حاجة غادي تمشي للمجلد admin وغادي تزيد فيه مجلد تسميه includes فهاد المجلد غادي تزيد 3 ملفات الأول header .php وfooter.php و menu.php الكود ديالهم مجموع هو :

                                    
                                        //header.php code
<?php
  include('../config/config.php');
  include('../libraries/Database.php');
  include('../helpers/format_helper.php');
?>
<!DOCTYPE html>
<html lang="fr">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <title>Php Blog</title>

    <!-- Bootstrap -->
    <link href="../css/bootstrap.min.css" rel="stylesheet">
    <link href="../css/blog.css" rel="stylesheet">
    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
  //menu.php code 

  <nav class="navbar navbar-default">
    <div class="container-fluid">
        <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="index.php">Php Blog</a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
        <ul class="nav navbar-nav">
            <li><a href="index.php">Acceuil</a></li>
            <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Posts <span class="caret"></span></a>
            <ul class="dropdown-menu">
                <li><a href="add_post.php">Ajouter un post</a></li>
            </ul>
            </li>
            <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Catégories <span class="caret"></span></a>
            <ul class="dropdown-menu">
                <li><a href="add_category.php">Ajouter une catégorie</a></li>
            </ul>
            </li>
            <li><a href="../index.php">Retour au blog</a></li>
        </ul>
        </div><!--/.nav-collapse -->
    </div><!--/.container-fluid -->
 </nav>

  //footer.php

   <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="../js/bootstrap.min.js"></script>
    <script src="../js/script.js"></script>
  </body>
</html>
                                    
                                

- الملف add_post.php


فالمجلد admin غادي تزيد ملفات 7 ملفات وadd_category.php و edit_category.php و add_post.php و edit_post.php و delete_category.php و delete_post.php و index.php هاد الملفات غادي يمكننا من عرض إضافة تعديل مسح ل posts من قاعدة البيانات أول ملف غادي نبداو بيه هو ملف إضافة post الكود ديالو هو :

                                    
                                        <?php include('includes/header.php');?>
<body>
<?php include('includes/menu.php');?>
<?php 
     //connexion au base de données
     $db = new Database();
     if(isset($_POST['submit'])){
         $title = mysqli_real_escape_string($db->link,$_POST['title']);
         $post = mysqli_real_escape_string($db->link,$_POST['post']);
         $categorie = mysqli_real_escape_string($db->link,$_POST['categorie']);
         $auteur = mysqli_real_escape_string($db->link,$_POST['auteur']);
         $tags = mysqli_real_escape_string($db->link,$_POST['tags']);
         if($title == '' || $post == '' || $categorie == '' || $auteur == '' || $tags == ''){
             $error = "Veuillez remplir tous les champs";
         }else{
             $query = "INSERT INTO posts (category,title,body,author,tags) VALUES ('$categorie','$title','$post','$auteur','$tags')";
             $insert = $db->insert($query);
         }
     }
     //select requête 
     $query = "SELECT * FROM categories";
     $categories  = $db->select($query);
?>
<div class="container">
    <div class="row">
        <div class="col-md-6 col-md-offset-3">
            <div class="panel panel-default">
                <h1 class="text-center text-primary">Ajouter un post</h1>
                <hr>
                <section class="questions-box row">
                    <div class="col-md-8 col-md-offset-2">
                       <form action="add_post.php" method="post">
                            <div class="form-group">
                                <label for="title">Titre</label>
                                <input type="text" name="title"  class="form-control">
                            </div>
                            <div class="form-group">
                                <label for="post">Post</label>
                                <textarea name="post" id="" cols="30" rows="10" class="form-control"></textarea>
                            </div>
                            <div class="form-group">
                                <label for="categorie">Catégorie</label>
                                <select name="categorie" id="" class="form-control">
                                    <?php while($row = $categories->fetch_assoc()):?>
                                        <?php
                                            if($row['id']  == 9){
                                                $selected = 'selected';
                                            }else{
                                                $selected = '';
                                            }
                                        ?>
                                    <option <?php echo $selected;?>  value="<?php echo $row['id'];?>"><?php echo $row['name'];?></option>
                                    <?php endwhile;?>
                                </select>
                            </div>
                            <div class="form-group">
                                <label for="auteur">Auteur</label>
                                 <input type="text" name="auteur"  class="form-control">
                            </div>
                            <div class="form-group">
                                <label for="tags">Tags</label>
                                 <input type="text" name="tags"  class="form-control">
                            </div>
                            <div class="form-group">
                                <button type="submit" name="submit" class="btn btn-success">Ajouter</button>
                            </div>
                       </form>
                    </div>
                </section>
            </div>
        </div>
    </div>
</div>
<?php include('includes/footer.php');?>
                                    
                                

- الملف add_category.php


فالملف add_category.php غادي نزيدو الكود لي غادي يمكنا من إضافة الفئات فقاعدة البيانات :

                                      
                                        <?php include('includes/header.php');?>
<body>
<?php include('includes/menu.php');?>
<?php
//connexion au base de données
     $db = new Database();
     if(isset($_POST['submit'])){
         $categorie = mysqli_real_escape_string($db->link,$_POST['categorie']);
         if($categorie == ''){
             $error = "Veuillez remplir le champ catégorie";
         }else{
             $query = "INSERT INTO categories (name) VALUES ('$categorie')";
             $insert = $db->insert($query);
         }
     }
?>
<div class="container">
    <div class="row">
        <div class="col-md-6 col-md-offset-3">
            <div class="panel panel-default">
                <h1 class="text-center text-primary">Ajouter une catégorie</h1>
                <hr>
                <section class="questions-box row">
                    <div class="col-md-8 col-md-offset-2">
                       <form action="add_category.php" method="post">
                            <div class="form-group">
                                <label for="categorie">Catégorie</label>
                                <input type="text" name="categorie"  class="form-control">
                            </div>
                            <div class="form-group">
                                <button type="submit" name="submit" class="btn btn-success">Ajouter</button>
                                <a href="edit_post.php?id=<?php echo $result['id'];?>&action=DELETE" class="btn btn-danger">Supprimer</a>
                            </div>
                       </form>
                    </div>
                </section>
            </div>
        </div>
    </div>
</div>
<?php include('includes/footer.php');?>
                                      
                                    

- الملف edit_post.php


فالملف edit_post.php غادي نزيدو الكود لي غادي يمكنا باش نديرو تعديلات على ل post لي ختارينا وإعادة تسجيلو فقاعدة البيانات :

                                        
                                            <?php include('includes/header.php');?>
<body>
<?php include('includes/menu.php');?>
<?php 
    //connexion à la  base de données
    $db = new Database();
    if(isset($_GET['id'])){
        $id = (int)$_GET['id'];
    }
    $query = "SELECT * FROM posts WHERE id = $id";
    $result = $db->select($query)->fetch_assoc();
    //modification
    if(isset($_POST['submit'])){
        $title = mysqli_real_escape_string($db->link,$_POST['title']);
        $post = mysqli_real_escape_string($db->link,$_POST['post']);
        $categorie = mysqli_real_escape_string($db->link,$_POST['categorie']);
        $auteur = mysqli_real_escape_string($db->link,$_POST['auteur']);
        $tags = mysqli_real_escape_string($db->link,$_POST['tags']);
        if($title == '' || $post == '' || $categorie == '' || $auteur == '' || $tags == ''){
            $error = "Veuillez remplir tous les champs";
        }else{
            $query = "UPDATE posts set category = '$categorie',title = '$title',body = '$post',author = '$auteur',tags = '$tags' WHERE id = $id";
            $update = $db->update($query);
        }
    }
    //select catégories requête 
    $query = "SELECT * FROM categories";
    $categories  = $db->select($query);
?>
<div class="container">
    <div class="row">
        <div class="col-md-6 col-md-offset-3">
            <div class="panel panel-default">
                <h1 class="text-center text-primary">Modifier un post</h1>
                <hr>
                <section class="questions-box row">
                    <div class="col-md-8 col-md-offset-2">
                       <form action="edit_post.php?id=<?php echo $id;?>" method="post">
                            <div class="form-group">
                                <label for="title">Titre</label>
                                <input type="text" name="title"  class="form-control" value="<?php echo $result['title'];?>">
                            </div>
                            <div class="form-group">
                                <label for="post">Post</label>
                                <textarea name="post" id="" cols="30" rows="10" class="form-control"><?php echo $result['body'];?></textarea>
                            </div>
                            <div class="form-group">
                                <label for="categorie">Catégorie</label>
                                <select name="categorie" id="" class="form-control">
                                    <?php while($row = $categories->fetch_assoc()):?>
                                        <?php
                                            if($row['id']  == $result['category']){
                                                $selected = 'selected';
                                            }else{
                                                $selected = '';
                                            }
                                        ?>
                                    <option <?php echo $selected;?>  value="<?php echo $row['id'];?>"><?php echo $row['name'];?></option>
                                    <?php endwhile;?>
                                </select>
                            </div>
                            <div class="form-group">
                                <label for="auteur">Auteur</label>
                                 <input type="text" name="auteur"  class="form-control" value="<?php echo $result['author'];?>">
                            </div>
                            <div class="form-group">
                                <label for="tags">Tags</label>
                                 <input type="text" name="tags"  class="form-control" value="<?php echo $result['tags'];?>">
                            </div>
                            <div class="form-group">
                                <button type="submit" name="submit" class="btn btn-success">Modifier</button>
                                <a href="delete_post.php?id=<?php echo $result['id'];?>&action=DELETE" class="btn btn-danger">Supprimer</a>
                            </div>
                       </form>
                    </div>
                </section>
            </div>
        </div>
    </div>
</div>
<?php include('includes/footer.php');?>
                                        
                                    

- الملف edit_category.php


فالملف edit_category.php غادي نزيدو الكود لي غادي يمكنا باش نديرو تعديلات على ل categorie لي ختارينا وإعادة تسجيلها فقاعدة البيانات :

                                        
                                            <?php include('includes/header.php');?>
<body>
<?php include('includes/menu.php');?>
<?php 
     //connexion à la  base de données
    $db = new Database();
    if(isset($_GET['id'])){
        $id = (int)$_GET['id'];
    }
    $query = "SELECT * FROM categories WHERE id = $id";
    $result = $db->select($query)->fetch_assoc();
    //modification
    if(isset($_POST['submit'])){
         $categorie = mysqli_real_escape_string($db->link,$_POST['categorie']);
         if($categorie == ''){
             $error = "Veuillez remplir le champ catégorie";
         }else{
             $query = "UPDATE  categories SET name = '$categorie' WHERE id = $id";
             $update = $db->update($query);
         }
    }
?>
<div class="container">
    <div class="row">
        <div class="col-md-6 col-md-offset-3">
            <div class="panel panel-default">
                <h1 class="text-center text-primary">Modifier une catégorie</h1>
                <hr>
                <section class="questions-box row">
                    <div class="col-md-8 col-md-offset-2">
                       <form action="edit_category.php?id=<?php echo $id;?>" method="post">
                            <div class="form-group">
                                <label for="categorie">Catégorie</label>
                                <input type="text" name="categorie"  class="form-control" value="<?php echo $result['name'];?>">
                            </div>
                            <div class="form-group">
                                <button type="submit" name="submit" class="btn btn-success">Modifier</button>
                                <a href="delete_category.php?id=<?php echo $result['id'];?>&action=DELETE" class="btn btn-danger">Supprimer</a>
                            </div>
                       </form>
                    </div>
                </section>
            </div>
        </div>
    </div>
</div>
<?php include('includes/footer.php');?>
                                        
                                    

كلمات مفاتيح :