تابع موضوعات المنتدى الانتساب تعليمات س - ج المفكرة بحث مواضيع اليوم إشارة الأقسام مقروءة

مواقع صديقة: تعلم البي اتش بي - تصميم نت - أفضل استضافة


عودة   منتدى بي اتش بي PHP > قسم لغة بي اتش بي PHP LANGUAGE > دروس بي اتش بي PHP Lessons > دروس متقدمة

دروس متقدمة دروس وأكواد متقدمة لتعليم (بي اتش بي) PHP مستوى متقدم


إضافة رد
 
LinkBack أدوات الموضوع طريقة العرض
قديم 25-06-2007, 03:50 AM   #1 (permalink)
مطور منتديات mysmartbb
 
تاريخ الانتساب: 22-05-2007
المكان: Syria
مشاركات: 280
مستوى السمعة : 2
ايهاب الغزال على طريق التميز و النجاح
إرسال خطاب MSN إلى ايهاب الغزال إرسال خطاب Yahoo إلى ايهاب الغزال مخاطبة ايهاب الغزال بواسطة برنامج المحادثة سكايب ( Skype )
افتراضي من هنا نبدأ البرمجة من هذه املفات انطلق

السلام عليكم ورحمة الله وبركاته.

أما بعد :

سنتعلم اليوم إن شاء الله كيفية عمل منطقة الأعضاء (تسجيل وتسجيل دخول).

أول شيء يجب أن ننشأ جدول في قاعدة بيانات لنخزن فيه معلومات الأعضاء.

وهذه هيكلية الجدول :

