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

منذ 5 سنوات imadbelasri PHP
PH

فهاد الجزء الرابع غادي نشوفو كيفاش نزيدو système d'authentification لي غادي يمكن المستخدم من التسجيل فقاعدة البيانات و الدخول كما غادي يميز بين المستخدم العادي والأدمن لي غادي تكون عندو صلاحيات مختلفة.


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


- الملف register.php

أول حاجة غادي نمشيو للمجلد php-blog وغادي نزيدو فيه ملف نسميه register.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'])){
         $nom = mysqli_real_escape_string($db->link,$_POST['firstname']);
         $prenom = mysqli_real_escape_string($db->link,$_POST['lastname']);
         $email = mysqli_real_escape_string($db->link,$_POST['email']);
         $password = mysqli_real_escape_string($db->link,$_POST['password']);
         $pass_crypted = sha1($password);
         if($nom == '' || $prenom == '' || $email == '' || $password == ''){
             $error = "Veuillez remplir tous les champs";
         }else{
             $query = "INSERT INTO users (nom,prenom,email,passe) VALUES ('$nom','$prenom','$email','$pass_crypted')";
             $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">Inscription</h1>
                <hr>
                <section class="questions-box row">
                    <div class="col-md-8 col-md-offset-2">
                       <form action="register.php" method="post">
                            <div class="form-group">
                                <label for="firstname">Nom*</label>
                                <input type="text" name="firstname"  class="form-control">
                            </div>
                            <div class="form-group">
                                <label for="lastname">Prénom*</label>
                                 <input type="text" name="lastname"  class="form-control">
                            </div>
                             <div class="form-group">
                                <label for="email">Email*</label>
                                <input type="email" name="email" placeholder="Email" class="form-control">
                            </div>
                            <div class="form-group">
                                <label for="password">Mot de passe*</label>
                                <input type="password" name="password" placeholder="Mot de passe" class="form-control">
                            </div>
                            <div class="form-group">
                                <button type="submit" name="submit" class="btn btn-success">Créer compte</button>
                            </div>
                       </form>
                    </div>
                </section>
            </div>
        </div>
    </div>
</div>
<?php include('includes/footer.php');?>
                                                    
                                                

- الملف login.php

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

                                                        
                                                            <?php include('includes/header.php');?>
<?php
//connexion
$db = new Database();
if(isset($_POST['submit'])){
    $email = mysqli_real_escape_string($db->link,$_POST['email']);
    $passe = mysqli_real_escape_string($db->link,$_POST['password']);
    $pass_crypted = sha1($passe);
}
//requête de selection 
$query = "SELECT * FROM users WHERE email = '$email' AND passe = '$pass_crypted'";
$result = $db->select($query);
if(!empty($result)){
    $user = $result->fetch_assoc();
    $_SESSION['logged'] = true;
    $_SESSION['nom'] = $user['nom'];
    $_SESSION['prenom'] = $user['prenom'];
    $_SESSION['admin'] = $user['is_admin'];
    header("location:index.php");
}elseif(empty($result)){
    header("location:index.php?erreur=".urlencode('Erreur aucune information trouvée!'));
}
                                                        
                                                    

- الملف logout.php

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

                                                        
                                                            <?php
$_SESSION = array();
// verification et déstruction des cookies
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}
//déstruction de la  session 
session_destroy();
$_SESSION['logged'] = false;
header("location:index.php");
                                                        
                                                    

- تغييرات على الملف menu.php

من بعد غادي نمشي للمجلد includes وغادي ندير تغييرات على الملف menu.php غادي نزيد فيه القائمة الخاصة بتسجيل المستخدم الكود الجديد ديالو هو :

                                                        
                                                            <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="posts.php">Tous les postst</a></li>
            </ul>
            </li>
            <?php if(isset($_SESSION['logged']) && $_SESSION['admin'] == true):?>
               <li><a href="logout.php">Bienvenue <?php echo '<span class="label label-success">'.$_SESSION['nom'].' '.$_SESSION['prenom'].'</span>';?> Déconnexion</a></li>
               <li><a href="admin/index.php">Admin Panel</a></li>
            <?php elseif(isset($_SESSION['logged']) && ($_SESSION['logged'] == true)):?>
               <li><a href="logout.php">Bienvenue <?php echo '<span class="label label-success">'.$_SESSION['nom'].' '.$_SESSION['prenom'].'</span>';?> Déconnexion</a></li>
            <?php else:?>
               <li><a href="register.php">Inscription</a></li>
            <?php endif;?>
        </ul>
        </div><!--/.nav-collapse -->
    </div><!--/.container-fluid -->
 </nav>
                                                        
                                                    

- تغييرات على الملف index.php

