شكرا أخي محمد على مرورك,
الموضوع يزداد قوة بمشاركة الآخرين أفكارهم ونقاشهم حول الأكواد الموجودة وطرح ما لديهم من افكار..... الخ
======================
أتحدث الآن عن نقطة هامة في قواعد البيانات يهملها كثير من المبرمجين,
معروف أننا نفتح قاعدة بيانات لاجراء عمليات عليها كالعرض والتحديث والحذف.... الخ
لكن الكثير ينسى أن (يغلق) قاعدة البيانات في نهاية الملف أو السكريبت...
أمر اغلاق قاعدة البيانات:
كود PHP:
mysql_close($db_handl);
حيث يمثل المتغير db_handl دالة اتصال مع قاعدة البيانات:
كود PHP:
$db_handl=mysql_connect('server_name', 'mysql_user', 'mysql_password');
======================
انشاء ملف محمي بكلمة سر: (يمكن استخدامه كلوحة تحكم بسيطه):
اقرأ هذا الكود:
كود PHP:
require('conf.php');
define('IN_ADMIN',true);
session_name('kimo');
session_start();
if (isset($_POST['logsub'])) {
if ($_POST['uname'] == $confg['uname'] && $_POST['pword'] == $confg['pword']) {
$_SESSION['login'] = true;
}
else {
$err = 'Invalid username or password';
}
}
elseif ($_GET['action'] == 'logout') {
$_SESSION = array();
session_destroy();
}
هذا أبسط كود يمكن استخدامه لانشاء مستخدم للوحة تحكم بسيطه من صفحة واحدة, مع ارسال session الى المتصفح, ضع الكود السابق في الهيدر..
واستخدم الكود التالي للتحكم بتسلسل التنفيذ (طبعا الكود التالي في البودي):
كود PHP:
if ($_SESSION['login']) {
//code will be excute if log in is true
//it means this user is the admin
}
elseif ($_GET['action'] == 'logout') {
//you must put this condition to log out the admin and close the session.....
//you must.... you must
}
else {
//login form here, put remember to match the variables
}
//I think you will forget to close the DB!!!!!!
//remember :)
ملاحظات هامة:
- استخدمنا المتغير $_session وليس $HTTP_SESSION_VARS لأن الأول متغير جلوبال Global ولا يحتاج لتعريفك له بهذا, وبنفس الطريقة نستخدم متغيرات $_POST, $_GET
- يجب تدمير السيشن كما تشاهد بالأعلى, لضمان الحماية.
أساليب برمجية لتعيين أكثر من مستخدم, وتحديد وظيفة لكل نوع من المستخدمين:
قد يكون هناك تفكير بأن يكون للوحة التحكم البسيطة هذه أكثر من مستخدم, أو أكثر من مجموعة, وسأعتمد على فكرة مجموعة أكثر لأنها الأفضل في العمل, ولكل مجموعة خصائص ادارية محددة...
ستحتاج الى اضافة حقل آخر في فورم الدخول ولنفترض أنه Group Name ونضعه في المتغير $_POST['gname']
اذا عند البدء في تنفيذ الكود في الصفحة, فقط اضف التالي:
كود PHP:
if (($_SESSION['login']) && ($_POST['gname']==$confg['group1']))
{
//code for group 1
}
if (($_SESSION['login']) && ($_POST['gname']==$confg['group2']))
{
//code for group 2
}
وهكذا.... وطبعا بنفس الطريقة اضف شروطا أخرى لتحديد مهام معينة لمستخدم محدد.... الخ
فقط ضع ما تريد من بيانات في ملف config كما تلاحظ أنني استخدمت.
ربما نتحدث في المرة القادمة عن السيشن Session فله اساليب كثيرة وحيل برمجية تحتاج أن نلقي عليها نظرة....
بالتوفيق
المفضلات