Pro cms ب php و mysql الجزء الثامن


فهاد الجزء الثامن من Pro cms ب php و mysql غادي نشوفوا الملفات لي غادي يمكنوا من عرض les articles على حساب catégorie اختارها المستخدم وأيضا لي غادي يمكنوا من عرض des articles بحث عليهم المستخدم كما غادي نشوفوا الملفات لي غادي يمكنوا المستخدم من التسجيل ومن الكونيكسيون وديكونيكسيون.

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

1- الملف categoryPosts.php

فالمجلد الرئيسي لي هو php_cms غادي نزيدو ملف جديد نسميوه categoryPosts.php ولي غادي يمكن من عرض les articles ديال catégorie اختارها المستخدم فأول حاجة كاين ل fonction getCat لي كنعرضوا بها ل catégorie ديال كل article منبعد كنخدم ب requête sql باش كنسترجع ل les articles بل id ديال ل catégorie وكنعرض المعلومات ديالهم  وكنعرض أيضا les catégories وles derniers articles ajoutés الكود ديال الملف هو :


                                <?php 
include('includes/header.php');
$id = mysqli_escape_string($con,$_GET['id']);
function getCat($con,$id){
    $getCatQuery = "SELECT * FROM categories WHERE id='$id'";
    mysqli_query($con,$getCatQuery);
    $result = mysqli_query($con,$getCatQuery);
    return $category = $result->fetch_assoc();
}
?>
<div class="container">
    <div class="row" style="margin-top:50px">
        <div class="col-md-8">
            <div class="panel panel-default" style="padding:20px">
                <?php
                    $query = "SELECT * FROM articles WHERE category_id='$id'";
                    if(mysqli_query($con,$query)):
                        $result = mysqli_query($con,$query);
                        while($row = $result->fetch_assoc()):
                ?>
                <?php
                   $category = getCat($con,$row['category_id']);
                ?>
                <div class="media post">
                    <div class="image media-left">
                        <img src="admin/images/<?php echo $row['image'];?>" class="media-object" alt="" height="200" width="200">
                    </div>
                    <div class="media-body" style="padding:10px">
                        <h3 class="media-heading text-primary"><a href="viewPost.php?id=<?php echo $row['id'];?>"><?php echo $row['title'];?></a></h3>
                        <small class="text-danger"><i class="glyphicon glyphicon-time"></i> <?php echo $row['created'];?></small>
                        <small class="text-success"><i class="glyphicon glyphicon-tags"></i> <?php echo $category['name'];?></small>
                        <p class=""><?php echo substr($row['body'],0,150).'...';?></p>
                    </div>
                </div>    
                <hr>
                <?php
                    endwhile;
                    endif;
                ?>
            </div>
        </div>
        <div class="col-md-4">
           <ul class="list-group">
               <li class="list-group-item li-nav">
                    Catégories
               </li>
               <?php
                $query = "SELECT * FROM categories";
                if(mysqli_query($con,$query)):
                    $result = mysqli_query($con,$query);
                    while($row = $result->fetch_assoc()):
                ?>
               <li class="list-group-item">
                    <a href="categoryPosts.php?id=<?php echo $row['id'];?>"><?php echo $row['name'];?></a>                  
               </li>
               <?php
                  endwhile;
                  endif;
              ?>
           </ul>
        </div>
        <div class="col-md-4">
           <ul class="list-group">
               <li class="list-group-item li-nav">
                    Dérniers Articles
               </li>
               <li class="list-group-item">
                    <?php
                        $query = "SELECT * FROM articles order by created DESC LIMIT 5";
                        if(mysqli_query($con,$query)):
                            $result = mysqli_query($con,$query);
                            while($row = $result->fetch_assoc()):
                    ?>
                    <div class="media">
                        <div class="image media-left">
                            <img src="admin/images/<?php echo $row['image'];?>" class="media-object" alt="" height="60" width="60">
                        </div>
                        <div class="media-body" style="padding:5px">
                            <h4 class="media-heading text-primary"><a href="viewPost.php?id=<?php echo $row['id'];?>"><?php echo $row['title'];?></a></h4>
                            <p class=""><?php echo substr($row['body'],0,20).'...';?></p>
                        </div>
                    </div>    
                    <hr>
                    <?php
                        endwhile;
                        endif;
                    ?>
               </li>
           </ul>
        </div>
    </div>
</div>
<?php include('includes/footer.php');?>
                            

2- الملف searchPost.php

فالمجلد الرئيسي لي هو php_cms غادي نزيدو ملف جديد نسميوه searchPost.php ولي غادي يمكن من عرض les articles لي بحث عليهم المستخدم فأول حاجة كنسترجع القيمة لي دخل المستخدم فالحقل ديال البحث منبعد كاين ل fonction getCat لي كنعرضوا بها ل catégorie ديال كل article منبعد كنخدم ب requête sql باش كنسترجع ل les articles لي العنوان ولا الوصف ديالهم كيشبه للقيمة لي دخال المستخدم وكنعرض المعلومات ديالهم  وكنعرض أيضا les catégories وles derniers articles ajoutés الكود ديال الملف هو :


                                <?php 