كود PHP:
CREATE TABLE `members` (
`
idINT10 NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`
login_nameVARCHAR255 NOT NULL ,
`
passwordVARCHAR255 NOT NULL 
ENGINE MYISAM 

وقد جعلنا الـ id زيادة تلقائية أي أنه يضيف رقم واحد فوق آخر رقم تم تسجيله.
يعني أننا عند تسجيل أول عضو نمرر له القيمة NULL وسيتم إضافة الرقم "1" تلقائياً.

لتسجيل الأعضاء ننشىء واجهة(Form) للمعلومات :


كود هتمل:
<html dir="rtl">
<head>
<title>تسجيل عضو جديد</title>
</head>
<body>
<form name="register" method="POST" action="signup.php">
<div align="center">
<table border="1" width="50%" cellpadding="0" bordercolorlight="#C0C0C0" bordercolordark="#008000" style="border-collapse: collapse">
<tr>
<td align="center" colspan="2" bgcolor="#00FF00"><b>تسجيل</b></td>
</tr>
<tr >
<td align="center">اسم الدخول</td>
<td align="center"><input type="text" name="loginname"></td>
</tr>
<tr>
<td align="center">كلمة المرور</td>
<td align="center"><input type="password" name="pw"></td>
</tr>
<tr >
<td align="center">تأكيد كلمة المرور</td>
<td align="center"><input type="password" name="re_pw"></td>
</tr>
<tr>
<td align="center" colspan="2"><input type="submit" value="تسجيل"></td>
</tr>
</table>
</div>
</body>
</form>
</html> 
الآن قمنا بإدخال المعلومات في الواجهة وضغطنا زر تسجيل سيتم إرسال المعلومات لملف الـ signup.php كوننا حددنا الهدف في إعدادات الواجهة :


كود PHP:
<form name="register" method="POST" action="signup.php"

في النمط ارسال البيانات المخفي POST.

والأن نأتي لملف الـ signup.php :
ترسل محتويات الواجهة على شكل مصفوفة تتمثل في المتغير POST_$ الذي يحوي على المعلومات المرسلة من أي واجهة بنمط الإرسال المخفي.

معنى مصفوفة أي انها تحوي بداخلها على المعلومات فمثلاً لو أردنا الوصول إلى الحقل loginname نكتب المتغير POST_$ ثم العنصر الذي نريد قيمته وهو loginname كالتالي :


كود PHP:
$_POST["loginname"
الآن أول شيء نعمله الآن هو التأكد من أن الحقول المرسلة من الواجهة ليست فارغة :

كود PHP:
if (empty($_POST["loginname"]) or empty($_POST["pw"]) or empty($_POST["re_pw"])) {
echo 
"الرجاء ملىء كافة الحقول";
exit;

الآن نتأكد من تطابق كلمة المرور مع تأكيدها :

كود PHP:
if ($_POST["pw"] != $_POST["re_pw"]) {
echo 
"لايوجد تطابق بي كلمة المرور وتأكيدها";
exit;

الإتصال بسيرفر قواعد بيانات الـ MySQL :

كود PHP:
$connect_h = @mysql_connect('SERVER','DB_USER','DB_PASSWORD') or die('لم يتم الإتصال بالسيرفر'); 
قمنا بلإتصال بقاعدة البيانات باستخدام الدالة @mysql_connect وإنشاء مقبض لإتصال connect_h$.
SERVER عنوان سيرفر قواعد البيانات غالباً يكون localhost
DB_USER اسم مستخدم قاعدة البيانات غالباً ماتكون root
DB_PASSWORD كلمة مرور مستخدم قاعدة البيانات في السيرفرات الشخصية غالباً تكون فارغة.


الآن نحدد قاعدة البيانات التي تحوي على جدول معلومات الأعضاء وهنا مثلاً هي MY_DB التي أنشأنا داخلها الجدول members في الأول أم أنك نسيته ؟؟؟!!!!!

كود PHP:
@mysql_select_db("MY_DB",$connect_h) or die('لم يتم تحديد قاعدة البيانات'); 

هنا حددنا قاعدة البيانات بواسطة الدالة mysql_select_db بإرسال اسم قاعدة البيانات الذي هو MY_DB ومقبض الإتصال بسيرفر الـ MySQL الذي هو connect_h$.


الآن نتأكد من أن اسم العضو المراد تسجيله غير مستخدم من قبل يتم كالتالي :

إنشاء استعلام عن اسم العضو في قاعدة البيانات :


كود PHP:
$m_sql "SELECT * FROM `members` WHERE login_name='"$_POST['loginname'] ."'"
هنا قمنا بجلب المعلومات عن طريق SELECT من جدول الـ members في حال WHERE اسم الدخول loginname يساوي اسم المراد التسجيل فيه ['POST['loginname_$.

تنفيذ الاستعلام في قاعدة البيانات :

كود PHP:
$m_query mysql_query($m_sql); 
في حال عدم تنفيذ الاستعلام بنجاح :

كود PHP:
if (!$m_query) {
echo 
"حدث خطأ أثناء تنفيذ استعلام التأكد من اسم العضو وهو التالي : ".mysql_error();
exit;

في حال نجاح الاستعلام نتأكد من عدد النتائج التي طابقت الشرط


كود PHP:
$m_rows_count mysql_num_rows($m_query); 
إذا كان هناك أحد أو بمعنى آخر في حال كانت النتائج لا أكبر من الصفر يعني أن الاسم مستخدم من قبل :

كود PHP:
if ($m_rows_count 0) {
echo 
"الإسم المحدد موجود مسبقاً";
exit;


في حال عدم وجود أحد بهذا الإسم

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


كود PHP:
$PassWord md5($_POST["pw"]); 
تقوم الدالة md5 بتشفير النص المرسل لها مهما كان طوله إلى سلسلة من 32 محرف وقليلون جداً جداً من استطاع فك تشفيرها.


الآن ننشأ الإستعلام لإدراج العضو الجديد :

كود PHP:
$sql "insert into `members` (`id`,`login_name`,`password`) values ('NULL','"$_POST['loginname'] ."','$PassWord')"
ننتبه لأشرطة التحديد العلوية المفردة المائلة لتحديد اسم قاعدة البيانات واسم الحقول المراد إدراج المعلومات داخلها.

الآن بعد أن أنشأنا الإستعلام يجب أن ننفذه عن طريق الدالة mysql_query :

كود PHP:
$query mysql_query($sql); 
الآن نتحقق من أن الإستعلام قد نفذ بشكل صحيح :


كود PHP:
if (!$query) {
echo 
"حدث خطأ أثناء تنفيذ استعلام إدراج البيانات التالي : ".mysql_error();
exit;

في حال نجاح الإستعلام :


كود PHP:
echo "تم التسجيل بنجاح.<br />أهلاً بك يا <b>"$_POST['loginname']."</b> معنا"

الآن انتهينا من التسجيل :

كيف نعمل دخول للعضو المسجل :

أول شيء نعمل واجهة لإدخال المعلومات :

كود هتمل:
<html dir="rtl">
<head>
<title>دخول</title>
</head>
<body>
<form name="login" method="POST" action="login.php">
<div align="center">
<table border="1" width="50%" cellpadding="0" bordercolorlight="#C0C0C0" bordercolordark="#008000" style="border-collapse: collapse">
<tr>
<td align="center" colspan="2" bgcolor="#00FF00"><b>دخول</b></td>
</tr>
<tr >
<td align="center">اسم الدخول</td>
<td align="center"><input type="text" name="loginname"></td>
</tr>
<tr>
<td align="center">كلمة المرور</td>
<td align="center"><input type="password" name="pw"></td>
</tr>
<tr>
<td align="center" colspan="2"><input type="submit" value="دخول"></td>
</tr>
</table>
</div>
</body>
</form>
</html> 
الآن قمنا بإدخال المعلومات في الواجهة وضغطنا زر تسجيل سيتم إرسال المعلومات لملف الـ login.php كوننا حددنا الهدف في إعدادات الواجهة

كود PHP:
<form name="login" method="POST" action="login.php"
في النمط ارسال البيانات المخفي POST.

والأن نأتي لملف الـ login.php :
وسترسل المعلومات عن طريق المصفوفة POST_$ كما شرحنا في الأول.

الآن أول شيء نعمله كالعادة هو التأكد من أن الحقول المرسلة من الواجهة ليست فارغة :


كود PHP:
if (empty($_POST["loginname"]) or empty($_POST["pw"])) {
echo 
"الرجاء ملىء كافة الحقول";
exit;

قوم بتشفير كلمة المرور بواسطة الدالة md5 لمقارنتها في قاعدة البيانات :

كود PHP:
$PassWord md5($_POST["pw"]); 

الإتصال بسيرفر قواعد بيانات الـ MySQL :

كود PHP:
$connect_h = @mysql_connect('SERVER','DB_USER','DB_PASSWORD') or die('لم يتم الإتصال بالسيرفر'); 
قمنا بلإتصال بقاعدة البيانات باستخدام الدالة @mysql_connect وإنشاء مقبض لإتصال connect_h$.
SERVER عنوان سيرفر قواعد البيانات غالباً يكون localhost
DB_USER اسم مستخدم قاعدة البيانات غالباً ماتكون root
DB_PASSWORD كلمة مرور مستخدم قاعدة البيانات في السيرفرات الشخصية غالباً تكون فارغة.


الآن نحدد قاعدة البيانات التي تحوي على جدول معلومات الأعضاء وهنا مثلاً هي MY_DB التي أنشأنا داخلها الجدول members في الأول أم أنك نسيته ؟؟؟!!!!!



كود PHP:
@mysql_select_db("MY_DB",$connect_h) or die('لم يتم تحديد قاعدة البيانات'); 

هنا حددنا قاعدة البيانات بواسطة الدالة mysql_select_db بإرسال اسم قاعدة البيانات الذي هو MY_DB ومقبض الإتصال بسيرفر الـ MySQL الذي هو connect_h$.


إنشاء استعلام للتأكد من وجود العضو ومطابقة البيانات المرسلة مع الموجودة في قاعدة البيانات :


كود PHP:
$m_sql "SELECT * FROM `members` WHERE login_name='"$_POST['loginname'] ."' and password='$PassWord '"
هنا قمنا بجلب المعلومات عن طريق SELECT من جدول الـ members في حال WHERE اسم الدخول loginname يساوي اسم المرسل $_POST['loginname'] و كلمة المرور الموجودة في قاعدة البيانات password تساوي كلمة المرور المشفرة المرسلة $PassWord.

تنفيذ الاستعلام في قاعدة البيانات :


كود PHP:
$m_query mysql_query($m_sql); 
في حال عدم تنفيذ الاستعلام بنجاح :

كود PHP:
if (!$m_query) {
echo 
"حدث خطأ أثناء تنفيذ استعلام التأكد من اسم العضو وكلمة المرور وهو التالي : ".mysql_error();
exit;

في حال نجاح الاستعلام نتأكد من عدد النتائج التي طابقت الشرط


كود PHP:
$m_rows_count mysql_num_rows($m_query); 

في حال عدم وجود أي نتائج تطابق الشروط نستنتج أن العضو إما غير مسجل أو أن البيانات التي قام بإدخالها غير صحيحة ولكننا نكتفي بأن نخبره بأن اسم الدخول أو كلمة المرور غير صحيحة


كود PHP:
if ($m_rows_count <= 0) {
echo 
"اسم الدخول أو كلمة المرور غير صحيحة";
exit;


في حال وجود نتائج

هنا نضع الذي نريده إذا كنا نستخدم الكوكيز ننشأها أو الجلسات نقوم بإنشاءها ومن ثم ننتقل للصفحة الرئيسية


وفي حال كان هناك اي استفسار أنا جاهز.


اريد ان ارى اعمالكم فور انتهائكم من قراءة الدرس
ولاتنسونا من صالح الدعاء بظهر الغيب.


والله ولي التوفيق.


اخوكم


ايهاب الغزال
__________________

AJAX with PHP Soon
ايهاب الغزال غير متصل   رد مع اقتباس
قديم 25-06-2007, 07:26 AM   #2 (permalink)
عضو فعال
 
تاريخ الانتساب: 08-06-2007
المكان: السعودية
مشاركات: 231
مستوى السمعة : 2
ff5006 على طريق التميز و النجاح
افتراضي رد : من هنا نبدأ البرمجة من هذه املفات انطلق

ماشاء الله ...

يصراحة درس احترافي وفريد من نوعه

الله يجزاك خير.
__________________
:: php(); ::
ff5006 غير متصل   رد مع اقتباس
قديم 25-06-2007, 03:20 PM   #3 (permalink)
عضو فعال
 
تاريخ الانتساب: 10-02-2007
المكان: aLGERIA
مشاركات: 473
مشاركات المدونة: 2
مستوى السمعة : 2
aMINE سيحقق الشهرة بما فيه الكفاية قريباً
افتراضي رد : من هنا نبدأ البرمجة من هذه املفات انطلق

السلام عليكم ...

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

تحيتي ...
aMINE غير متصل   رد مع اقتباس
قديم 26-06-2007, 08:32 PM   #4 (permalink)
عضو فعال
 
تاريخ الانتساب: 08-06-2007
المكان: السعودية
مشاركات: 231
مستوى السمعة : 2
ff5006 على طريق التميز و النجاح
افتراضي رد : من هنا نبدأ البرمجة من هذه املفات انطلق

نعم اخوي ايهاب لو تتكرم وتشرح الكوكيز نكون شاكرين لك .
__________________
:: php(); ::
ff5006 غير متصل   رد مع اقتباس
قديم 27-06-2007, 01:57 AM   #5 (permalink)
* أبو عمر *
 
الصورة الرمزية لـ coder
 
تاريخ الانتساب: 24-12-2006
المكان: مصر
السن: 30
مشاركات: 1,773
مشاركات المدونة: 2
مستوى السمعة : 10
coder على طريق التميز و النجاح
افتراضي رد : من هنا نبدأ البرمجة من هذه املفات انطلق

ماشاء الله مجموعة دروس مش درس واحد

تستحق كل التقدير والتحية أخي ايهاب
__________________
لضمان رد سريع على استفسارك أو موضوعك
* تأكد من البحث في المنتدى قبل أن تسأل
* احرص على أن تنتقي العنوان المناسب لموضوعك أو سؤالك
* قم بصياغة سؤالك بطريقة واضحة مع ذكر تجربتك ومكان الخطأ فيها
coder غير متصل   رد مع اقتباس
قديم 27-06-2007, 01:09 PM   #6 (permalink)
عضو جديد
 
تاريخ الانتساب: 26-06-2007
مشاركات: 3
مستوى السمعة : 0
قيدالأرض على طريق التميز و النجاح
افتراضي رد : من هنا نبدأ البرمجة من هذه املفات انطلق

السلام عليكم

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

ماذا افعل ؟
قيدالأرض غير متصل   رد مع اقتباس
قديم 01-07-2007, 10:09 AM   #7 (permalink)
عضو جديد
 
الصورة الرمزية لـ nizarriddah
 
تاريخ الانتساب: 01-07-2007
مشاركات: 26
مستوى السمعة : 0
nizarriddah على طريق التميز و النجاح
افتراضي رد : من هنا نبدأ البرمجة من هذه املفات انطلق

اقتباس:
الكاتب : قيدالأرض عرض المشاركة
السلام عليكم

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

ماذا افعل ؟
تسلم يدك ولسانك على هذا الدرس الاحترافي وفقك الله وزادك من علمه .

وعندي اقتراح لو تحضر لنا درس عن دوال إرسال الإيميل وفورم ال HTML مع ملف PHP
يشرح كيف يتم إرسال Name - Email - Subject - Message
ونحن لكم من الشاكرين
nizarriddah غير متصل   رد مع اقتباس
قديم 01-07-2007, 10:12 AM   #8 (permalink)
عضو جديد
 
الصورة الرمزية لـ nizarriddah
 
تاريخ الانتساب: 01-07-2007
مشاركات: 26
مستوى السمعة : 0
nizarriddah على طريق التميز و النجاح
افتراضي رد : من هنا نبدأ البرمجة من هذه املفات انطلق

اقتباس:
الكاتب : ايهاب الغزال عرض المشاركة
السلام عليكم ورحمة الله وبركاته.

أما بعد :

سنتعلم اليوم إن شاء الله كيفية عمل منطقة الأعضاء (تسجيل وتسجيل دخول).

أول شيء يجب أن ننشأ جدول في قاعدة بيانات لنخزن فيه معلومات الأعضاء.

وهذه هيكلية الجدول :

كود PHP:
CREATE TABLE `members` (
`
idINT10 NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`
login_nameVARCHAR255 NOT NULL ,
`
passwordVARCHAR255 NOT NULL 
ENGINE MYISAM 

وقد جعلنا الـ id زيادة تلقائية أي أنه يضيف رقم واحد فوق آخر رقم تم تسجيله.
يعني أننا عند تسجيل أول عضو نمرر له القيمة NULL وسيتم إضافة الرقم "1" تلقائياً.

لتسجيل الأعضاء ننشىء واجهة(Form) للمعلومات :


كود هتمل:
<html dir="rtl">
<head>
<title>تسجيل عضو جديد</title>
</head>
<body>
<form name="register" method="POST" action="signup.php">
<div align="center">
<table border="1" width="50%" cellpadding="0" bordercolorlight="#C0C0C0" bordercolordark="#008000" style="border-collapse: collapse">
<tr>
<td align="center" colspan="2" bgcolor="#00FF00"><b>تسجيل</b></td>
</tr>
<tr >
<td align="center">اسم الدخول</td>
<td align="center"><input type="text" name="loginname"></td>
</tr>
<tr>
<td align="center">كلمة المرور</td>
<td align="center"><input type="password" name="pw"></td>
</tr>
<tr >
<td align="center">تأكيد كلمة المرور</td>
<td align="center"><input type="password" name="re_pw"></td>
</tr>
<tr>
<td align="center" colspan="2"><input type="submit" value="تسجيل"></td>
</tr>
</table>
</div>
</body>
</form>
</html> 
الآن قمنا بإدخال المعلومات في الواجهة وضغطنا زر تسجيل سيتم إرسال المعلومات لملف الـ signup.php كوننا حددنا الهدف في إعدادات الواجهة :


كود PHP:
<form name="register" method="POST" action="signup.php"

في النمط ارسال البيانات المخفي POST.

والأن نأتي لملف الـ signup.php :
ترسل محتويات الواجهة على شكل مصفوفة تتمثل في المتغير POST_$ الذي يحوي على المعلومات المرسلة من أي واجهة بنمط الإرسال المخفي.

معنى مصفوفة أي انها تحوي بداخلها على المعلومات فمثلاً لو أردنا الوصول إلى الحقل loginname نكتب المتغير POST_$ ثم العنصر الذي نريد قيمته وهو loginname كالتالي :


كود PHP:
$_POST["loginname"
الآن أول شيء نعمله الآن هو التأكد من أن الحقول المرسلة من الواجهة ليست فارغة :

كود PHP:
if (empty($_POST["loginname"]) or empty($_POST["pw"]) or empty($_POST["re_pw"])) {
echo 
"الرجاء ملىء كافة الحقول";
exit;

الآن نتأكد من تطابق كلمة المرور مع تأكيدها :

كود PHP:
if ($_POST["pw"] != $_POST["re_pw"]) {
echo 
"لايوجد تطابق بي كلمة المرور وتأكيدها";
exit;

الإتصال بسيرفر قواعد بيانات الـ MySQL :

كود PHP:
$connect_h = @mysql_connect('SERVER','DB_USER','DB_PASSWORD') or die('لم يتم الإتصال بالسيرفر'); 
قمنا بلإتصال بقاعدة البيانات باستخدام الدالة @mysql_connect وإنشاء مقبض لإتصال connect_h$.
SERVER عنوان سيرفر قواعد البيانات غالباً يكون localhost
DB_USER اسم مستخدم قاعدة البيانات غالباً ماتكون root
DB_PASSWORD كلمة مرور مستخدم قاعدة البيانات في السيرفرات الشخصية غالباً تكون فارغة.


الآن نحدد قاعدة البيانات التي تحوي على جدول معلومات الأعضاء وهنا مثلاً هي MY_DB التي أنشأنا داخلها الجدول members في الأول أم أنك نسيته ؟؟؟!!!!!

كود PHP:
@mysql_select_db("MY_DB",$connect_h) or die('لم يتم تحديد قاعدة البيانات'); 

هنا حددنا قاعدة البيانات بواسطة الدالة mysql_select_db بإرسال اسم قاعدة البيانات الذي هو MY_DB ومقبض الإتصال بسيرفر الـ MySQL الذي هو connect_h$.


الآن نتأكد من أن اسم العضو المراد تسجيله غير مستخدم من قبل يتم كالتالي :

إنشاء استعلام عن اسم العضو في قاعدة البيانات :


كود PHP:
$m_sql "SELECT * FROM `members` WHERE login_name='"$_POST['loginname'] ."'"
هنا قمنا بجلب المعلومات عن طريق SELECT من جدول الـ members في حال WHERE اسم الدخول loginname يساوي اسم المراد التسجيل فيه ['POST['loginname_$.

تنفيذ الاستعلام في قاعدة البيانات :

كود PHP:
$m_query mysql_query($m_sql); 
في حال عدم تنفيذ الاستعلام بنجاح :

كود PHP:
if (!$m_query) {
echo 
"حدث خطأ أثناء تنفيذ استعلام التأكد من اسم العضو وهو التالي : ".mysql_error();
exit;

في حال نجاح الاستعلام نتأكد من عدد النتائج التي طابقت الشرط


كود PHP:
$m_rows_count mysql_num_rows($m_query); 
إذا كان هناك أحد أو بمعنى آخر في حال كانت النتائج لا أكبر من الصفر يعني أن الاسم مستخدم من قبل :

كود PHP:
if ($m_rows_count 0) {
echo 
"الإسم المحدد موجود مسبقاً";
exit;


في حال عدم وجود أحد بهذا الإسم

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


كود PHP:
$PassWord md5($_POST["pw"]); 
تقوم الدالة md5 بتشفير النص المرسل لها مهما كان طوله إلى سلسلة من 32 محرف وقليلون جداً جداً من استطاع فك تشفيرها.


الآن ننشأ الإستعلام لإدراج العضو الجديد :

كود PHP:
$sql "insert into `members` (`id`,`login_name`,`password`) values ('NULL','"$_POST['loginname'] ."','$PassWord')"
ننتبه لأشرطة التحديد العلوية المفردة المائلة لتحديد اسم قاعدة البيانات واسم الحقول المراد إدراج المعلومات داخلها.

الآن بعد أن أنشأنا الإستعلام يجب أن ننفذه عن طريق الدالة mysql_query :

كود PHP:
$query mysql_query($sql); 
الآن نتحقق من أن الإستعلام قد نفذ بشكل صحيح :


كود PHP:
if (!$query) {
echo 
"حدث خطأ أثناء تنفيذ استعلام إدراج البيانات التالي : ".mysql_error();
exit;

في حال نجاح الإستعلام :


كود PHP:
echo "تم التسجيل بنجاح.<br />أهلاً بك يا <b>"$_POST['loginname']."</b> معنا"

الآن انتهينا من التسجيل :

كيف نعمل دخول للعضو المسجل :

أول شيء نعمل واجهة لإدخال المعلومات :

كود هتمل:
<html dir="rtl">
<head>
<title>دخول</title>
</head>
<body>
<form name="login" method="POST" action="login.php">
<div align="center">
<table border="1" width="50%" cellpadding="0" bordercolorlight="#C0C0C0" bordercolordark="#008000" style="border-collapse: collapse">
<tr>
<td align="center" colspan="2" bgcolor="#00FF00"><b>دخول</b></td>
</tr>
<tr >
<td align="center">اسم الدخول</td>
<td align="center"><input type="text" name="loginname"></td>
</tr>
<tr>
<td align="center">كلمة المرور</td>
<td align="center"><input type="password" name="pw"></td>
</tr>
<tr>
<td align="center" colspan="2"><input type="submit" value="دخول"></td>
</tr>
</table>
</div>
</body>
</form>
</html> 
الآن قمنا بإدخال المعلومات في الواجهة وضغطنا زر تسجيل سيتم إرسال المعلومات لملف الـ login.php كوننا حددنا الهدف في إعدادات الواجهة

كود PHP:
<form name="login" method="POST" action="login.php"
في النمط ارسال البيانات المخفي POST.

والأن نأتي لملف الـ login.php :
وسترسل المعلومات عن طريق المصفوفة POST_$ كما شرحنا في الأول.

الآن أول شيء نعمله كالعادة هو التأكد من أن الحقول المرسلة من الواجهة ليست فارغة :


كود PHP:
if (empty($_POST["loginname"]) or empty($_POST["pw"])) {
echo 
"الرجاء ملىء كافة الحقول";
exit;

قوم بتشفير كلمة المرور بواسطة الدالة md5 لمقارنتها في قاعدة البيانات :

كود PHP:
$PassWord md5($_POST["pw"]); 

الإتصال بسيرفر قواعد بيانات الـ MySQL :

كود PHP:
$connect_h = @mysql_connect('SERVER','DB_USER','DB_PASSWORD') or die('لم يتم الإتصال بالسيرفر'); 
قمنا بلإتصال بقاعدة البيانات باستخدام الدالة @mysql_connect وإنشاء مقبض لإتصال connect_h$.
SERVER عنوان سيرفر قواعد البيانات غالباً يكون localhost
DB_USER اسم مستخدم قاعدة البيانات غالباً ماتكون root
DB_PASSWORD كلمة مرور مستخدم قاعدة البيانات في السيرفرات الشخصية غالباً تكون فارغة.


الآن نحدد قاعدة البيانات التي تحوي على جدول معلومات الأعضاء وهنا مثلاً هي MY_DB التي أنشأنا داخلها الجدول members في الأول أم أنك نسيته ؟؟؟!!!!!



كود PHP:
@mysql_select_db("MY_DB",$connect_h) or die('لم يتم تحديد قاعدة البيانات'); 

هنا حددنا قاعدة البيانات بواسطة الدالة mysql_select_db بإرسال اسم قاعدة البيانات الذي هو MY_DB ومقبض الإتصال بسيرفر الـ MySQL الذي هو connect_h$.


إنشاء استعلام للتأكد من وجود العضو ومطابقة البيانات المرسلة مع الموجودة في قاعدة البيانات :


كود PHP:
$m_sql "SELECT * FROM `members` WHERE login_name='"$_POST['loginname'] ."' and password='$PassWord '"
هنا قمنا بجلب المعلومات عن طريق SELECT من جدول الـ members في حال WHERE اسم الدخول loginname يساوي اسم المرسل $_POST['loginname'] و كلمة المرور الموجودة في قاعدة البيانات password تساوي كلمة المرور المشفرة المرسلة $PassWord.

تنفيذ الاستعلام في قاعدة البيانات :


كود PHP:
$m_query mysql_query($m_sql); 
في حال عدم تنفيذ الاستعلام بنجاح :

كود PHP:
if (!$m_query) {
echo 
"حدث خطأ أثناء تنفيذ استعلام التأكد من اسم العضو وكلمة المرور وهو التالي : ".mysql_error();
exit;

في حال نجاح الاستعلام نتأكد من عدد النتائج التي طابقت الشرط


كود PHP:
$m_rows_count mysql_num_rows($m_query); 

في حال عدم وجود أي نتائج تطابق الشروط نستنتج أن العضو إما غير مسجل أو أن البيانات التي قام بإدخالها غير صحيحة ولكننا نكتفي بأن نخبره بأن اسم الدخول أو كلمة المرور غير صحيحة


كود PHP:
if ($m_rows_count <= 0) {
echo 
"اسم الدخول أو كلمة المرور غير صحيحة";
exit;


في حال وجود نتائج

هنا نضع الذي نريده إذا كنا نستخدم الكوكيز ننشأها أو الجلسات نقوم بإنشاءها ومن ثم ننتقل للصفحة الرئيسية


وفي حال كان هناك اي استفسار أنا جاهز.


اريد ان ارى اعمالكم فور انتهائكم من قراءة الدرس
ولاتنسونا من صالح الدعاء بظهر الغيب.


والله ولي التوفيق.


اخوكم


ايهاب الغزال
تسلم يدك ولسانك على هذا الدرس الاحترافي وفقك الله وزادك من علمه .

وعندي اقتراح لو تحضر لنا درس عن دوال إرسال الإيميل وفورم ال HTML مع ملف PHP
يشرح كيف يتم إرسال Name - Email - Subject - Message
ونحن لكم من الشاكرين

عذرا أرسلت هذا الرد للعضوقيد الارض بالخطأ وفق الله الجميع
nizarriddah غير متصل   رد مع اقتباس
قديم 22-07-2007, 04:41 PM   #9 (permalink)
عضو جديد
 
تاريخ الانتساب: 25-06-2007
مشاركات: 19
مستوى السمعة : 0
قمـ14ـر على طريق التميز و النجاح
افتراضي رد : من هنا نبدأ البرمجة من هذه املفات انطلق

السلام عليكم ورحمة الله وبركاته

درس جدا سلس ومفيد

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

وجعله في موازين حسناتك

تقبل تحياتي
قمـ14ـر غير متصل   رد مع اقتباس
قديم 30-08-2007, 08:57 PM   #10 (permalink)
عضو جديد
 
تاريخ الانتساب: 30-08-2007
مشاركات: 14
مستوى السمعة : 0
طالب علم على طريق التميز و النجاح
افتراضي رد : من هنا نبدأ البرمجة من هذه املفات انطلق

عزيزي لم يعمل معي

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


زوار هذا الموضوع الآن : 1 (0 عضو و 1 ضيف)
 

(View-All Members who have read this thread : 84