القائمة : الرئيسية | البحث | الإحصائيات| إرسال درس | إتصل بنا .

مرحباً عزيزي الزائر ... إذا كنت تبحث عن دروس الـ php يمكنك تحميل الكتاب الجديد الذي تم وضع جميع دروس الموقع فيه لكي تكون بشكل أوضح وتكون الأكواد البرمجيه صحيحه بإذن الله ...
لتحميل الكتاب اضغط هنا.




  الرئيسية
 
قسم دروس php و برمجة المواقع
       [درس] بدايتك بالجلسات session .
    تستخدم في عمل لوحة تحكم ...وأشياء كثيرة
 اسم الكاتب  البريد الإلكتروني  تاريخ الكتابة
ff5006  faha1ad2@hotmail.com 06-06-2008

بسم الله الرحمن الرحيم


 

السلام عليـكم

درسنا اليوم عن مقدمة بسيطه عن نظام الجلسات session ...
قبل كل شئ نستعمل الجلسات في عمل لوحة تحكم سواءً للمدير او العضو  , او منطقة معينة خاصه بالإدارة ... أو إدارة طلب ... إو إدراج فاتورة ... أو سكربت للأسئله ..... أو أياً كان ..


سنتعلم كيفية إنشاء صفحة خاصة , لايدخلها غير المدير  بـ اسم مستخدم وكلمة مرور .

هناك شئ اساسي بنظام الجلسات ... ألا وهو الكود التالي :




<?
session_start
();
?>


يجب وضعه في اول الملف بدون ولاسطر فارغ ولا قبله اي شئ ابداً ابداً ولاحتى اكواد html .



نبدأ في برمجة لوحة التحكم البسيطة ... طبعاً سبق وشرحنا كيفية تركيب سيرفر شخصي , الآن انشئ مجلداً جديداً وقم بتسمية بالإسم admin .

الآن سنضع ملف لمعلومات المدير "اسم المستخدم , كلمة المرور"
وهذا هو الملف :
اسم الملف هو info.php .





<?

// اسم المستخدم للمدير
$admin_username "admin"
;

// كلمة المرور للمدير
$admin_password "11220"
;

?>



من هذا الملف سنحضر معلومات الإدارة ...
الآن سنقوم بكتابة ملف تسجيل الدخول login.php :




<?
session_start
();
?>
<HTML dir="rtl">
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1256">
<meta http-equiv="Content-Language" content="ar-sa">
<TITLE> لوحة التحكم / تسجيل الدخول  </title>
</head>
<body>
<font face="tahoma" style="font-size:8pt">
<div align="center">
<?
include("info.php"
);
if(
$_GET['log'] == 1
){
?>

<form method="POST" action="login.php?log=2">
    <p align="center"><span lang="ar-sa">اسم المستخدم : </span>
    <input type="text" name="username" size="20"><br>
    <span lang="ar-sa">كلمة المرور : </span>
    <input type="text" name="password" size="20"><br>
    <br>
    <input type="submit" value="إرسال" name="B1"></p>
</form>
<p align="center">&nbsp;</p>

<?
}
if(
$_GET['log'] == 2
){
// إحضار المعلومات من الحقول السابقة
$user $_POST['username'
];
$pass $_POST['password'
];
// التأكد من ان حقل اسم المستخدم ليس فارغاً
if($user == ""
){
print 
" لم تقم بادخال اسم المستخدم "
;
}
else
{
// التأكد من ان حقل كلمة المرور ليس فارغاً أيضاً
if($pass==""
){
print 
"لم تقم بإدخال كلمة المرور"
;
}
else
{
// ثم نتأكد من المعلومات
if($user == $admin_username && $pass == $admin_password
){

$_SESSION['admin_session'] = "$admin_username"
;
PRINT 
" لقد تم تسجيل دخولك بنجاح يا <br /> $user <br /> اذا لم يتم نقلك تلقائياً <a href='index_admin.php'> اضغط هنا </a>"
;
echo 
"<a href=index_admin.php>   </a><BR>   ..<meta http-equiv = refresh content=1;url=index_admin.php> </font>"
;


}
else
{
print
" خطأ , اسم المستخدم او كلمة المرور خطأ  <a href='index.php'> اضغط هنا للرجوع </a> "
;
}
}
}
}
?>



