Pro cms ب php و mysql الجزء الأول

فهاد ال projet الجديد من سلسلة php غادي نشوفو كيفاش نقادو واحد cms ب php و mysql ولي غادي يكون عبارة عن blog الأدمن كيزيد des articles الناس كتصفحهم كتزيد التعليقات ديالها كتسجل فالموقع كتكونيكطا والأدمن عندو الصلاحيات ديال التعديل والحدف ديال كلشي فهنا خص تكون عندك les bases ديال php ويلا كنتي مازال مبتدئ شوف الدروس لي سبقوا هادا. 

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


1- إنشاء قاعدة البيانات


أول حاجة غادي نديرو غادي نزيدو مشروع جديد ف xampp/htdocs أو wamp/www نتا وباش خدام من بعد غادي نزيدو قاعدة بيانات جديدة ف phpmyadmin نسميوها php-cms فيها 6 ديال les tables كاين users,articles,comments,admins,contacts,categories الكود باش تزيد الجداول فقاعدة البيانات هو :

                                    
                                        --
-- Structure de la table `admins`
--

CREATE TABLE `admins` (
  `id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(100) NOT NULL,
  `added_by` varchar(200) NOT NULL,
  `created` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Structure de la table `articles`
--

CREATE TABLE `articles` (
  `id` int(11) NOT NULL,
  `category_id` int(11) NOT NULL,
  `title` varchar(200) NOT NULL,
  `body` text NOT NULL,
  `image` varchar(255) NOT NULL,
  `author` varchar(200) NOT NULL,
  `created` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Structure de la table `categories`
--

CREATE TABLE `categories` (
  `id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `added_by` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Structure de la table `comments`
--

CREATE TABLE `comments` (
  `id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `comment` text NOT NULL,
  `created` varchar(255) NOT NULL,
  `status` tinyint(4) NOT NULL DEFAULT '0',
  `post_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Structure de la table `contacts`
--

CREATE TABLE `contacts` (
  `id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `message` text NOT NULL,
  `created` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Structure de la table `users`
--

CREATE TABLE `users` (
  `id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `created` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Index pour la table `admins`
--
ALTER TABLE `admins`
  ADD PRIMARY KEY (`id`);

--
-- Index pour la table `articles`
--
ALTER TABLE `articles`
  ADD PRIMARY KEY (`id`),
  ADD KEY `category_id` (`category_id`);

--
-- Index pour la table `categories`
--
ALTER TABLE `categories`
  ADD PRIMARY KEY (`id`);

--
-- Index pour la table `comments`
--
ALTER TABLE `comments`
  ADD PRIMARY KEY (`id`),
  ADD KEY `post_id` (`post_id`);

--
-- Index pour la table `contacts`
--
ALTER TABLE `contacts`
  ADD PRIMARY KEY (`id`);

--
-- Index pour la table `users`
--
ALTER TABLE `users`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT pour les tables déchargées
--

--
-- AUTO_INCREMENT pour la table `admins`
--
ALTER TABLE `admins`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=0;
--
-- AUTO_INCREMENT pour la table `articles`
--
ALTER TABLE `articles`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=0;
--
-- AUTO_INCREMENT pour la table `categories`
--
ALTER TABLE `categories`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=0;
--
-- AUTO_INCREMENT pour la table `comments`
--
ALTER TABLE `comments`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=0;
--
-- AUTO_INCREMENT pour la table `contacts`
--
ALTER TABLE `contacts`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=0;
--
-- AUTO_INCREMENT pour la table `users`
--
ALTER TABLE `users`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=0;COMMIT;
                                    
                                

2- الإتصال بقاعدة البيانات


منبعد كنمشي لل projet ديالنا لي زدنا انا سميتو php_cms كنزيد فيه مجلد جديد كنسميه database فيه كنزيد ملف جديد كنسميه constants.php فيه غادي يكونو لconstantes لي غادي نستخدمهم باش نتاصل بقاعدة البيانات الكود ديال الملف هو :

                                    
                                        <?php
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASS','');
define('DB_DATABASE','php-cms');
                                    
                                

3- الإتصال بقاعدة البيانات تتمة


دائما فالمجلد database كنزيد فيه ملف كنسميه connection.php فيه غادي يكون الكود لي غادي يمكن باش نتاصل بقاعدة البيانات باستخدام لconstantes لي سبقنا زدنا ف constants.php الكود ديال الملف هو :


                                      
                                        <?php
include_once('constants.php');
$con = mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_DATABASE);
                                      
                                    

4- الملف includes/header.php


فالمجلد الرئيسي ديال ال projet ديالنا لي انا سميتو php-cms  فيه زيد مجلد جديد سميه includes فيه زيد 3 ديال المجلدات css,js,fonts غادي تطيليشارجي bootstrap من الموقع الرسمي من هنا تيليشارجي ل version 3.3.7 ماشي ل 4 حيت هنا راني خدام ب 3 من بعد زيد الملفات لي ف css فالمجلد css ديالنا ونفس الشي بالنسبة ل js و fonts من بعد زيد ملف جديد سميه header.php فيه روابط css لي غادي نحتاجو و فيه غادي تكون القائمة ديالنا لي غادي تمكنا من التنقل بين الصفحات بالنسبة للملف style.css غادي نزيدوه من بعد الكود ديال الملف هو : 

                                        
                                            <?php 
session_start();
include('database/connection.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">
    <title>PHP CMS BY DARIJA CODING</title>
    <!-- Bootstrap core CSS -->
    <link href="includes/css/bootstrap.min.css" rel="stylesheet">
    <link href="includes/css/style.css" rel="stylesheet">
  </head>
  <body>
  <nav class="navbar navbar-default main-nav">
      <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" id="link">PHP CMS</a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li><a href="index.php" id="link">Accueil</a></li>
            <li><a href="posts.php" id="link">Articles</a></li>
            <?php 
              if(isset($_SESSION['logged']) && $_SESSION['logged'] == true):
            ?>
            <li><a href="logout.php" id="link">Déconnexion</a></li>
            <?php 
              else:
            ?>
            <li><a href="register.php" id="link">Inscription</a></li>
            <li><a href="login.php" id="link">Connexion</a></li>
            <?php 
              endif;
            ?>
            <li><a href="contact.php" id="link">Contact</a></li>
          </ul>
          <form class="navbar-form navbar-right" method="post" action="searchPost.php">
            <input type="text" class="form-control" placeholder="Recherche..." name="search">
            <button class="btn btn-success xs-btn" id="btn-search" type="submit"><i class="glyphicon glyphicon-search"></i></button>
          </form>
        </div>
      </div>
    </nav>
                                        
                                    

5- الملف footer.php


دائما فالمجلد includes غادي نزيدو ملف جديد نسميوه footer.php فيه ل footer ديالنا وروابط للملفات js الكود ديال الملف هو:

                                        
                                            <hr>
 <footer class="main-nav">
    <p class="text-center" style="color:#FFF;padding:10px;font-size:20px;">DarijaCoding©2017</p> 
 </footer> <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="includes/js/bootstrap.min.js"></script>
    <script src="includes/js/addComment.js"></script>
  </body>
</html>
                                        
                                    

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