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

imadbelasri PHP
PH

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


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


- إضافة قاعدة البيانات

أول حاجة غادي ندير غادي نزيد قاعدة بيانات جديدة ف phpmyadmin غادي نسميها php-blog من بعد غادي نزيد فيها جوج ديال الجداول واحد posts والثاني categories الأول غادي تكون فيه posts والثاني categories ديال كل post الكود ديالهم هو :

                                                    
                                                        //table categories

CREATE TABLE IF NOT EXISTS `categories` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

//table posts 

CREATE TABLE IF NOT EXISTS `posts` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `category` int(11) NOT NULL,
  `title` varchar(255) NOT NULL,
  `body` text NOT NULL,
  `author` varchar(255) NOT NULL,
  `tags` varchar(255) NOT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;

                                                    
                                                

- إنشاء مجلد المشروع وباقي الصفحات

من بعد غادي تمشي ل wamp/www وغادي تزيد مجلد جديد تسميه php-blog من بعد تزيد فيه 9 مجلدات admin و config و css و fonts وhelpers و images و includes و js وlibraries غادي تقوم بتحميل bootstrap وغادي تزيد الملف bootstrap.min.css ف css والملف bootstrap.min.js ف js و الملفات لي فالمجلد fonts ف fonts من بعد غادي تزيد ملف تسميه header.php و آخر تسميه footer.php وآخر تسميه menu.php و تزيدهم فincludes الكود ديال هاد الملفات هو :

                                                        
                                                            //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="posts.php">Tous les postst</a></li>
            </ul>
            </li>
            <li><a href="admin/index.php">Admin Panel</a></li>
        </ul>
        </div><!--/.nav-collapse -->
    </div><!--/.container-fluid -->
 </nav>



//footer.php code

 <!-- 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>
                                                        
                                                    

- الملف config.php

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

                                                        
                                                            <?php

define('DB_HOST','localhost');
define('DB_DATABASE','php-blog');
define('DB_USER','root');
define('DB_PASS','');
                                                        
                                                    

- الملف Database.php

من بعد غادي تمشي للملجد libraries وغادي نزيد ملف نسميه Database.php غادي تكون فيه functionsلي غادي يمكنونا من الإتصال بقاعدة البيانات وزيادة المعلومات فقاعدة البيانات تعديلها ثم حذفها الكود ديالو :

                                                        
                                                            <?php
class Database{
    public $host = DB_HOST;
    public $db = DB_DATABASE; 
    public $user = DB_USER;
    public $password = DB_PASS;

    public $link;
    public $error;
    //constructeur
    public function __construct(){
        //appel la fonction connect 
        $this->connect();
    }
    private function connect(){
        $this->link = new mysqli($this->host,$this->user,$this->password,$this->db);
        if(!$this->link){
            $this->error = "Connexion echouée".$this->link->connect_error;
        }
    }
    //selection query
    public function select($query){
        $result = $this->link->query($query) or die($this->link->error.__LINE__); 
        if($result->num_rows > 0){
            return $result;
        }else{
            return false;
        }
    }
    //insertion query
    public function insert($query){
        $insert = $this->link->query($query) or die($this->link->error.__LINE__); 
        if($insert){
            header("location:index.php?msg=".urlencode('Ajouté(e) avec succés'));
            exit();
        }else{
            header("location:index.php?erreur=".urlencode('Erreur!'));
        }
    }
     //modification query
    public function update($query){
        $update = $this->link->query($query) or die($this->link->error.__LINE__); 
        if($update){
            header("location:index.php?msg=".urlencode('Modifié(e) avec succés'));
            exit();
        }else{
            header("location:index.php?erreur=".urlencode('Erreur!'));
        }
    }
     //suppression query
    public function delete($query){
        $delete = $this->link->query($query) or die($this->link->error.__LINE__); 
        if($delete){
            header("location:index.php?msg=".urlencode('Supprimé(e) avec succés'));
            exit();
        }else{
            header("location:index.php?erreur=".urlencode('Erreur!'));
        }
    }
}
                                                        
                                                    

- الملف format_helper.php

من بعد غادي تمشي للملجد helpers وغادي نزيد ملف نسميه format_helper.php غادي تكون فيه functions لي غادي نحتاجهم لبعض التغييرات الكود ديالو :

                                                        
                                                            <?php

function shortenText($text,$chars = 400){
    $text = $text." ";
    $text = substr($text,0,$chars);
    $text = substr($text,0,strrpos($text,' '));
    $text = $text."...";
    return $text;
}
                                                        
                                                    

دروس ذات صلة

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 الجزء الثالث

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