فعل الوندوز الان بارخص الاسعار

فعل الوندوز الان بارخص الاسعار
فقط ب30 ريال مدى الحياة
‏إظهار الرسائل ذات التسميات تعلم الـ php. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات تعلم الـ php. إظهار كافة الرسائل

بناء نظام تسجيل دخول متكامل PHP & MYSQL

7
نظام التسجيل من الانظمة المهمة في المواقع الالكترونية التفاعلية لذلك قررت كتابة هذا الدرس وهو يعتبر من احد اهم دروس " تعلم الphp " التي سبق وانزلتها في المدونة و قررت تجزيئه لعدة نقاط اساسية في هذه التدوينه وبطريقة مبسطة باذن الله - ويرجى ملاحظة اني تخطيت شرح عدد من الاكواد لاختصار التدوينة بالاضافة لكوني شرحتها  في عدة تدوينات سابقة -  لنبدأ على بركة الله ..

بأمكانك تخطي جميع الخطوات التالية بالتحميل السكبرت كاملاَ 



...
في هذا الشرح سنتحاج الى : 
  • قاعدة بيانات تحتوي على جدول لحفظ بيانات الاعضاء
  • ملف اتصال بقاعدة البيانات 
  • صفحة تسجيل عضويات 
  • صفحة تسجيل دخول
  • صفحة ترحيب بالعضو
  • صفحة تسجيل الخروج

أولا تصميم هيكلة قاعدة البيانات 


  • قم بالدخول الى مسار ادارة قواعد البيانات على موقعك او على السيرفر المحلي بجهازك 
  • قم بأنشاء قاعدة بيانات جديدة وسمها باي اسم 
  • قم بزراعة اكواد mysql التالية لإنشاء جدول البيانات login