include('includes/header.php');
$search = $_POST['search'];
function getCat($con,$id){
    $getCatQuery = "SELECT * FROM categories WHERE id='$id'";
    mysqli_query($con,$getCatQuery);
    $result = mysqli_query($con,$getCatQuery);
    return $category = $result->fetch_assoc();
}
?>
<div class="container">
    <div class="row" style="margin-top:50px">
        <div class="col-md-8">
            <div class="panel panel-default" style="padding:20px">
            <h3 class="text-primary">Resultat pour '<?php echo $search;?>'</h3>
            <hr>
                <?php
                    $query = "SELECT * FROM articles WHERE title like '%$search%' OR body like '%$search%'";
                    if(mysqli_query($con,$query)):
                        $result = mysqli_query($con,$query);
                        while($row = $result->fetch_assoc()):
                ?>
                <?php
                   $category = getCat($con,$row['category_id']);
                ?>
                <div class="media post">
                    <div class="image media-left">
                        <img src="admin/images/<?php echo $row['image'];?>" class="media-object" alt="" height="200" width="200">
                    </div>
                    <div class="media-body" style="padding:10px">
                        <h3 class="media-heading text-primary"><a href="viewPost.php?id=<?php echo $row['id'];?>"><?php echo $row['title'];?></a></h3>
                        <small class="text-danger"><i class="glyphicon glyphicon-time"></i> <?php echo $row['created'];?></small>
                        <small class="text-success"><i class="glyphicon glyphicon-tags"></i> <?php echo $category['name'];?></small>
                        <p class=""><?php echo substr($row['body'],0,150).'...';?></p>
                    </div>
                </div>    
                <hr>
                <?php
                    endwhile;
                    endif;
                ?>
            </div>
        </div>
        <div class="col-md-4">
           <ul class="list-group">
               <li class="list-group-item li-nav">
                    Catégories
               </li>
               <?php
                $query = "SELECT * FROM categories";
                if(mysqli_query($con,$query)):
                    $result = mysqli_query($con,$query);
                    while($row = $result->fetch_assoc()):
                ?>
               <li class="list-group-item">
                    <a href="categoryPosts.php?id=<?php echo $row['id'];?>"><?php echo $row['name'];?></a>                  
               </li>
               <?php
                  endwhile;
                  endif;
              ?>
           </ul>
        </div>
        <div class="col-md-4">
           <ul class="list-group">
               <li class="list-group-item li-nav">
                    Dérniers Articles
               </li>
               <li class="list-group-item">
                    <?php
                        $query = "SELECT * FROM articles order by created DESC LIMIT 5";
                        if(mysqli_query($con,$query)):
                            $result = mysqli_query($con,$query);
                            while($row = $result->fetch_assoc()):
                    ?>
                    <div class="media">
                        <div class="image media-left">
                            <img src="admin/images/<?php echo $row['image'];?>" class="media-object" alt="" height="60" width="60">
                        </div>
                        <div class="media-body" style="padding:5px">
                            <h4 class="media-heading text-primary"><a href="viewPost.php?id=<?php echo $row['id'];?>"><?php echo $row['title'];?></a></h4>
                            <p class=""><?php echo substr($row['body'],0,20).'...';?></p>
                        </div>
                    </div>    
                    <hr>
                    <?php
                        endwhile;
                        endif;
                    ?>
               </li>
           </ul>
        </div>
    </div>
</div>
<?php include('includes/footer.php');?>
                            

3- الملف register.php

دائما فالمجلد الرئيسي كنزيد ملف جديد كنسميه register.php فيه كاين الكود لي كيمكن من إضافة مستخدم جديد لقاعدة البيانات من بعد مكيستقبل القيم لي جاوه من الفورم فأول حاجة كنتحقق واش الحقول حتى واحد ما خاوي يلا كان شي واحد خاوي كنعرض رسالة تنبيه باش يتعمر الحقل الخاوي منبعد كنسترجع القيم وكنزيدهم فقاعدة البيانات الكود ديال الملف هو :

                                <?php 