طبعاً بالسطر الأول وضعنا الكود الذي سبق وقلنا انه معناه بداية الجلسه ويجب وضعه قبل كل شئ ...
ثم وضعنا اكواد HTML عادية لن اقوم بشرحها .
ثم بدأنا وسم البي اتش بي مره اخرى , واستعدينا الملف info.php بالداله include() سبق وشرحناها.
ثم وضعنا الخطوة الأولى بإستخدام $_GET سبق وشرحناها ,
نأتي للخطوه الثانيه $_GET['log'] == 2
اولا قمنا بإحضار المُدخلات بالحقول بواسطة $_POST "سبق وشرحناها"
ثم تأكدنا من ان الحقول غير فارغه بواسطة if "سبق وشرحناها"
ثم هنا





if($user == $admin_username && $pass == $admin_password){ 


 

 


 

تأكدنا من أن $user "وهو ماقمنا بإحضاره من حقل اسم المستخدم" مساوي لـ المتغير المسؤول عن اسم المستخدم للمدير في ملف info.php .... ثم كررنا العملية بـ "&&"...
ثم في حال تحقق الشرط يحدث الآتي :
- تسجيل الجلسة.






$_SESSION
['admin_session'] = "$admin_username"

هنا وضعنا $_SESSION['admin_session']
الجلسة admin_session قيمتها تساوي اسم المستخدم ...

وطباعة انه تم تسجيل الدخول للوحة التحكم بنجاح والتحويل للصفحة الخاصة بلوحة التحكم
ثم استعملنا else لطباعة النص "اسم المستخدم او كلمة المرور خطأ ... اضغط هنا للرجوع", في حالة كانت المعلومات غير صحيحة.
ثم قمنا بإغلاق جميع الأقواس.


الآن نأتي لللصفحة الرئيسية index.php , أي انه عندما يدخل الشخص إلى الصفحة
http://localhost/admin على سبيل المثال تظهر له هذه الصفحة ... كود الصفحة هو :




<?
session_start
();
?>
<HTML dir="rtl">
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1256">
<meta http-equiv="Content-Language" content="ar-sa">
<? 

?>
<TITLE>لوحـة التحكـم | Control Panel -</title>
</head>
<body>
<?
if (isset($_SESSION['admin_session'
]) ) {
echo 
"<a href=index_admin.php>سيتم نقلك للصفحة الرئيسية للوحة التحكم</a>
<BR> ,.بعد ثواني...<meta http-equiv = refresh content=1;url=index_admin.php> </font>"
;
}
else
{

include (
'login.php'
);

}
?>



شرح بسيط للكود :





 if (isset($_SESSION['admin_session']) ) {


 


إذا كان لـ $_SESSION['admin_session'] قيمة , فـ قم بالآتي ...

طباعة النص "سيتم نقلك للصفحة الرئيسية للوحة التحكم تلقائياً " ... ومن ثم التحويل التلقائي ...
أما اذا كان لايوجد للمتغير أي قيمة فقم بتضمين الملف login.php لكي يتم تسجيل الدخول.


 

صفحة index_admin ولاتحتاج لشرح ... لانها شبيهه بـ index.php كثيراً :


 





<?
session_start
();
?>
<HTML dir="rtl">
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1256">
<meta http-equiv="Content-Language" content="ar-sa">
<?
?>
<TITLE>لوحـة التحكـم | Control Panel -</title>
</head>
<body>
<?
if (isset($_SESSION['admin_session'
]) ) {
?>
<table border="1" width="100%" id="table1" cellspacing="1" bgcolor="#ECE9D8" style="border-collapse: collapse" bordercolor="#C0C0C0">
    <tr>
        <td>
        <p align="center"><b><font face="Tahoma" size="2">
        <a href="index_admin.php"><span style="text-decoration: none">الرئيسية</span></a> 
        | <a href="#top"><span style="text-decoration: none">التحكم بالملفات</span></a> 
        | <a href="#top"><span style="text-decoration: none">التحكم بالأعضاء</span></a> 
        |<a href="#top"><span style="text-decoration: none"> التحكم بالسكربت</span></a><span lang="en-us"> 
        | </span><a href="logout.php"><span style="text-decoration: none">تسجيل 
        الخروج</span></a></font></b></td>
    </tr>
</table>
<p><br>
&nbsp;</p>
<table border="1" width="100%" id="table2" cellspacing="1" style="border-collapse: collapse" bordercolor="#C0C0C0">
    <tr>
        <td>
        <p align="center"><b><font face="Tahoma" size="2">السلام عليكم</font></b></td>
    </tr>
    <tr>
        <td>
        <p align="center"><font face="Tahoma" style="font-size: 9pt">هذه منطقة 
        خاصة بالإدارة ... شكراً لك عزيزي المدير على تسجيل الدخول , هذه لوحة تحكم 
        مبسطة.</font></td>
    </tr>
</table>


<?
}
else
{

include (
'login.php'
);

}
?>


 




الآن سنقوم بعمل logout.php تسجيل الخروج , هذه هي الصفحة :


 





<?
session_start
();
?>
<HTML dir="rtl">
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1256">
<meta http-equiv="Content-Language" content="ar-sa">
<TITLE>تسجيل الخروج . . . </title>
</head>
<body text="#800000">
<font face="Tahoma" style="font-size: 8pt">
<div align="center">

<?

if (isset($_SESSION['admin_session'
]) ) {

unset( 
$_SESSION['admin_session'
]);
session_destroy
();

echo 
" تم تسجيل الخروج ";echo "<br><a href='index.php'> اضغط هنا لتسجيل الدخول مره اخرى</a>"
;
}

else
{
print 
" <font face='tahoma' style='font-size:8pt'>يجب عليك تسجيل الدخول لرؤية هذه الصفحه"
;
include (
'index.php'
);
}
?>


 



طبعاً سنشرح بضعة اسطر فقط ...:


 





<?
unset( $_SESSION['admin_session'
]);
session_destroy
();
?>


 


السطر الأول ... unset() وتستخدم لحذف المتغير , حذفاً نهائياً ... وهنا حذفنا الجلسه ...
وفي السطر الثاني قمنا بتدمير الجلسة عبر الدالة session_destroy();


 

 


 

تطبيقي بالمرفقات مع زيادات قليلة وفصل البرمجة عن القوالب قليلاً ""  

من هنا :

http://www.phpx3.com/drs/download/3530session.rar
أو هنا
http://www.phpx3.com/drs/download/566session.zip


 

 


 

 إنتهى ... أتمنى ان الدرس كان واضحاً , ,إذا لم تفهم جيداً , اقرأ الملفات ربما تفيدك.


 

 


 



 
  آخر زيارة : 2012-February-Monday-10-05-am | عدد التعليقات : 14 | عدد الزيارات : 6269  .

 خيارات الدرس : نسخة خفيفة للطباعة | أخذ نسخة من الدرس كـ ملف نصي. | أخذ نسخة من الدرس كـ ملف .doc 'ملف word' | أخذ نسخة من الدرس كـ ملف HTML . | Bookmark : Add to del.icio.us  Add to YahooMyWeb  Add to Digg  Add to Technorati  Add to Reddit  Add to Furl  Add to Spurl  Add to Simpy  Add to Wink

عدد مرات التقييم : كـ ممتاز:38 , كـ عادي:22 , كـ سيئ:24. | قـيّـم الدرس: تقييم كـ 'رائع ! ' تقييم كـ 'عادي ' تقييم كـ ' سيئ '
  يسمح لك بإضافة تعليق على هذا الدرس.


  التعليقات :

  "رد : [درس] بدايتك بالجلسات session . "

 

تسلم اخي و الله على الدرس الحلو انا ممتن لك و تم فهم الدرس بالكامل و الحمد لله ،، كانت الجلسات شيء معقد علي لكن الحال تغير و الله شكرا لك !!

  اسم كاتب التعليق: HOL4KO | تاريخ الإرسال : 2009-August-Wednesday-5-14-pm | zaidrex@gmail.com | تبيلغ كـ تعليق سئ

  "رد : [درس] بدايتك بالجلسات session . "

 

sorry because i can't write in arabic ):

thank you so much for this lesson , i've been looking for it so long ago

but i have some questions if you don't mind >>

1. i've made a login and signup script using PHP&MySQL i want to know how can you put (welcome $user ) instade of (Username : , Password :) in the index.php

i mean just like vBulletin forums

 

could you help me please

thanks again for the great lesson

bye

  اسم كاتب التعليق: Anmar | تاريخ الإرسال : 2009-August-Monday-9-08-pm | anmartaweel@gmail.com | تبيلغ كـ تعليق سئ

  "رد : [درس] بدايتك بالجلسات session . "

 

شكراً للجميع على تعليقاتكم ...

 Anmar

الطريقة سهله , تقوم بعمل جدول للأعضاء ,
في صفحة تسجيل الدخول تقوم بعمل post لإسم المستخدم و كلمة المرور , ثم تقوم بتنقيتها بواسطة الدالة addslashes
ثم تقوم بالإستعلام عن اسم المستخدم و كلمة المرور ,
في حال كان هناك نتائج بأن الإسم و كلمة المرور صحيحه , تقوم بتخزين اسم المستخدم
<?php
$username = addslashes($_POST['username']);
$password = addslashes($_POST['password']);

$query = mysql_quer("SELECT * FROM `users` WHERE `username`='".$username."' AND `password`='".$password."'");
$num = mysql_num_rows($query);

if($num == 1){
$_SESSION['username'] = $username;
}

?>
مع مراعاة إستخدام الاكواد المشروحه في السابق ,
وحين تريد طباعة اسم المستخدم تقوم بكتابة
echo $_SESSION['username'];

like :-

echo 'hello :',$_SESSION['username'];





عذراً على الشرح السريع , واتمنى انه كان واضحاً.

  اسم كاتب التعليق: ff5006 | تاريخ الإرسال : 2009-August-Tuesday-7-00-am | faha12ad2@hotmail.com | تبيلغ كـ تعليق سئ

  "رد : [درس] بدايتك بالجلسات session . "

 

فعلا الخطأ في الدرس هو نسيان الأسطر التالية في صفحة login.php

if(empty($_GET['log'])){
$log=1;
print " <meta http-equiv = refresh content=1;url=index.php?log=1> ";

  اسم كاتب التعليق: ناصف | تاريخ الإرسال : 2009-September-Monday-3-39-am | ttouf24@gmail.com | تبيلغ كـ تعليق سئ

  "رد : [درس] بدايتك بالجلسات session . "

 

جزاك الله خيرا

  اسم كاتب التعليق: محمد | تاريخ الإرسال : 2009-October-Monday-10-41-pm | aqsa92@hotmail.com | تبيلغ كـ تعليق سئ

  "رد : [درس] بدايتك بالجلسات session . "

 

اخي شوف تطبقي لا يتم تحويل الي الصفحة

اخي عندم يتم تحويل تضهر صفحة بيضاء

  اسم كاتب التعليق: فيصل | تاريخ الإرسال : 2010-August-Friday-8-02-pm | baghdadi28@gmail.com | تبيلغ كـ تعليق سئ

  "رد : [درس] بدايتك بالجلسات session . "

 

انا عايزه يحضر بيانات المدير من القاعدة من جدول المشرفين

الرجاء المساعدة وارسال الرد علي بريدي

 

مشكوووووووووووووووور اخي

 

 

  اسم كاتب التعليق: alnima | تاريخ الإرسال : 2010-October-Sunday-11-15-am | legend_alnima@yahoo.com | تبيلغ كـ تعليق سئ
 الصفحات :
   السابق   1  2  

   


إضافة تعليق

 الموضوع:
 
 التعليق * :


 
  ملاحظة : لتبديل طريقة الكتابة من اليمين لليسار أو العكس اضغط shift+ctrl.

 اسمك:  
 البريد الإلكتروني :  
 من فضل قم بكتابة الأرقام والحروف الموجوده في الصوره:
 

 



جميع الحقوق محفوظة © دروس مبرّمج
Progrom By PHPx3.com 2008.