CREATE TABLE `login` (
  `id` int(11) NOT NULL,
  `username` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


ALTER TABLE `login`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `username` (`username`),
  ADD UNIQUE KEY `email` (`email`);

ALTER TABLE `login`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;


حيث ان login اسم الجدول ويحتوي على :
  • حقل id الطول 11 تلقائي ، تعيينه كمفتاح اساسي 
  • حقل غير متكرر username لتزين معرف العضو طوله 255 ونوعه varchar
  • حقل غير متكرر email لتخزين بريد العضو طوله 255 ونوعه varchar
  • حقل password لتخزين الرقم السري للعضو نوعه varchar وطوله 255
نلاحظ انه تم انشاء الجدول بطريقة زراعة الاكواد

ثانيا كتابة كود الاتصال بقاعدة البيانات

  • قبل كتابة الاكواد التالية تاكد من انشاء مجلد للموقع وقم باضافة الاكواد بداخل ملف وقم بتسميته connect.php
<?php
$connection = mysqli_connect('localhost', 'root', '');
if(!$connection){
die("Database Connection Failed" . mysqli_error($connection));
}
$select_db = mysqli_select_db($connection, 'fablogin');
if(!$select_db){
die("Database Selection Failed" . mysqli_error($connection));
}
?>

حيث ان :
$connection = mysqli_connect('localhost', 'root', '');
  • $connection = متغير الاتصال بالسيرفر " local host" اسم السيرفر "root" اسم المستخدم للسيرفر او قاعدة البيانات و"" يوضع بداخله الرقم السري للقاعدة او للسيرفر ان وجد
  • if(!$connection){ دالة شرطية في حالة حدوث خطأ الاتصال 
  • $select_db متغير اختيار القاعدة التي اسميناها بـ "fablogin"
  • if(!$select_db){ دالة شرطية في حالة حدوث مشكلة في اختيار القاعدة 
نقوم بحفظ الصفحة ونتأكد من صحة الاتصال عبر الدخول على مسار الملف على المتصفح وفي حال عدم ظهور اية رسالة يعني ان الاتصال ناجح :
نلاحظ هنا نجاح الاتصال بالقاعدة وعدم ظهور اي رسالة خطأ


ثالثا كتابة صفحة تسجيل العضويات 

نقوم بكتابة الأكواد التالية وهي خليط بين html , php واكواد الاتصال بقواعد البيانات mysql و تصميم الصفحة بتقنية bootstrap , js ونقوم بحفظها في ملف باسم register.php


<?php
require_once('connect.php');
if(isset($_POST) & !empty($_POST)){
$username = mysqli_real_escape_string($connection, $_POST['username']);
$email = mysqli_real_escape_string($connection, $_POST['email']);
$password = md5($_POST['password']);

$sql = "INSERT INTO `login` (username, email, password) VALUES ('$username', '$email', '$password')";
$result = mysqli_query($connection, $sql);
if($result){
$smsg = "User Registration successfull";
}else{
$fmsg = "User registration failed";
}
}


?>
<!DOCTYPE html>
<html>
<head>
<title>User Registration in PHP & MySQL</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="login/styles.css" >

<!-- Latest compiled and minified JavaScript -->
<script src="" ></script>

<link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
<div class="container">
      <?php if(isset($smsg)){ ?><div class="alert alert-success" role="alert"> <?php echo $smsg; ?> </div><?php } ?>
      <?php if(isset($fmsg)){ ?><div class="alert alert-danger" role="alert"> <?php echo $fmsg; ?> </div><?php } ?>
      <form class="form-signin" method="POST">
        <h2 class="form-signin-heading">سجل معنا</h2>
        <div class="input-group">
  <span class="input-group-addon" id="basic-addon1">@</span>
  <input type="text" name="username" class="form-control" placeholder="Username" required>
</div>
        <label for="inputEmail" class="sr-only">Email address</label>
        <input type="email" name="email" id="inputEmail" class="form-control" placeholder="Email address" required autofocus>
        <label for="inputPassword" class="sr-only">Password</label>
        <input type="password" name="password" id="inputPassword" class="form-control" placeholder="Password" required>
        <button class="btn btn-lg btn-primary btn-block" type="submit">سجل!</button>
        <a class="btn btn-lg btn-primary btn-block" href="login.php">دخول</a>
      </form>
</div>
</body>
</html>

حيث أن : 
  • require_once('connect.php'); كود تضمين ملف الاتصال بقاعدة البيانات في الصفحة 
  • if(isset($_POST) & !empty($_POST)){} : في حالة الضغط على الزر من نوع post وفي حالة كانت الحقول غير فارغة نطلب من الصفحة عمل التالي : 
  • التعريف بالحقول بما يقابلها في قاعدة البيانات مثل : $username = mysqli_real_escape_string($connection, $_POST['username']);
  • وقد طلبنا تشفير كلمة المرور عند ارسالها الى القاعدة بواسطة تشفير الهاش md5 وهو امر مهم جدا للحفاظ على خصوصية كلمة المرور عند تخزينها في القاعدة : $password = md5($_POST['password']);
  • كود الارسال الى قاعدة البيانات وتحديد تخزين القيم "المتغيرات" بما يقابلها في حقول جدول البيانات :$sql = "INSERT INTO `login` (username, email, password) VALUES ('$username', '$email', '$password')"; حيث ان login هو اسم الجدول
  • $result = mysqli_query($connection, $sql); كود التحقق من الاتصال والارسال الى القاعدة 
  • if($result){
    $smsg = "User Registration successfull";
    }else{
    $fmsg = "User registration failed";
    } كود طباعة جمل في حالة نجاح او فشل التسجيل حيث ان smsg =  لنجاح الارسال و fmsg = في حالة فشل التسجيل
  • ويلي كود الphp كود الـ html المعتاد وهو عبارة عن فورم بسيط سبق شرحه في عدة دروس سابقة مع ملاحظة اختلاف انواع المدخلات .
صورة تدل على نجاح التسجيل ورفع بيانات العضو الى قاعدة البيانات 

صورة لجدول البيانات ويتضح تشفير حقل كلمة المرور من نوع md5

رابعا كتابة صفحة تسجيل الدخول 

الصفحة مكونة من نفس تشكيلة اللغات المستخدمة في صفحة التسجيل السابقة مع اختلاف الاكواد لتتناسب مع الغرض المكتوبة لأجله وهي كالآتي : 
<?php
session_start();
require_once('connect.php');
if(isset($_POST) & !empty($_POST)){
$username = mysqli_real_escape_string($connection, $_POST['username']);
$password = md5($_POST['password']);

$sql = "SELECT * FROM `login` WHERE username='$username' AND password='$password'";
$result = mysqli_query($connection, $sql);
$count = mysqli_num_rows($result);
if($count == 1){
$_SESSION['username'] = $username;
}else{

$fmsg = "<div class='fmsg fmg'>تم ضبط محاولة دخول فاشلة وغير مصرح بها </div>";

}
}
if(isset($_SESSION['username'])){
$smsg = "<div class='smsg'>دخول ناجح</div>";
echo "
<meta HTTP-EQUIV='REFRESH' content='0; url=login/welcome.php'/>";
}


?>
<!DOCTYPE html>
<html>
<head>
<title>User Login in PHP & MySQL</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="styles.css" >

<!-- Latest compiled and minified JavaScript -->
<script src="" ></script>

<link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
<div class="container">
      <?php if(isset($smsg)){ ?><div class="alert alert-success" role="alert"> <?php echo $smsg; ?> </div><?php } ?>
      <?php if(isset($fmsg)){ ?><div class="alert alert-danger" role="alert"> <?php echo $fmsg; ?> </div><?php } ?>
      <form class="form-signin" method="POST">
        <h2 class="form-signin-heading">منطقة الادارة - تسجيل الدخول</h2>
        <div class="input-group">
  <span class="input-group-addon" id="basic-addon1">@</span>
  <input type="text" name="username" class="form-control" placeholder="Username" required>
</div>
        <label for="inputPassword" class="sr-only">Password</label>
        <input type="password" name="password" id="inputPassword" class="form-control" placeholder="Password" required>
        <button class="btn btn-lg btn-primary btn-block" type="submit">دخول</button>
      
      </form>
</div>
</body>
</html>

حيث أن :
  • session_start(); كود بداية الجلسه وهو كود مهم حيث ان جميع انظمة تسجيل الدخول تعمل بهذه الالية 
  •  $sql = "SELECT * FROM `login` WHERE username='$username' AND password='$password'"; كود التحقق من كلمة المرور والمعرف المدخلة ومقارنتها بالمخزن في قاعدة البيانات 
  • if($count == 1){
    $_SESSION['username'] = $username; في حالة كانت النتيجة = 1 أي بمعنى تطابق البيانات المدخلة مع المخزنة نطلب من الصفحة انشاء الجلسة باسم المستخدم 
  • if(isset($_SESSION['username'])){ في حالة اكتشاف جلسه نطلب من الكود طباعة جملة دخول ناجح بالاضافة الى تحويل العضو الى صفحة الترحيب ويلي صفحة الphp كالمعتاد فورم كتابة البيانات ولن يتم شرحها راجع الدروس السابقة في حال احتجت الى معلومات اكثر 

نلاحظ نجاح الدخول وتحويلنا الى صفحة الترحيب بالعضو تلقائيا وسيتم شرح هذه الخطوه في القسم التالي



خامسا كتابة صفحة الترحيب بالعضو 

صفحة الترحيب بالعضو هي اخر مراحل انظمة الدخول عادة ، قم بكتابة الاكواد التالية وحفظها في ملف welcome.php:
<?php
 session_start();


 if (isset($_SESSION['username'])) {
 ?>
<?php

$user = $_SESSION['username'];

echo"welcome $user";
echo"<a href='logout.php'>سجل خروج</a>";

?>


   
 <?php

 } else {
   ?>
   Not logged in HTML and code here
   <?php
 }
حيث أن :
  • <?php
     session_start();


     if (isset($_SESSION['username'])) {
     ?>
    <?php كود تشغيل الجلسة 
  • <?php

    $user = $_SESSION['username'];

    echo"welcome $user";


    ?> كود التعريف بصاحب الجلسة و طباعة جملة الترحيب 
  • echo"<a href='logout.php'>سجل خروج</a>"; طباعة جملة تسجيل الخروج و الارتباط بصفحة تسجيل الدخول 
  • <?php

     } else {
       ?>
       Not logged in HTML and code here
       <?php
     } كود حماية الصفحة من الزوار والغير مسجلين حيث لا تظهر الاعدادات السابقة الا عند اكتشاف جلسه باسم العضو 

سادسا واخيرا صفحة تسجيل الخروج

قم بكتابة الكود التالي بداخل صفحة logout.php :
<?php
session_start();
session_destroy();
header('location: login.php');
?>
حيث ان : session_destroy(); في حال العثور على جلسه نطلب منه انهائها او بالمعنى الحرفي للشفرة البرمجية " تدميرها " و وتحويل العضو الى صفحة تسجيل الدخول من جديد.


أو قم بتحميل السكربت كاملا .. 



...

برمجة نموذج مبسط لارسال رمز تحقق للجوال بلغة PHP و MYSQL

1

في شرحنا اليوم سنقوم ببرمجة نموذج "FORM" مبسط لإرسال رسالة تحقق لرقم جوال العميل مكونة من 4 خانات عشوائية  " ***" ومثل هذه الخطوة يحتاجها المبرمج لفلترة عمليات التسجيل الضارة مثل عضويات السبام والعضويات الوهمية وكذلك تجبر العميل على التسجيل برقم جوال مفعل .

الخطوة الأولى :

تشغيل السيرفر المحلي 

الخطوة الثانية:

دخول PHPMYADMIN 
من خلال المسار ( localhost/phpmyadmin)

الخطوة الثالة : 


انشاء قاعدة بيانات باسم verify
انشاء جدول بيانات باسم sms
ادراج الحقول التالية : 
ID النوع INT تلقائي - الطول 11 - مفتاح اساسي -غير متكرر
PIN النوع INT  الطول 11
PHONENUM النوع INT الطول 11
ACTIVE النوع INT  القيمة الافتراضية 0 




الخطوة الرابعة 

ادراج مجلد باسم sms
بداخل  مجلد www او مجلد ملفات الموقع بداخل مسار السيرفر المحلي 

الخطوة الخامسة 

انشاء ملف html  للنموذج  باسم sms.html
يضم الاكواد التالية : 

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
body{background-color: lightblue;}
form{
width:300px;
height: 400px;
position: absolute;
        top: 50%;
        left: 50%;
        margin-right: -50%;
        transform: translate(-50%, -50%); 

background-image: url('https://3.bp.blogspot.com/-yoGIeZq_p00/WrrqsMaCxoI/AAAAAAAA0V4/_ebq4OKl_W0fnerSOFCQ38ClQM7k8t4cQCLcBGAs/s1600/images.png') ;
background-repeat: no-repeat;
}
footer {
     position: fixed;
     left: 0;
     bottom: 0;
     width: 100%;
     background-color: red;
     color: white;
     text-align: center;
}
input[type=phone] {
position: fixed;
left: 20%;
bottom: 50%;
margin-right: -20%;
   transform: translate(-20%, -20%);
width: 50%;
background-color: blue;
color: white;
text-align: center;
}
input[type=submit] {
position: fixed;
left: 20%;
bottom: 40%;
margin-right: -20%;
   transform: translate(-20%, -20%);
width: 50%;
background-color: #4CAF50;
color: white;
text-align: center;
}


</style>
<title>verify your phone number</title>
</head>
<body>

<form action="sms.php" method="POST">
<br><input type="phone" name="phonenum" placeholder="ادخل رقم جوالك">
<br><input type="submit" value="تحقق">
</form>
</body>
<footer>fab2.info code by F_i4i 2018</footer>
</html>

حيث أن :
<form action="sms.php" method="POST">
<br><input type="phone" name="phonenum" placeholder="ادخل رقم جوالك">
<br><input type="submit" value="تحقق">
</form>
منطقة النموذج 

 action="sms.php"
صفحة التوجية 
<input type="phone" name="phonenum" placeholder="ادخل رقم جوالك">
حقل ادخال رقم الجوال
<input type="submit" value="تحقق">
ايقونة التوجية 

المرحلة السادسة : 


 انشاء صفحة الاتصال بقاعدة البيانات بلغة php تضم الاكواد التالية :
<?php
$con = mysql_connect("localhost","root","");
mysql_select_db("verify") OR die('db not connected' .mysql_error());
if (!$con)
{
die('Could not connect: ' .myaql_error());
}
حيث أن :
mysql_select_db("verify")
اسم قاعدة البيانات 

المرحلة السابعة

*اولا تحتاج الى اشتراك بخدمة الرسائل النصية sms عبر احد موزعي الخدمة  بالاضافة الى ضرورة دعمة لخدمة الارسال من خلال رابط url 
ثانيا انشاء صفحة php لرفع البيانات الى القاعدة واسمها sms.php
وتضم الاكواد التالية : 
<style type="text/css">
    body{background-color: lightblue;}
table,tr,td{background-color:white; border: solid 2px;
width: 50%;text-align: center;}
</style>
<?php
require("db.php");
$pin= rand(1000, 9999); // random 4 digit code;
$phonenum=$_POST['phonenum'];
$query="INSERT INTO sms VALUE('','$pin','$phonenum')";
$result=@mysql_query($query);
$un=" username";// معلومات موفر الخدمة قم بالتعديل عليها
$pwd="password";
$senderby="FAB2.INFO";
$msg2=$pin;//نهاية كود موفر الخدمة

if($result)
{
echo "<center><table><tr><th>";
echo "هل رقم الجوال صحيح؟";
echo "</th></tr>";
echo"<tr><td>$phonenum</td></tr>";
echo "<tr><td>";
echo "<a href=http://msegat.com/gw/?userName=$un&userPassword=$pwd&numbers=$phonenum&userSender=$senderby&msg=$msg2&By=Link&msgEncoding=UTF8>نعم ارسل الرمز</a></center>";
echo "</td></tr>";

}
else{echo"not registered";}?>

حيث أن 
require("db.php");
كود استدعاء ملف الاتصال بالقاعدة 
$pin= rand(1000, 9999);
كود مولد الارقام العشوائية بحيث تكون النتيجة مكونة من اربعة ارقام على هذا النحو "****"
$phonenum=$_POST['phonenum'];
كود ربط حقل الرقم من قاعدة البيانات بحقل الارسال في صفحة sms.html

$query="INSERT INTO sms VALUE('','$pin','$phonenum')";
كود ارسال المعلومات المدخلة الى قاعدة البيانات و "sms" هو اسم جدول البيانات

else{echo"not registered";}?>
كود رسالة الخطأ في حال فشل الاتصال 

الخطوة النهائية 

تجربة الاسكربت
نلاحظ تطابق الرقم العشوائي المرسل مع الرقم العشوائي  المخزن بقاعدة البيانات 



تابعوا الدرس القادم حيث ساشرح الية مطابقة الرقم المرسل مع الرقم الموجود بقاعدة البيانات والية التفعيل 


رفع الصور من خلال صفحة php الى قاعدة بيانات mysql

0
لمتطلبات :
-الاتصال بالسيرفر المحلي اذا لم يكن لديك سيرفر محلي تابع الدرس (http://www.fab2.info/2017/11/php.html)
-قاعدة بيانات mysql
-ملف الأتصال بقاعدة البيانات mysql- php
-صفحة ادخال بلغة html
-صفحة تاكيد الاتصال بلغة php
-صفحة استعراض البيانات بلغة php
قم بإنشاء قاعدة بيانات باسم " upload-images" بالدخول على المتصفح على المسار التالي
localhost/phpmyadmin


قم باضافة جدول باسم "images" يحتوي على الحقول ( id=int primry key , auto incremnt - image=longblob)
3. مرحلة البرمجة :
1-بناء ملف الاتصال بقاعدة البيانات
نقوم بتسميته db.php
<?php
$con = mysql_connect("localhost","root","");
mysql_select_db("upload-images") OR die('db not connected' .mysql_error());
if (!$con)
{
die('Could not connect: ' .myaql_error());
}

حيث ان :
$con = mysql_connect("localhost","root","");
كود الاتصال بالسيرفر " localhost" واسم المستخدم للسيرفر "root" وكلمة المرور " "
mysql_select_db("upload-images") OR die('db not connected' .mysql_error());
كود الاتصال بقاعدة البيانات " upload-images"
if (!$con) { die('Could not connect: ' .myaql_error()); }
رسالة الخطأ اثناء فشل الاتصال
2- صفحة ادخال بيانات بلغة html نقوم بتسميتها insert.html
<center>
<h1>Insert Item</h1>

<form action="insertitems.php" method="POST" enctype="multipart/form-data">
<table>






<tr>
<td>picture: </td><td><input type="file" name="image"></td>
</tr>

</table>
<input type="submit" value="  insert   ">
</form>
حيث ان :
action="insertitems.php" method="POST" enctype="multipart/form-data"
رابط توجية الفورم ونوعه
input type="file" name="image"
نوع الادخال " file" يستخدم لإرفاق الملفات وقمنا بتسمية الادخال بـ "image" حيث سيتم ربطة بالقاعدة لاحقا
input type="submit" value=" insert "
زر الارفاق ونوعه " submit" وقيمته (يمكن اضافة اي قيمة ترغب بها) " insert" 3- صفحة تاكيد الارسال بلغة php نقوم بتسميتها insertitems.php
<?php
require("db.php");



$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));



$query="INSERT INTO images VALUE('','$image')";
$result=@mysql_query($query);
$lastItemID = mysql_insert_id();
if($result)
{
echo"Insertion complete with ID  ".$lastItemID;
echo"<br /><a href=viewitems.php>Click here to view</a>";
}
else{echo"insertion failed";}?>

حيث ان :
require("db.php");
كود تضمين صفحة الاتصال بقاعدة البيانات وهو كود مهم لنجاح الاتصال
$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
كود التعريف بحقل الادخال الذي قمنا بتسميتها سابقا "image" حيث ان $image هو الحقل الموجود بداخل قاعدة البيانات وهذه العميلة بمثابة ربط الحقل الموجود في الصفحة بالحقل الموجود بالقاعدة
$query="INSERT INTO images VALUE('','$image')";
كود الارسال الى جدول قاعدة البيانات وهو images وتحديدا بداخل الحقل $image وكما تلاحظ يوجد حقل فارغ يسبق حقل الصورة '' وهو في الحقيقة لحقل $id الموجود بادخل القاعدة وسبب تركه فارغنا اننا قمنا بتحديد نوع التعبئة سابقا auto اي تلقائي بمعنى عندما نقوم بارسال الصورة الى حقل الصورة بـ قاعدة البيانات يقوم حقل id بتعبئة نفسه تلقائيا على هذا النحو (1,2,3) الخ
$result=@mysql_query($query);
كود تنفيذ الاستعلام عن النتائج
$lastItemID = mysql_insert_id();
التعريف بكود طباعة المعرف الخاص بالصورة ونستخدمه مع كود رسالة نجاح الارسال تاابع الشرح
if($result)
كود الشرطية ونطلب منه في حالة ظهور النتائج بنجاح اطبع كل مما يلي :
echo"Insertion complete with ID ".$lastItemID;
رسالة نجاح الارسال يليه كود رقم المعرف الذي قمنا بتعريفه سابقا
كود طباعة رابط التوجيه لصفحة مشاهدة الصور المرفوعة
else{echo"insertion failed";}
كود الاستثناء ونطلب منه طباعة رسالة بفشل الارسال في حالة وجود اي حطأ
4- صفحة استعراض النتائج بصيغة php
<link type="text/css" rel="stylesheet" href="mystyle.css">
<?php
require("db.php");

$result = mysql_query("SELECT * FROM images");

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  
  

  echo '<td><img width=300 height=400 src="data:image/jpeg;base64,' 
  .base64_encode( $row['image']) .'"</td>';
   
  echo "</tr>";  
  }
?>
حيث ان :
require("db.php");
كود تضمين صفحة الاتصال بالسيرفر وقاعدة البيانات
$result = mysql_query("SELECT * FROM images");
كود سحب البيانات من جدول البيانات حيث ان $images هو اسم الجدول و "*" اي تحديد جميع محتويات الجدول
while($row = mysql_fetch_array($result))
كود استخراج البيانات على هيئة مصفوفة
echo '<td><img width=300 height=400 src="data:image/jpeg;base64,' 
  .base64_encode( $row['image']) .'"</td>';
كود طباعة النتيجة في صفوف متقابله وطلبنا منه اتسخراج جميع الصفوف التي بداخل الحقل $row['image']
ختاما تابع الفيديو لاستعراض السكربت النهائي

صورة من داخل جدول البيانات ونلاحظ نجاح رفع البيانات

حذف البيانات من قاعدة بيانات mysql من خلال ملف php

0
استكمالا للدرس الماضي " استعراض البيانات " ساقوم اليوم بشرح الية حذف البيانات بواسطة ملف php وسأقوم بربط خيار الحذف بصفحة " admin " بمعنى صفحة الادارة حيث ستتكون ببساطة من جدول استعراض البيانات وارتباط تشعبي للحذف


  • اولا انشأت ملف php جديد باسم delete.php
  • اضفت الاكواد التالية بداخله :

<?php 
require('db.php');

     

$id = $_GET['id']; 


    $query = " DELETE FROM stores WHERE id = '$id'";
    
    $result =mysql_query($query);
if($result)
{

header("Location:admin.php");
}
else
echo"no";








 ?>


  • حيث ان require('db.php'); كود الاتصال بقاعدة البيانات 
  • $id = $_GET['id']; تعريف الحذف بواسطة الـ ID
  •  $query = " DELETE FROM stores WHERE id = '$id'"; استعلام الحذف حيث ان DELETE امر الحذف و stores جدول البيانات where id = id امر لتحديد الحقل المراد حذفه وهو $id
  • $result =mysql_query($query); استعلام تنفيذ النتئج "نتيجة الحذف" 
  • if($result) في حالة ظهور النتيجة : 
    {

    header("Location:admin.php"); حددت موقع الربط وهو ملف admin.php وهذا الملف سأقوم باضافة اكواد ملف استعراض البيانات في الدرس السابق (الدرس السابق) بداخلة بالاضافة الى الارتباط التشعبي الذي سأشرحه في اخر الدرس
    }
    else في حالة وجود خطأ ستظهر رسالة " no
    echo"no";
  • احفظ الملف باسم delete.php

  • اخيرا عمل ارتباط تشعبي لملف الحذف السابق بداخل ملف الادارة : كما ذكرت سابقا نقوم باضافة اكواد ملف الاستعراض في الدرس السابق  واعدل فقط على جدول النتائج التالي : 
echo"<tr><td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td><td><a href=delete.php?id=$row[0]>احذف المتجر</a></td>

  • حيث ان <a href=delete.php?id=$row[0]>احذف المتجر</a> هو الارتباط  
نلاحظ ظهور الارتباط التشعبي

بعد النقر على الارتباط نلاحظ خلو الصفحة من البيانات  

وكذلك عند دخولنا على جدول البيانات من phpmyadmin نلاحظ خلو جدول البيانات من اي بيانات حيث انها حذفت فعليا بواسطة ملف delete.php

اخراج البيانات من قاعدة بيانات mysql الى صفحة php

0
في درسنا السابق شرحنا طريقة ادخال البيانات في قاعدة بيانات mysql بواسطة صفحة php راجع الدرس السابق من هنا

ملاحظة سنتستخدم القاعدة السابقة في هذا الدرس


  • انشىء صفحة php جديدة ثم ادرج هذه الاكواد البرمجية بداخلها


<link type="text/css" rel="stylesheet" href="vewstyle.css">

<body>
<?php
require("db.php");
$query="select * from stores";
$result=@mysql_query($query);
if($result)
{
echo"<table  id=r1><tr><th id=h55>معرف المتجر</th><th id=h55>اسم المتجر</th><th id=h55>هاتف المتجر </th><th id=h55>معلومات اضافية</th></tr>";

while($row=mysql_fetch_array($result,MYSQL_NUM))
{
echo"<tr id=t56><td id=t55>$row[0]</td><td id=t55>$row[1]</td><td id=t55>$row[2]</td><td id=t55>$row[3]</td>

</tr>";
}

}

else
{
echo"no view";
}

?></body>


  • اولا قمت بالاتصال بقاعدة البيانات بواسطة استدعاء ملف الاتصال بالقاعدة 
require("db.php");
  • ثانيا طلبت سحب البيانات جميعها من جدول البيانات حيث ان الرمز * يعني تحديد جميع الصفوف في الجدول و stores هو اسم الجدول
$query="select * from stores";

  • ثالثا كتبت دالة النتائج 
$result=@mysql_query($query);

  • رابعا طلبت من القاعدة في حالة ظهور نتائج ماورد في النقطة الخامسة ⬇ بواسطة الدالة الشرطية 
if($result){}

  • خامسا طلبت من الدالة في حال كان الاتصال ناجح طباعة رأس الجدول التالي بواسطة امر الطباعة echo"";
echo"<table  id=r1><tr><th id=h55>معرف المتجر</th><th id=h55>اسم المتجر</th><th id=h55>هاتف المتجر </th><th id=h55>معلومات اضافية</th></tr>";
  • سادسا ثم يتبعها مباشرة دالة اظهار النتائج على شكل مصفوفة 
while($row=mysql_fetch_array($result,MYSQL_NUM))
{}

  • سابعا  طبعت بداخل الدالة السابقة محتويات خلايا الجدول باستخدام امر الطباعة echo""; ثم بدخال هذه الحقول طلبت منه اخراج نتائج صف كامل لكل حقل موجود بداخل قاعدة البيانات حيث ان الصف $row[1] بحسب ترتيبه في القاعدة هو صف " اسم المحل التجاري" 
echo"<tr id=t56><td id=t55>$row[0]</td><td id=t55>$row[1]</td><td id=t55>$row[2]</td><td id=t55>$row[3]</td>

</tr>";
  • ثامنا طلبت من القاعدة في حالة فشل الاتصال ابلاغي برسالة خطأ باستخدام دالة الاستثناء else{} وبداخلها رسالة الخطأ ادرجته بواسطة امر الطباعة آنف الذكر  echo "";  
else
{
echo"no view";
}

  • ختاما ظهرت النتيجة بنجاح 

انشاء سكربت php لاإدخال البيانات الى قاعدة بيانات mysql

4

في هذا الشرح سأقوم ببرمجة سكربت ادخال الى قاعدة بيانات mysql باستخدام الـphp والـhtml
ليكون سكربت دليل الهاتف للمحلات التجاريه او سكربت اسماء الموظفين والمشتركين او اي فكرة تود العمل عليها، فالقائمة تطول ،،،،،

هنا قررت كبداية انشاء سكربت دليل الهاتف للمحلات التجارية ولكن قبل ذلك يجب علينا تحليل السكربت قبل البدء كخطوة اولى لاتقان العمل على السكربت فمن فكرة السكربت سنحتاج الى صفحة ادخال البيانات، وصفحة تاكيد نجاح الارسال، واخيرا صفحة لاستعراض وحذف المتاجر  ،
قبل البدء قم بالتوجه الى التدوينة متطلبات انشاء السكربت

المرحلة الاولى انشاء قاعدة بيانات 


 وسنسميها بـ (Directory_of_ shops) بمعنى دليل التسوق بداخلها جدول بأسم (STORES) بمعنى المحلات التجاريه يظم الصفوف التالية :

  1. رقم المعرف التلقائي  (ID)
  2. اسم المحل التجاري و سنضع اسم الصف في الجدول (STORE_NAME)
  3. رقم الهاتف وسنضع اسم الصف في الجدول (PHONE_NUMBER)
  4. معلومات اضافية عن المتجر وسنضع اسم الصف في الجدول ( INFO)
لمعرفة طريقة انشاء قاعدة بيانات او جدول قم بزيارة الشروحات السابقة  بالنقر على  : ( انشاء قاعدة بيانات MYSQL - انشاء جدول بداخل قاعدة بيانات MYSQL

بعد ادخال الصفوف في جدول البيانات قمت بالتالي


  • تحديد الصف ID كمفتاح اساسي بالاضافة الى AUTO_INCREMENT اي يتم تعبئته تلقائيا 
  • قمت بتحديد انواع الصفوف TYPE
بعد انشاء القاعدة والجدول سأقوم بإنشاء مجلد بأسم STORES "والتسميه هنا اختياريه " حتى اضيف ملفات الموقع بداخله على مسار السيرفر المحلي التالي:

C:\xampp\htdocs\stores

المرحلة الثانية انشاء نموذج ادخال بيانات بلغة الويب html


  • بعد الدخول الى المسار اقوم بإنشاء ملف نصي جديد notepad 
  • بعد فتح الملف اقوم بتصميم نموذج ادخال البيانات بلغة html يحتوي على الحقول التالية : 

  1. ادخال اسم المحل التجاري 
  2. ادخال رقم جوال المحل التجاري 
  3. ادخال معلومات اضافية عن المحل التجاري 
  4. زر ارسال البيانات 


مثال على الكود : 


<html>
<head>

<link type="text/css" rel="stylesheet" href="mystylefor.css">
</head>

<center>



<h2>قم بادراج محل تجاري جديد</h2>
<body><form action="insert.php" method="POST">

<table>
<tr>
<td>أسم المحل التجاري:</td><td><input type="text" name="name" ></td>
</tr>
<tr>
<td>رقم الهاتف:</td><td><input type="text" name="phone"></td>
</tr>

<td>معلومات اكثر:</td><td><textarea name="info"></textarea></td>
</tr>
</div>



<td></td><td><input type="submit"value="إضـافة" ></td>
</table>


</body></form></center></html>

الشرح :

  • استخدمت اكواد تنسيق النصوص <H> للعناوين والرقم الذي يليه لتحديد حجم النص حيث ان اكبر حجم يبدأ من 1 الى اصغر حجم ينتهي بـ 6 
<h2>قم بادراج محل تجاري جديد</h2>

  • قمت بفتح كود ادراج النماذج <form> وقمت بتحديد وجهة ارسال البيانات الى الصفحة التالية insert.php باستخدام الكود action= وحددت اسلوب النموذج بـ POST باستخدام الكود method
<form action="insert.php" method="POST">   هنا ستتم كتابة حقول الادخال   </form>


  • بداخل كود النموذج قمت بإدراج جدول باستخدام الكود <table> لضبط تنسيق الحقول التي سأضيفها بداخله وقمت بانشاء صف الجدول باستخدام الكود <tr> حيث انني احتاج الى صف لكل حقل ثم بداخل كل صف قمت بإنشاء خليتين خلية لعنوان الحقل وخلية اخرى لكود حقل الادخال باستخدام الكود <td>

<table><tr><td>عنوان الحقل</td><td>هنا كود حقل الادخال</td>

  • بداخل الخليتين السابقتين اولا اقوم بكتابة العنوان الذي سيظهر بجوال الحقل 
<td>
أسم المحل التجاري:
</td>
  • ثانيا اضافة كود الحقل باستخدام الكود <input> ثم قمت بتحديد نوع الحقل type="text" نصي ثم حددت اسم الحقل بأستخدام name = "اسم الحقل" ويرجى ملاحظة ان هذا الاخير مهم جدا لربطه لاحقا بقاعدة البيانات ثم اخيرا قمت باغلاق وسمي الخلية والصف وقمت بتكرير هذه العملية لحقول الادخال الاخرى 
<td><input type="text" name="name" ></td>
</tr>


  • ثالثا اضافة كود زر ارسال البيانات وهو نفس الطريقة السابقة ولكن احدد نوع الادخال الى type="submit" واضيف على ذلك قيمة الحقل أي الاسم الذي سيظهر بداخل الزر بأستخدام الكود value = "اضافة" وهنا لا احتاج الى تسمية الحقل باستخدام كود التسمية name = "" ويرجى ملاحظة انه عند النقر على الزر سيتم توجيهنا مباشرة الى الصفحة التي حددناها مسبقا في بداية كود النموذج "insert.php"
<td></td><td><input type="submit"value="إضـافة" ></td>

  • ختام هذه المرحلة اقوم بحفظ الملف النصي واقوم بتسميته insrt.html  واقوم بتحديد نوع الحفظ الى all files واقوم بتحديد الترميز " utf8" حتى يظهر النتائج بالعربية بدون اخطاء


المرحلة الثالثة الاتصال بقاعدة البيانات 

قمت مسبقا بشرح اكواد الاتصال بقاعدة البيانات من خلال ملف php  للشرح التفصيلي انقر هنا

  • قمت بانشاء ملف نصي بنفس الطريقة السابقة وقمت بكتابة كود الاتصال التالي بداخله وقمت بكتابة اسم قاعدة البيانات directory_of_ shops بداخل الكود mysql_select_db("اسم قاعدة البيانات")
<?php
$con = mysql_connect("localhost","root","");
mysql_select_db("directory_of_ shops") OR die('db not connected' .mysql_error());
if (!$con)
{
die('Could not connect: ' .myaql_error());
}

  • اخيرا حفظت الملف باسم db.php وعند دخولى على مسار القاعده من المتصفح http://localhost/stores/db.php الاحظ صفحة فارغه وهذا يعني ان الاتصال ناجح✅ ولكن في حال حوث خطأ ❌ستظهر لي الرساله التالية حيث ان الخطأ في اسم قاعدة البينات تعمدت كتابة اسم القاعدة بطريقة خاطئة لتظهر رسالة الخطأ في حال لم تظهر لك اي رسالة فأنت في المسار الصحيح انتقل مباشرة الى المرحلة الرابعة ،، 


المرحلة الرابعة والاخيرة ارسال البيانات المدخلة الى قاعدة البيانات

في هذه المرحلة سأقوم برط صفحة النموذج الذي قمت بتصميمه في المرحلة الثانية بقاعدة البيانات ولاتمام هذه العملية سأحتاج الى وسيط بين الموذج وبين قاعدة البيانات هو ملف php بواسطة هذا الملف سأقوم بتضمين ملف الاتصال db.php وربط حقول ادخال البيانات مع ما يقابلها من حقول في قاعدة البيانات لتفهمها القاعدة   ،، سيكون الملف الوسيط هذا باسم insert.php دعوني اشرح ذلك بالتفصيل لتتضح الصورة 

  • اولا انشىء ملف نصي جديد وقم بكتابة الكود التالي بداخله 
<?php
require("db.php");

$store_name=$_POST['name'];
$phone_number=$_POST['phone'];
$info=$_POST['info'];
$query="INSERT INTO stores VALUE('','$store_name','$phone_number','$info')";
$result=@mysql_query($query);
$lastItemID = mysql_insert_id();
if($result)
{
echo"تم الادراج بنجاح بواسطة رقم المعرف الخاص بالمتجر 
ID: ".$lastItemID;

}

else{echo"لم يتم التسجيل";}

?>


  • ثانيا قمت باستدعاء ملف الاتصال بالقاعدة بواسطة كود الامر require
  • ثالثا قمت بربط حقول الادخال التي انشأتها في ملف النموذج insert. html  مع قاعدة البيانات بواسطة الدالة post_$ 
هنا قمت بشرح تعريف الحقل " اسم المحل التجاري " الذي رمزت له ب"name" في المرحلة الثانية بالحقل المقابل له في قاعدة البيانات الذي اسميناه في المرحلة الاولى بـ store_name وللتنويه اذا قمنا باستدعاء اي حقل في قاعدة البيانات نقوم بكتابة الرمز $ قبله 


$store_name=$_POST['name'];

إيضاح

  • اسم الحقل في قاعدة البيانات 
  • دالة الربط وهي كذلك : اسلوب النموذج في الملف insert.html
  • اسم الحقل " اسم المحل التجاري " الذي رمزنا له ب"name" في الملف insert.html


  • رابعا قمت بكتابة  الامر  بادراج البيانات التي تم تعريفها الى قاعدة البيانات بإستخدام الامر :
$query="INSERT INTO stores VALUE('','$store_name','$phone_number','$info')";

إيضاح : 

قبل كتابة الامر استخدمت الدالة $query ويتبعها نص الامر INSERT INTO  ثم اسم الجدول في قاعدة البيانات " stores" ثم قمت بتحديد القيم باستخدام الامر value  ثم بين قوسين ( اسماء القيم "الحقول ") ونلاحظ ان اول قيمة حددتها فارغة "" وهي للمعرف ID الذي اضفت له في المرحلة الاولى الخاصية AUTO_INCREMENT اي يتم تعبئته تلقائيا لذلك لست بحاجة هنا الى كتابته اما فيما يخص القيم الاخرى حددتها بأسمائها $store_name','$phone_number','$info
على سبيل المثال store_name سيتم تخزين بيانات "اسم المحل التجاري" بداخله مع مراعاة الفصل بين القيم "" ب الفاصلة , ثم في نهاية الكود نقوم بإغلاقه بالفاصلة ;

  • خامسا سيتم ارسال البيانات الى القاعدة بواسطة كود "النتائج" 
$result=@mysql_query($query);

  • سادسا عند ارسال البيانات طلبت من قاعدة البيانات اخباري عن معرف ارسال البيانات "معرف اخر قيم تم ارسالها لقاعدة البيانات فقط " 
$lastItemID = mysql_insert_id();

  • سابعا طلبت من قاعدة البيانات اخباري برسالة اذا تم ارسال البيانات بنجاح بإستخدام الدالة الشرطية {}() if
   بداخل اقواس {} الدالة الشرطية ساقوم بكتابة الرسائل بإستخدام امر طباعة الرسائل echo " " ; مرفقا برقم المعرف Id الذي قمت بتعريفه سابقا .$lastItemID;

echo"تم الادراج بنجاح بواسطة رقم المعرف الخاص بالمتجر 
ID: ".$lastItemID;


  • ثامنا طلبت منه طباعة رسالة في حالة وجود خطأ في الارسال بإستخدام الدالة else{}وبداخلها امر طباعة الرسائل echo

else{echo"لم يتم التسجيل";}

  • تاسعا  اقوم بحفظ الملف باسم insert.php 

  • عاشرا واخيرا اقوم بتجربة السكربت بالدخول من المتصفح على المسار التالي
http://localhost/stores/insert.html

  
تم ارسال النتائج بنجاح الى قاعدة البيانات حيث ان الجزء المضلل في الصورة السابقة هو رقم المعرف lastitemid.
المسجل في قاعدة البيانات باسم ID
ندخل الى مسار قاعدة البيانات من خلال phpmyadmin لمشاهدة المدخلات في قاعدة البيانات 
http://localhost/phpmyadmin/

في الدرس القادم سأقوم بشرح اخراج البيانات من قاعدة البيانات الى ملف php كونوا قريبين :) ولا تترددوا بطرح اي استفسار في حال واجهتكم اي اشكالية .

مقالات شائعة

جميع الحقوق محفوظه © مدونة فـاب

تصميم الورشه