اول مشروع php باستخدام oop للمبتدئين
إنشاء نظام تسجيل بلغة PHP باستخدام مفهوم البرمجة الكائنية (OOP).
php oop create registration جدول المحتويات
متطلبات التثبيت
xampp
تحميل XAMPP: قم بتحميل XAMPP من موقعه الرسمي: https://www.apachefriends.org/index.html
او يمكنك الرجوع الي المقاله الخاصة بالبرنامج من هنا لمعرفة المزيد عن برنامج XAMPP
انشاء قاعدة بيانات
سنقوم بإنشاء فئة للتسجيل وفئة لقاعدة البيانات. يجب أن يكون لديك قاعدة بيانات جاهزة وتكويناتها. سنفترض أنك تستخدم MySQL.
سنقوم بإنشاء جدول لتخزين بيانات المستخدمين وذلك بعد انشاء قاعدة بيانات في phpmysql باسم Users_Db باستخدام ذلك الكود داخل MYSQL
Create database Users_Db;
بعد ان قمنا بانشاء قاعدة بيانات باسم Users_Db نقوم بانشاء جدول users داخلها باستخدام الكود التالي:
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(30) NOT NULL,
`email` varchar(30) NOT NULL,
`password` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
);
انشاء ملفات الاتصال بقاعدة البيانات
بعد ان انشانا قاعدة البيانات وجدول المستخدمين داخل قاعدة البيانات يجب انشاء ملفات تقوم بالربط او الاتصال بين ملفات البرنامج وقاعدة البيانات
database.php
يشمل علي كلاس يسمى database بداخلة متغير للهوست وللمستخدم ولكلمة السر ولاسم قاعدة البيانات التي تريد الاتصال بها ويحب ان تكون هذة البيانات متطابقة لبيانات قاعدة البياناتالتي قمنا بانشاءها في البداية
ننشيء فولدر باسم المشروع علي ان يكون داخل الامتداد C:\xampp\htdocs وبداخلة نبدأفي انشاء الملفات مثال database.php ثم نقوم بنسخ الكود التالي داخلة
HOST;dbname=$this->DB_NAME";
try{
$con = new PDO($string,$this->USER,$this->PASS);
}catch(PDOException $e){
die($e->getMessage());
}
return $con;
}
public function write($query,$data = array()){
$con = $this->connect();
$stm = $con->prepare($query);
$result = $stm->execute($data);
if($result){
return true;
}else{
return false;
}
}
public function read($query,$data = array()){
$con = $this->connect();
$stm = $con->prepare($query);
$result = $stm->execute($data);
if($result){
$data = $stm->fetchAll(PDO::FETCH_ASSOC);
if(is_array($data) && count($data) > 0){
return $data;
}
}
return false;
}
}
autoload.php
يقوم هذا الملف بعملية اعادة التوجية ويشمل علي رابطين اما لملف المستخدمين او لقاعدة البيانات او لكلاهما معا
user.php
تشمل الصفحة علي كلاس باسم user بداخلة حالات رسائل الخطا والرسائل الخاصة بكل حالة ويتم استدعائها في حالة ان المستخدم قام بادخال بيانات خطا او في حالة النسيان او تكرار الايميل او ادخال باسوورد اقل من 4 وفي حالة ادخال البيانات سليمة يقوم بارسال البيانات لقاعدة البيانات
$value) {
# code...
//username
if($key == "username"){
if(trim($value) == ""){
$this->errors[] = "Please enter a valid username";
}
if(is_numeric($value)){
$this->errors[] = "Username can not be a number";
}
if(preg_match("/[0-9]+/", $value)){
$this->errors[] = "Username can not contain numbers";
}
}
//email
if($key == "email"){
if(trim($value) == ""){
$this->errors[] = "Please enter a valid email";
}
if(!filter_var($value,FILTER_VALIDATE_EMAIL)){
$this->errors[] = "Email is not valid";
}
}
//password
if($key == "password"){
//check if its empty
if(trim($value) == ""){
$this->errors[] = "Please enter a valid password";
}
//password length
if(strlen($value) < 4){
$this->errors[] = "Password must be atleast 4 characters long";
}
}
}
$DB = new Database();
//check if email already exists
$data = array();
$data['email'] = $POST['email'];
$query = "select * from users where email = :email limit 1";
$result = $DB->read($query,$data);
if($result){
$this->errors[] = "That email is already in use";
}
//save to database
if(count($this->errors) == 0){
//save
$query = "insert into users (username,email,password) values (:username,:email,:password)";
$data = array();
$data['username'] = $POST['username'];
$data['email'] = $POST['email'];
$data['password'] = $POST['password'];
$result = $DB->write($query,$data);
if(!$result){
$this->errors[] = "Your data could not be saved";
}
}
return $this->errors;
}
}
ملفات المستخدم والواجهه الامامية
index.php
هو الملف الرئيسي والواجهة الامامية للمشروع والذي يحمل كل ما يدور في الامام والخلف وقواعد البيانات
يبدأ الملف بكود php لمتغير باسم المستخدم والايميل والباسوورد ثم يقوم باستدعاء البيانات من قاعدة البيانات ويقوم باعطاء شرط في حالة ادخال البيانات يتم تحويلك لصفحة الاستقبال ثم اكواد css والتي تقوم بتنسيق الصفحة وخلفيات والوان كل شيء في الصفحة واخيرا الform اي ملف html والذي يحتوي علي فورم بها المدخلات التي يقوم المستخدم باستخدامها لادخال بياناته المراد ارسالها لقواعد البيانات وداخل الفورم يوجد كود php ليظهر الخطا في الاعلي في حالات الاخطاء التي ذكرناها عن صفحة ال user سابقا
قم بانشاء صفحة باسم index.php ثم قم بنسخ الكود التالي بداخلها
0){
require "autoload.php";
$User = new User();
$errors = $User->signup($_POST);
if(count($errors) == 0){
header("Location: profile.php");
die;
}
extract($_POST);
}
?>
signup
welcome.php
هي اول صفحة تنتقل اليها بعد اتمام عملية التسجيل بدون اخطاء وتسمي صفحة welcome.php انشيء الصفحة وقم بادخال الكود التالي بداخلها
Document
welcome to your website
This design is steller! You most certainly know how to keep a reader amused.
Between your wit and your videos, I was almost moved to start my own blog (well,
almost…HaHa!) Wonderful job. I really enjoyed what
you had to say, and more than that, how you presented it.
Too cool!
Thank you