منطقة الأعضاء

 منطقة الأعضاء  أضيف في: 27-3-1428هـ
السلام عليكم و رحمة الله و بركاته ..
مساكم الله بالخير يا إخوة و حياكم الله في درس جديد من أخوكم عبدالمجيد ..

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

طيب يا شباب نبدأ ؟!! ..

نبدأ بسم الله ..

أول حاجة ربما يسأل البعض .. إيش هي منطقة الأعضاء ؟!! ..
فأقول طبعاً هذا المصطلح مترجم حرفياً من الإنجليزية Members Area ..
و يعني هذا الأمر وجود قسم بالموقع لا يدخله إلا أشخاص معينين و هم الأعضاء طبعاً بواسطة إسم مستخدم UserName و كلمة مرور PassWord ..

طيب الحين عرفنا إيش هي منطقة الأعضاء بقي نذكر الطرق المستخدمة في عملها ..

طبعاً يمكن عمل منطقة أعضاء خاصة عن طريق وضع إسم مستخدم و كلمة مرور موحدين بمعنى كل الأعضاء يدخلون بها و طبعاً ذلك يتم عن طريق وضع الكود التالي :

PHP CODE:
0001
0002
0003
0004
0005
0006
0007
0008
0009

<?php
if(!isset($PHP_AUTH_USER)||($PHP_AUTH_USER!="UserName")||($PHP_AUTH_PW!="PassWord") )
{
Header("WWW-Authenticate: Basic realm=\"منطقة الأعضاء\"");
Header("HTTP/1.0 401 Unauthorized");
exit;
}

?>

طبعاً الكود السابق لو وضعته بأي ملف PHP فحسين يفتحه الشخص ستظهر له رسالة تطلب منه وضع إسم المستخدم الذي هو في الكود UserName و كلمة المرور الموضوع بالكود و هي PassWord ..
طبعاً يمكنك وضع متغيرات في الكود تضع قيمتها مثلاً في ملف config !! ..

طبعاً هذه طريقة لعمل منطقة محمية لكن ربما يكون عيبها أنه الجميع سيدخل بإسم مستخدم واحد و كلمة مرور واحدة ..

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

الطريقة الثانية و هي الأفضل تتم عن طريق وضع صفحة لتسجيل الأعضاء لكي يتم حفظ معلوماتهم بقاعدة البيانات ثم حين الذهاب لمنطقة الأعضاء يتم التأكد من معلومات العضو من قاعدة البيانات ..

طبعاً ما سأشرحه هو نموذج خفيف و لو أنه هناك طرق كثيرة أفضل و أقوى و لكن آثرت الإختصار و محاولة إيصال الفكرة بأبسط الطرق ..

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

إستخدم الكود التالي لزراعة قاعدة البيانات في موقعك :

PHP CODE:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010

<?php
CREATE TABLE user (
`id` int(10) unsigned NOT NULL auto_increment,
`username` varchar(255) NOT NULL default '',
`password` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) TYPE=MyISAM;

?>

طبعاً سيكون إسم قاعدة البيانات هو user ..

طيب ..
الحين أنشأنا قاعدة البيانات ..
بقي علينا عمل ملف تعريف السكربت بقاعدة البيانات و هو ملف config.inc.php ..
قم بإنشاء ملف بالإسم السابق و ضع فيه الكود التالي :

PHP CODE:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011

<?php
$dbserver="localhost";
$dbuser="";
$dbpass="";
$dbname="user";
mysql_connect($dbserver,$dbuser,$dbpass);
mysql_select_db($dbname);
?>

تأتي الآن مرحلة عمل نموذج تسجيل العضو ..
لذا سنحتاج لإنشاء ملف php و لنسمه مثلاً register.php ..
سنضع فيه كود HTML عبارة عن نموذج Form للتسجيل ..
كود نموذج التسجيل سيكون كالتالي مثلاً :

PHP CODE:
0001
0002
0003
0004
0005
0006
0007
0008
0009

<?php
نموذج تسجيل عضو<br>
<form method="post" action="register.php?reg=user">
إسم المستخدم <input type="text" name="username" size="30"><br>
كلمة المرور <input type="text" name="password" size="30"><br>
<input type="submit" value="تسجيل">
</form>

?>

طبعاً تلاحظون بالكود وضعنا في خانة Action التالي :
register.php?reg=user
و هذا يعني أنه سيتم إرسال المعلومات لهذا الجزء من ملف register.php و الذي يحمل إسم reg ..
طبعاً الجزء هذا سيكون عبارة عن أوامر php تكمل إجراء تسجيل العضو ..
سنستخدم بالطبع أمر قاعدة البيانات INSERT INTO لذلك ..

طبعاً كود ال php سيكون كالتالي :

PHP CODE:
0001
0002
0003
0004
0005
0006
0007

<?php
require("config.inc.php");
if(isset($reg)){
mysql_query("INSERT INTO user (username,password)VALUES('$username','$password')");
echo "تمت العملية بنجاح";
}
?>

