موقع من الصفر بل PHP و Mysql للمبتدئين الجزء الثاني

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

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


- الملفات الأساسية تتمة


دائما فincludes الملف footer.php الكود ديالو هو :

                                    
                                         <footer>
     <ul class="footer">
        <li>© DarijaCoding 2017</li>
     </ul>
 </footer>   
    <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>
  </body>
</html>
                                    
                                

- الملف index.php


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

                                    
                                        <?php 
include('includes/header.php');
?>
<?php
//get all subjects
$table = "sujets";
$result = getData($con,$table,$order = true);
$catgories = getData($con,"categories",$order = false);
?>
<div class="container">
    <div class="row">
        <div class="col-md-4">
            <nav class="navbar">
                <div class="row">
                    <div class="col-md-12">
                        <ul class="nav navbar-nav">
                            <li><a href="index.php" class="btn btn-link">Tous les sujets</a></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">
                                    <?php while($row = $catgories->fetch_assoc()):?>
                                      <li><a href="categories.php?categorie=<?php echo $row['id'];?>"><?php echo $row['name'];?></a></li>
                                    <?php endwhile;?>
                                </ul>
                            </li>
                        </ul>
                    </div>
                </div>
            </nav>
        </div>
    </div>
    <div class="row">
            <?php while($row = $result->fetch_assoc()):?>
            <?php  
            $table = "users";
            $user = getSubject($con,$param="id",$row['user_id'],$table);
            ?>
            <div class="col-md-12">
                <div class="panel panel-default rounded">
                    <div class="media padded">
                        <div class="media-left">
                            <a href="#">
                            <img class="media-object img-circle" src="images/<?php echo $user['photo'];?>" alt="..." height="100" width="100">
                            </a>
                        </div>
                        <div class="media-body padded">
                            <h4 class="media-heading"><a href="view.php?id=<?php echo $row['id'];?>"><?php echo $row['title'];?></a></h4>
                            <?php echo $row['body'];?>
                        </div>
                        <div class="media-footer padded">
                            <div class="pull-left">
                                <span class="text-success marged"><i class="fa fa-user"></i> <?php echo $user['nom']." ".$user['prenom'];?></span>
                                <span class="text-primary marged"><i class="fa fa-calendar"></i> <?php echo $row['date_ajout'];?></span>
                            </div>
                            <div class="pull-right">
                                <span class="text-danger marged"><i class="fa fa-comment"></i> <?php echo countData($con,'post_id',$row['id'],'reponses');?> réponses</span>
                                <span class="text-default marged"><i class="fa fa-eye"></i> <?php echo countData($con,'post_id',$row['id'],'vues');?> vues</span>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        <?php endwhile;?>
   </div>
</div>
<?php include('includes/footer.php');?>
                                    
                                

الملف categories.php


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

                                      
                                        <?php 
include('includes/header.php');
?>
<?php
$id = $_REQUEST['categorie'];
//get all subjects
$table = "sujets";
$result = getSubjectsByCategoryId($con,$id);
$catgories = getData($con,"categories",$order = false);
?>
<div class="container">
    <div class="row">
        <div class="col-md-4">
            <nav class="navbar">
                <div class="row">
                    <div class="col-md-12">
                        <ul class="nav navbar-nav">
                            <li><a href="index.php" class="btn btn-link">Tous les sujets</a></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">
                                    <?php while($row = $catgories->fetch_assoc()):?>
                                      <li><a href="categories.php?categorie=<?php echo $row['id'];?>"><?php echo $row['name'];?></a></li>
                                    <?php endwhile;?>
                                </ul>
                            </li>
                        </ul>
                    </div>
                </div>
            </nav>
        </div>
    </div>
    <div class="row">
       <?php if($result->num_rows >= 1):?>
            <?php while($row = $result->fetch_assoc()):?>
            <?php  
               $table = "users";
               $user = getSubject($con,$param="id",$row['user_id'],$table);
            ?>
            <div class="col-md-12">
                <div class="panel panel-default rounded">
                    <div class="media padded">
                        <div class="media-left">
                            <a href="#">
                            <img class="media-object img-circle" src="images/<?php echo $user['photo'];?>" alt="..." height="100" width="100">
                            </a>
                        </div>
                        <div class="media-body padded">
                            <h4 class="media-heading"><a href="view.php?id=<?php echo $row['id'];?>"><?php echo $row['title'];?></a></h4>
                            <?php echo $row['body'];?>
                        </div>
                        <div class="media-footer padded">
                            <div class="pull-left">
                                <span class="text-success marged"><i class="fa fa-user"></i> <?php echo $user['nom']." ".$user['prenom'];?></span>
                                <span class="text-primary marged"><i class="fa fa-calendar"></i> <?php echo $row['date_ajout'];?></span>
                            </div>
                            <div class="pull-right">
                                <span class="text-danger marged"><i class="fa fa-comment"></i> <?php echo countData($con,'post_id',$row['id'],'reponses');?> réponses</span>
                                <span class="text-default marged"><i class="fa fa-eye"></i> <?php echo countData($con,'post_id',$row['id'],'vues');?> vues</span>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <?php endwhile;?>
       <?php else:?>
       <div class="alert alert-info">Aucun sujet trouvé</div>
       <?php endif;?>
   </div>
