مشروع Photos Gallery بل PHP الجزء الرابع
فهاد الجزء الرابع من هاد المشروع غادي نكملو الملفات لي غادي يمكنو المستخدم من التسجيل وأيضا من تسجيل الدخول ديالو وملفات إضافة صورة تعديل وحذف صورة وملفات تعديل وحذف مستخدم.
نظرة سريعة بالفيديو
- الملف add_user.php
دائما فالمجلد admin كنزيد ملف كنسميه add_user.php هاد الملف هو لي غادي يمكنا من إضافة مستخدم لقاعدة البيانات ديالنا هنا كنسترجع القيم لي كتب المستخدم فالحقول منبعد كاين لfonction set_fileلي فقط كتربط معلومات الصورة بلvariables لي كاينين فلclass user ومنبعد كاين save_with_photo لي كتزيد المستخدم بالصورة ديالو فقاعدة البيانات الكود ديال الملف هو :
<?php include "includes/header.php";?>
<?php include "includes/navigation.php";?>
<?php
if(isset($_SESSION['user_id'])){
$user = new User();
if(isset($_POST['submit'])){
$user->pseudo = $_POST['pseudo'];
$user->nom = $_POST['nom'];
$user->prenom = $_POST['prenom'];
$user->passe = $_POST['passe'];
$user->set_file($_FILES['file_upload']);
$user->save_with_photo();
$session->message('Inscription effectuée avec succés!');
redirect("users.php");
}
}else{
redirect("login.php");
}
?>
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-2">
<div class="panel panel-primary">
<div class="panel-heading">Ajouter un utilisateur</div>
<div class="panel-body">
<form action="" method="post" class="form-horizontal" style="padding:10px" enctype="multipart/form-data">
<div class="form-group">
<label for="user">Photo <span class="text-danger">*</span></label>
<input type="file" name="file_upload">
</div>
<div class="form-group">
<label for="nom">Nom<span class="text-danger">*</span></label>
<input type="text" class="form-control" name="nom">
</div>
<div class="form-group">
<label for="nom">Prénom<span class="text-danger">*</span></label>
<input type="text" class="form-control" name="prenom">
</div>
<div class="form-group">
<label for="nom">Pseudo <span class="text-danger">*</span></label>
<input type="text" class="form-control" name="pseudo">
</div>
<div class="form-group">
<label for="nom">Mot de passe <span class="text-danger">*</span></label>
<input type="password" class="form-control" name="passe">
</div>
<div class="form-group">
<input type="submit" class="btn btn-success" name="submit" value="Créer">
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<?php include "includes/footer.php";?>
- الملف login.php
دائما فالمجلد admin كنزيد ملف كنسميه login.php هاد الملف هو لي غادي يمكن المستخدم من تسجيل الدخول ديالو من بعد مكي تم التحقق من أنه مسجل فقاعدة البيانات بواسطة لfonction verify_user لي يلا كان مسجل كتسمحلو بالدخول مكنش كتعرض رسالة ديال الخطأ الكود ديال الملف هو :
<?php include "includes/header.php";?>
<?php
if(isset($_SESSION['user_id'])){
redirect("index.php");
}
if(isset($_POST['submit'])){
$pseudo = trim($_POST['pseudo']);
$passe = trim($_POST['passe']);
//method to check if user exists
$user_found = User::verify_user($pseudo,$passe);
if($user_found){
$session->login($user_found);
redirect("index.php");
}else{
$message = "<div class='alert alert-danger'>Email ou mot de passe est incorrect</div>";
}
}else{
$message = "";
$pseudo = "";
$passe = "";
}
?>
<div class="container">
<div class="row">
<div class="col-md-4 col-md-offset-4">
<div class="panel panel-primary">
<div class="panel-heading">Connexion</div>
<div class="panel-body">
<?php echo $message;?>
<form action="login.php" method="post" class="form-horizontal" style="padding:10px">
<div class="form-group">
<label for="pseudo">Pseudo <span class="text-danger">*</span></label>
<input type="text" class="form-control" name="pseudo">
</div>
<div class="form-group">
<label for="passe">Mot de passe <span class="text-danger">*</span></label>
<input type="password" class="form-control" name="passe">
</div>
<div class="form-group">
<input type="submit" class="btn btn-success" name="submit" value="Connexion">
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<?php include "includes/footer.php";?>
- الملف upload.php
دائما فالمجلد admin كنزيد ملف كنسميه upload.php هاد الملف كيمكن المستخدم من إضافة صورة من بعد مكيتم استرجاع المعلومات الخاصة بالصورة كيتم حفظها باستخدام لfonction save_with_photo ولي فحالة نجاح الإضافة كيتم عرض رسالة النجاح وفحالة الخطأ كيتم عرض رسائل الخطأ الكود ديال الملف هو:
<?php include "includes/header.php";?>
<?php include "includes/navigation.php";?>
<?php
$message = "";
if(isset($_SESSION['user_id'])){
if(isset($_POST['submit'])){
$photo = new Photo();
$photo->title = $_POST['name'];
$file = $_FILES['file_upload'];
$photo->set_file($file);
if($photo->save_with_photo()){
$message = "<div class='alert alert-success'>Fichier téléchargé avec succés</div>";
}else{
$message = join("<br>",$photo->errors);
}
}
}else{
redirect("login.php");
}
?>
<div class="container">
<div class="row">
<div class="col-md-4 col-md-offset-4">
<div class="panel panel-primary">
<div class="panel-heading">Ajouter une photo</div>
<div class="panel-body">
<?php echo $message;?>
<form action="upload.php" method="post" class="form-horizontal" style="padding:10px" enctype="multipart/form-data">
<div class="form-group">
<label for="nom">Nom du fichier <span class="text-danger">*</span></label>
<input type="text" class="form-control" name="name">
</div>
<div class="form-group">
<label for="photo">Photo <span class="text-danger">*</span></label>
<input type="file" name="file_upload">
</div>
<div class="form-group">
<input type="submit" class="btn btn-success" name="submit" value="Envoyer">
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<?php include "includes/footer.php";?>
- الملف edit_photo.php
دائما فالمجلد admin كنزيد ملف كنسميه edit_photo.php هاد الملف كيمكن المستخدم من تعديل صورة من بعد مكيتم استرجاع المعلومات الخاصة بالصورة كيتم تغييرها ومنبعد حفظها باستخدام لfonction save_with_photo ولي فحالة نجاح التعديل كيتم عرض رسالة النجاح وفحالة الخطأ كيتم عرض رسائل الخطأ الكود ديال الملف هو:
<?php include "includes/header.php";?>
<?php include "includes/navigation.php";?>
<?php
if(isset($_SESSION['user_id'])){
if(!empty($_GET['id'])){
$photo = Photo::find_by_id($_GET['id']);
if(isset($_POST['submit'])){
$photo->title = $_POST['name'];
$photo->description = $_POST['description'];
$photo->save_with_photo();
$session->message('Modification effectuée avec succés!');
redirect("photos.php");
}
}else{
redirect("photos.php");
}
}else{
redirect("login.php");
}
?>
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-2">
<div class="panel panel-primary">
<div class="panel-heading">Modifier une photo</div>
<div class="panel-body">
<form action="" method="post" class="form-horizontal" style="padding:10px" enctype="multipart/form-data">
<div class="form-group">
<img src="<?php echo $photo->picture_path();?>" alt="" class="thumbnail" height="300" width="300" style="margin:auto;" style="padding:10px;">
</div>
<div class="form-group">
<label for="nom">Nom du fichier <span class="text-danger">*</span></label>
<input type="text" class="form-control" name="name" value="<?php echo $photo->title;?>">
</div>
<div class="form-group">
<label for="description">Description</label>
<textarea name="description" id="" cols="30" rows="10" class="form-control"><?php echo $photo->description;?></textarea>
</div>
<div class="form-group">
<label for="photo">Photo <span class="text-danger">*</span></label>
<input type="file" name="file_upload" value="<?php echo $photo->filename;?>">
</div>
<div class="form-group">
<input type="submit" class="btn btn-success" name="submit" value="Modifier">
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<?php include "includes/footer.php";?>
- الملف delete_photo.php
دائما فالمجلد admin كنزيد ملف كنسميه delete_photo.php هاد الملف كيمكن المستخدم من حذف صورة من بعد مكيتم استرجاع المعلومات الخاصة بالصورة كيتم حذفها باستخدام لfonction delete_photo ولfonction delete_photo_comments لي كتمكن من حذف التعاليق الخاصة بتلك الصورة لي فحالة نجاح الحذف كيتم عرض رسالة النجاح الكود ديال الملف هو:
<?php include "includes/header.php";?>
<?php include "includes/navigation.php";?>
<?php
if(isset($_SESSION['user_id'])){
if(empty($_GET['id'])){
redirect("photos.php");
}else{
$id = trim($_GET['id']);
$photo = Photo::find_by_id($id);
if($photo){
$photo->delete_photo();
$photo->delete_photo_comments($id);
$session->message('Suppression effectuée avec succés!');
redirect("photos.php");
}else{
redirect("photos.php");
}
}
}else{
redirect("login.php");
}
?>