طبعاً كما تلاحظون بداية طلبنا ملف config.inc.php عن طريق الأمر require ..
ثم وضعنا شرطاً أنه إذا تم طلب الجزء reg من الملف register.php طبعاً فإنه يتم تنفيذ الأوامر التي بهذا الجزء ..
و هي كما نرة عبارة عن عملية إتصال بقاعدة البيانات ثم إدراج معلومات العضو التي وضعها و هي إسم المستخدم و كلمة المرور ..

الآن سيكون محتوى ملف register.php بالكامل :

PHP CODE:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016

نموذج تسجيل عضو<br>
<form method="post" action="register.php?reg=user">
إسم المستخدم <input type="text" name="username" size="30"><br>
كلمة المرور <input type="text" name="password" size="30"><br>
<input type="submit" value="تسجيل">
</form>

<?php
require("config.inc.php");
if(isset($reg)){
mysql_query("INSERT INTO user (username,password)VALUES('$username','$password')");
echo "تمت العملية بنجاح";
}
?>

الحين وصلنا لمرحلة إنشاء صفحة تسجيل دخول العضو و لنسمها مثلاً member.php ..
سنحتاج فيها عمل نموذج تسجيل دخول للعضو ..
طبعاً هو مثل نموذج التسجيل لكن طبعاً سيكون له Action آخر ..

ضع الكود التالي :

PHP CODE:
0001
0002
0003
0004
0005
0006
0007
0008
0009

<?php
نموذج تسجيل دخول عضو<br>
<form method="post" action="member.php?log=user">
إسم المستخدم <input type="text" name="username" size="30"><br>
كلمة المرور <input type="text" name="password" size="30"><br>
<input type="submit" value="دخول">
</form>

?>

طبعاً تلاحظون بالكود وضعنا في خانة Action التالي :
member.php?log=user
و هذا يعني أنه سيتم إرسال المعلومات لهذا الجزء من ملف member.php و الذي يحمل إسم log ..
طبعاً الجزء هذا سيكون عبارة عن أوامر php تكمل إجراء تسجيل دخول العضو ..

المطلوب في أوامر php الان أنها تتأكد من مطابقة المعلومات اللي أدخلها العضو مع معلوماته المسجلة مسبقاً بقاعدة البيانات ..

سنستخدم الكود التالي لذلك :

PHP CODE:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015

<?php
require("config.inc.php");
if(isset($log)){
$query=mysql_query("SELECT username,password FROM user WHERE username LIKE '$username' AND password LIKE '$password'");
$num=mysql_num_rows($query);
if($num==1){
print"تم تسجيل دخولك";
}
elseif($num!=1){
print"إسم مستخدم خاطئ أو كلمة مرور خاطئة";
}
}
?>

طبعاً كما تلاحظون بداية طلبنا ملف config.inc.php عن طريق الأمر require ..
ثم وضعنا شرطاً أنه إذا تم طلب الجزء log من الملف member.php طبعاً فإنه يتم تنفيذ الأوامر التي بهذا الجزء ..
و هي كما نرى عبارة عن عملية إتصال بقاعدة البيانات ثم البحث عن معلومات العضو التي وضعها و هي إسم المستخدم و كلمة المرور .. و طبعاً ذلك للتأكد من وجودها بقاعدة البيانات ..
و من ثم إذا وجدها و كانت مطابقة تماماً فإنه سيطبع عبارة ( تم تسجيل دخولك ) أو إذا كانت خلاف ذلك فسيطبع عبارة ( إسم مستخدم خاطئ أو كلمة مرور خاطئة ) ..
طبعاً هنا إن شاءالله تكون وصلت الفكرة المطلوبة ..
بالتأكيد يمكنك إستبدال العبارات أو وضع أمر إدراج ملف بدلاً من طباعة عبارة أو يمكنك وضع أوامر php أخرى لتنفذ بدل أمر طباعة العبارة echo ..

الآن سيكون محتوى ملف member.php بالكامل :

PHP CODE:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024

نموذج تسجيل دخول عضو<br>
<form method="post" action="member.php?log=user">
إسم المستخدم <input type="text" name="username" size="30"><br>
كلمة المرور <input type="text" name="password" size="30"><br>
<input type="submit" value="دخول">
</form>

<?php
require("config.inc.php");
if(isset($log)){
$query=mysql_query("SELECT username,password FROM user WHERE username LIKE '$username' AND password LIKE '$password'");
$num=mysql_num_rows($query);
if($num==1){
echo "تم تسجيل دخولك";
}
elseif($num!=1){
echo "إسم مستخدم خاطئ أو كلمة مرور خاطئة";
}
}
?>

أتمنى يكون الشرح واضح و الفكرة وصلت و تراها فكرة مبسطة لمنطقة الأعضاء و إلا هناك طرق كثيرة متقدمة و أفضل من هذه بكثير ..

الكاتب: waleed