من بعد ودائما فالمجلد الرئيسي ديال المشروع ديالنا غادي ندير تغييرات على الملف index.php غادي نزيد فيه لForm الخاصة بتسجيل الدخول ديال المستخدم الكود الجديد ديالو هو :

                                                        
                                                            <?php
  include('includes/header.php');
  $db = new Database();
  //select posts requête 
  $query = "SELECT * FROM posts";
  $posts =  $db->select($query);
  //select catégories requête
  $query = "SELECT * FROM categories";
  $categories =  $db->select($query);
?>
  <body>
  <?php include('includes/menu.php');?>
  <?php if(isset($_GET['msg'])):?>
    <div class="alert alert-success"><?php echo $_GET['msg'];?></div>
  <?php elseif(isset($_GET['erreur'])):?>
    <div class="alert alert-danger"><?php echo $_GET['erreur'];?></div>
  <?php endif;?>
  <div class="container">
      <div class="row"> 
        <div class="col-md-8">
         <?php if($posts):?>
          <div  class="panel panel-default">
            <?php foreach($posts as $post) :?>
                <h1 class="padded text-default"><?php echo $post['title'];?></h1>
                <small class="text-info padded"><?php echo $post['date'];?> par <?php echo $post['author'];?></small>
                <p class="lead padded">
                  <?php echo shortenText($post['body'])?><a href="post.php?id=<?php echo urlencode($post['id']);?>" class="btn btn-link">Plus..</a>
                </p>
                <hr>
            <?php endforeach;?>
          </div>
          <?php else :?>
            <p class="alert alert-info">Aucun post trouvé.</p>
          <?php endif;?>
        </div>
        <?php if(isset($_SESSION['logged']) && $_SESSION['logged'] == true):?>
        <?php else:?>
          <div class="col-md-3 col-md-offset-1">
            <div  class="panel panel-default">
                <h3 class="text-primary text-center">Connexion</h3>
                <form action="login.php" method="post" class="form-vertical padded">
                  <div class="form-group">
                    <label for="email">Email*</label>
                    <input type="email" name="email" placeholder="Email" class="form-control">
                  </div>
                  <div class="form-group">
                    <label for="password">Mot de passe*</label>
                    <input type="password" name="password" placeholder="Mot de passe" class="form-control">
                  </div>
                  <div class="form-group">
                    <button class="btn btn-success" type="submit" name="submit">Connexion</button>
                  </div>
                </form>
            </div>
          </div>
         <?php endif;?>
         <div class="col-md-3 col-md-offset-1">
           <div  class="panel panel-default">
              <h3 class="text-primary text-center">Catégories</h3>
              <?php if($categories):?>
                <?php foreach($categories as $categorie) :?>
                  <span><a href="posts.php?category=<?php echo $categorie['id'];?>" class="btn btn-link"><?php echo $categorie['name'];?></a></span>
                <?php endforeach;?>
              <?php endif;?>
           </div>
        </div>
  </div>
</body>
<?php include('includes/footer.php');?>

                                                        
                                                    

دروس ذات صلة

PH

كيفاش تزيد المعلومات فقاعدة البيانات بإستعمال Ajax

فهاد الدرس غادي نقادو واحد المشروع بسيط لي عبارة عن chatbox الهدف هنا ماشي هو نديرو chat ولكن الهدف...


PH

كيفاش تصاوب إختبار بإستعمال PHP الجزء الأول

فهاد الدرس غادي نشوفو كيفاش نديرو نصاوبو واحد الإختبار بسيط هاد الإختبار غادي يطرح الاسئلة على المست...


PH

كيفاش تصاوب إختبار بإستعمال PHP الجزء الثاني

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


PH

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

فهاد المشروع غادي نشوفو كيفاش نقادو blog بإستعمال php كما غادي نشوفو كيفاش نسجلو المعلومات ديالنا فق...


PH

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

فهاد الجزء الثاني من هاد المشروع غادي نشوفو كيفاش نسجلو المعلومات ديالنا فقاعدة البيانات و كيفاش ند...


PH

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

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


PH

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

فهاد الجزء الرابع غادي نشوفو كيفاش نزيدو système d'authentification لي غادي يمكن المستخدم من التسجيل...


PH

مشروع Photos Gallery بل PHP الجزء الأول

فهاد الدرس غادي نشوفو كيفاش نصاوبو واحد المشروع لي عبارة عن موقع للصور المستخدم كيدخل كيشاهد الصور و...


PH

مشروع Photos Gallery بل PHP الجزء الثاني

فهاد الجزء الثاني غادي نقادو الملفات لي غادي يمكننا من ربط الإتصال بقاعدة البيانات وغادي نزيدو الملف...


PH

مشروع Photos Gallery بل PHP الجزء الثالث

فهاد الجزء الثالث من المشروع ديالنا غادي نكملو الملفات لي غادي يمكنو من التعامل مع المعلومات الخاصة...