include('includes/header.php');
$errors =[];
$message = "";
if(isset($_POST['submit'])){
    $name = mysqli_escape_string($con,$_POST['name']);
    $email = mysqli_escape_string($con,$_POST['email']);
    $password = mysqli_escape_string($con,sha1($_POST['password']));
    $created = date('Y-m-d H:s:m');
    if(empty($_POST['name'])){
        $errors = "Veuillez remplir le champ nom & prénom";
    }else if(empty($_POST['email'])){
        $errors = "Veuillez remplir le champ email";
    }else if(empty($_POST['password'])){
        $errors = "Veuillez remplir le champ mot de passe";
    }else{
        $query = "INSERT INTO users (name,email,password,created) values('$name','$email','$password','$created')";
        if(mysqli_query($con,$query)){
             $message = '<div class="alert alert-success">
                    Compte crée avec succés 
                </div>';
        }else{
            echo '<div class="alert alert-danger">Une erreur est survenue'.mysqli_error($con).'</div>';
        }
    }
}
?>
<div class="container">
    <div class="row" style="margin-top:50px">
        <div class="col-md-6 col-md-offset-3">
            <?php 
                if(!empty($errors)){
                    echo '<div class="alert alert-danger">
                            '.$errors.'
                        </div><br>';
                }else{
                    echo $message;
                }
            ?>
            <div class="panel panel-default" style="padding:10px;">
            <h3 class="text-info">Inscription</h3>
            <hr>
                <form  method="post" action="register.php">
                    <div class="form-group">
                        <label for="name">Nom & Prénom:</label>
                        <input type="text" class="form-control" name="name" id="name" placeholder="Entrer votre nom">
                    </div>
                    <div class="form-group">
                        <label for="name">Email:</label>
                        <input type="email" class="form-control" name="email" id="email" placeholder="Entrer votre email">
                    </div>
                    <div class="form-group">
                        <label for="name">Mot de passe:</label>
                        <input type="password" class="form-control" name="password" id="password" placeholder="Entrer votre mot de passe">
                    </div>
                    <div class="form-group">
                        <button type="submit" class="btn btn-success" name="submit">Valider</button>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>
<?php include('includes/footer.php');?>
                            

4- الملف login.php

دائما فالمجلد الرئيسي كنزيد ملف كنسميه login.php فيه الكود لي كيمكن المستخدم باش يتكونيكطا فأول حاجة كنتحقق بلي الحقول مخاويينش كيف شفنا قبل من بعد كنسترجع المستخدم مول ل email و mot de passe من الجدول users يلا لقيتو كنزيد المعلومات ديالو ف session ولي كنعطيها logged كتساوي true يعني راه مكونيكطي  بالإضافة للمعلومات الأخرى مكانش كنعرض رسالة بلي ل email و mot de passe غالطين الكود ديال الملف هو:

                                    <?php 
include('includes/header.php');
$errors =[];
$message = "";
if(isset($_POST['submit'])){
    $email = mysqli_escape_string($con,$_POST['email']);
    $password = mysqli_escape_string($con,sha1($_POST['password']));
    if(empty($_POST['email'])){
        $errors = "Veuillez remplir le champ email";
    }else if(empty($_POST['password'])){
        $errors = "Veuillez remplir le champ mot de passe";
    }else{
        $query = "SELECT * FROM users WHERE email = '$email' AND password ='$password' LIMIT 1";
        if(mysqli_query($con,$query)){
            $data = mysqli_query($con,$query);
            $user = $data->num_rows;
            if($user == 1){
                $row = $data->fetch_assoc();
                $_SESSION['logged'] = true;
                $_SESSION['user_id'] = $row['id'];
                $_SESSION['name'] = $row['name'];
                $_SESSION['email'] = $row['email'];
                header("location:index.php");
            }else{
                $message = '<div class="alert alert-danger">
                                    Email ou mot de passe est incorrect
                            </div>';
            }
        }else{
            echo '<div class="alert alert-danger">Une erreur est survenue'.mysqli_error($con).'</div>';
        }
    }
}
?>
<div class="container">
    <div class="row" style="margin-top:50px">
        <div class="col-md-6 col-md-offset-3">
            <div class="panel panel-default" style="padding:10px;">
            <h3 class="text-info">Connexion</h3>
            <hr>
                <?php 
                    if(!empty($errors)){
                        echo '<div class="alert alert-danger">
                                '.$errors.'
                            </div><br>';
                    }else{
                        echo $message;
                    }
                ?>
                <form  method="post" action="login.php">
                    <div class="form-group">
                        <label for="name">Email:</label>
                        <input type="email" class="form-control" name="email" id="email" placeholder="Entrer votre email">
                    </div>
                    <div class="form-group">
                        <label for="name">Mot de passe:</label>
                        <input type="password" class="form-control" name="password" id="password" placeholder="Entrer votre mot de passe">
                    </div>
                    <div class="form-group">
                        <button type="submit" class="btn btn-success" name="submit">Valider</button>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>
<?php include('includes/footer.php');?>
                                

5- الملف logout.php

دائما فالمجلد الرئيسي كنزيد ملف جديد كنسميه logout.php ولي فيه الكود لي كيمكن المستخدم باش يديكونيكطا ولي كيمسح المعلومات من ال session وكيوجه المستخدم للملف ديال الصفحة الرئيسية ولي غادي نشوفوه من بعد الكود ديال الملف هو:

                                    <?php
    session_start();
    unset($_SESSION['user_id']);
    unset($_SESSION['name']);
    unset($_SESSION['email']);
    $_SESSION['logged'] = false;
    session_destroy();
    header("location:index.php");
?>
                                


إشترك في قناتنا على اليوتيوب

بحث في الموقع


إشترك للتوصل بالجديد