</div>
<?php include('includes/footer.php');?>
                                      
                                    

الملف register.php


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

                                        
                                            <?php 
include('includes/header.php');
include_once('database/functions.php');
?>
<div class="container">
     <div class="row">
        <div class="col-md-11 col-md-offset-1 offre">
            <div class="row">
                <div class="col-md-6 col-md-offset-2">
                    <h2 class="text-primary">Inscription</h2>
                    <?php 
                        if(isset($_POST['submit'])){
                            $photo = upload_image($_FILES["photo"]);
                            if($photo == "image_not_supporetd"){
                                 echo '<div class="alert alert-danger">Le type d\'image que vous tentez de télécharger n\'est pas autorisé</div>';
                            }elseif($photo == "size_excced"){
                                 echo '<div class="alert alert-danger">Le fichier téléchargé dépasse la taille maximale autorisée</div>';
                            }else{
                                $table = "users";
                                $nom = htmlentities($_POST['nom']);
                                $prenom = htmlentities($_POST['prenom']);
                                $email = htmlentities($_POST['email']);
                                $pass = htmlentities(sha1($_POST['passe']));
                                $date_ins = date("Y-m-d h:i:s");
                                $values = array(
                                    'nom'=>$nom,
                                    'prenom'=>$prenom,
                                    'email'=>$email,
                                    'pass'=>$pass,
                                    'photo'=> $photo,
                                    'date_ins'=>$date_ins
                                );
                                if(insert($con,$values,$table)){
                                    echo '<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>';
                                }
                            }
                        }
                    ?>
                    <form action="register.php" method="post" class="form-vertical well" enctype="multipart/form-data">
                        <div class="form-group">
                            <label for="nom">Nom<span class="text-danger">*</span></label>
                            <input type="text" name="nom" class="form-control" required="" placeholder="Votre Nom">
                        </div>
                        <div class="form-group">
                            <label for="prenom">Prénom<span class="text-danger">*</span></label>
                            <input type="text" name="prenom" class="form-control" required=""  placeholder="Votre Prénom">
                        </div>
                        <div class="form-group">
                            <label for="photo">Photo<span class="text-danger"></span></label>
                            <input type="file" name="photo" class="form-control">
                        </div>
                        <div class="form-group">
                            <label for="email">Email<span class="text-danger">*</span></label>
                            <input type="text" name="email" class="form-control"  required="" placeholder="Votre Email">
                        </div>
                        <div class="form-group">
                            <label for="passe">Passe<span class="text-danger">*</span></label>
                            <input type="password" name="passe" class="form-control" required="" placeholder="Votre Passe">
                        </div>
                        <div class="form-group">
                            <button type="submit" name="submit" class="btn btn-success">Créer compte</button>
                        </div>
                        <b class="text-primary">Déja membre ?<a href="login.php"> Connectez vous</a></b>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
<?php include('includes/footer.php');?>
                                        
                                    

الملف login.php


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

                                        
                                            <?php 
include('includes/header.php');
if(isset($_SESSION['logged']) && $_SESSION['logged'] == true){
header("location:index.php");
}
?>
<div class="container">
     <div class="row">
        <div class="col-md-11 col-md-offset-1 offre">
            <div class="row">
                <div class="col-md-6 col-md-offset-2">
                    <h2 class="text-primary">Connexion</h2>
                    <?php 
                        if(isset($_POST['submit'])){
                            $table = "users";
                            $email = htmlentities($_POST['email']);
                            $pass = htmlentities(sha1($_POST['passe']));
                            $result = login($con,$email,$pass,$table);
                            if($result != null){
                                $_SESSION['logged'] = true;
                                $_SESSION['nom'] = $result['nom'];
                                $_SESSION['prenom'] = $result['prenom'];
                                $_SESSION['user_id'] = $result['id'];
                                header("location:index.php");
                            }else{
                                echo '<div class="alert alert-danger">Email ou mot de passe est incorrect</div>';
                            }
                        }
                    ?>
                    <form action="login.php" method="post" class="form-vertical well">
                        <div class="form-group">
                            <label for="email">Email<span class="text-danger">*</span></label>
                            <input type="text" name="email" class="form-control" required="" placeholder="Votre Email">
                        </div>
                        <div class="form-group">
                            <label for="passe">Passe<span class="text-danger">*</span></label>
                            <input type="password" name="passe" class="form-control"  required="" placeholder="Votre Passe">
                        </div>
                        <div class="form-group">
                            <button type="submit" name="submit" class="btn btn-success">Connexion</button>
                        </div>
                        <b class="text-primary">Nouveau utilisateur ?<a href="register.php"> Inscrivez vous</a></b>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
<?php include('includes/footer.php');?>
                                        
                                    

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