مشروع Photos Gallery بل PHP الجزء الأول
فهاد الدرس غادي نشوفو كيفاش نصاوبو واحد المشروع لي عبارة عن موقع للصور المستخدم كيدخل كيشاهد الصور وكيخلي التعاليق ديالو على كل صورة و من جهة أخرى كاين الأدمن لي عندو صلاحيات إضافة الصور حذفها كما يمكنلو يزيد مستخدم أو يحذفو بالإضافة لصلاحيات أخرى.
نظرة سريعة بالفيديو
- إنشاء قاعدة البيانات
أول حاجة غادي تمشي لphpmyadmin وغادي تزيد قاعدة بيانات جديدة تسميها gallery_opp من بعد غادي تزيد فيها 3 ديال الجداول واحد ديال المستخدمين سميتو users واحد خاص بالصور سميه photos والآخير ديال التعاليق سميه comments الكود ديال إنشاء قاعدة البيانات هو :
-- Structure de la table `comments`
--
CREATE TABLE IF NOT EXISTS `comments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`photo_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`comment` text NOT NULL,
`date` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `photo_id` (`photo_id`,`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=33 ;
-- --------------------------------------------------------
--
-- Structure de la table `photos`
--
CREATE TABLE IF NOT EXISTS `photos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`description` text NOT NULL,
`filename` varchar(255) NOT NULL,
`type` varchar(255) NOT NULL,
`size` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=18 ;
--
-- Structure de la table `users`
--
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`pseudo` varchar(255) NOT NULL,
`nom` varchar(255) NOT NULL,
`prenom` varchar(255) NOT NULL,
`passe` varchar(255) NOT NULL,
`filename` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 ;
- الملفات الأساسية
من بعد غادي تمشي لwamp يلا كنتي خدام به و منبعد تمشي للمجلد www وتزيد مجلد جديد تسميه PhotoGalleryOPP ولي غادي تزيد فيه واحد المجلد غادي تسميه admin فهاد المجلد غادي تزيد 4 ديال المجلدات css و js و includes و fonts من بعد غادي تمشي للموقع http://fontawesome.io وغادي تحمل font-awsome وغادي تزيد المجلد فadmin منبعد غادي تقوم بتحميل bootstrap وغادي تزيد الملف bootstrap.min.css ف css والملف bootstrap.min.js ف js و الملفات لي فالمجلد fonts ف fonts من بعد غادي تزيد ملف تسميه header.php و آخر تسميه footer.php وآخر تسميه navigation.php و config.php تزيدهم فincludes الملف config.php غادي يكونو فيه لvariables لي غادي يمكنو من الإتصال بقاعدة البيانات الكود ديالو هو :
<?php
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASSWORD','');
define('DB_DATABASE','gallery_opp');
- الملف header.php
هاد الملف غادي يكون هو الأساس ديال كل الصفحات الخاصة بجهة الأدمن ولي غادي يربط ملفات css بالملفات ديالنا.
<?php
include "init.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>Photo Gallery</title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/main.css" rel="stylesheet">
<link href="font-awsome/css/font-awesome.css" rel="stylesheet">
</head>
<body>
- الملف footer.php
هاد الملف غادي يكون هو الأساس ديال كل الصفحات الخاصة بجهة الأدمن ولي غادي يربط ملفات js بالملفات ديالنا.
<footer>
<p>© 2016 Darija Coding</p>
</footer>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="http://cdn.tinymce.com/4/tinymce.min.js"></script>
<script src="js/scripts.js"></script>
</body>
</html>
- الملف navigation.php
هاد الملف غادي تكون فيه القائمة لي غادي تمكن من تصفح جميع الصفحات.
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<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">Admin</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="users.php">Utilisateurs</a></li>
<li><a href="photos.php">Photos</a></li>
<li><a href="upload.php">Télécharger une photo</a></li>
<li><a href="comments.php">Commentaires</a></li>
<?php if(isset($_SESSION['user_id'])):?>
<li><a href="logout.php">Déconnexion</a></li>
<?php endif; ?>
</ul>
</div>
</div>
</nav>