الرئيسية > برمجة > نموذج تسجيل و تفعيل التسجيل عبر البريد الإلكتروني

نموذج تسجيل و تفعيل التسجيل عبر البريد الإلكتروني


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

اليوم سنتعرف على طريقة التسجيل مع تفعيله عبر البريد الإلكتروني مثل ماهو موجود في المنتديات حيث النموذج الخاص بنا سيكون بسيط يحمل 4 حقول و هي كالآتي :
user : هذا لإسم المستخدم .
pass : لكلمة السر .
email : للبريد الإلكتروني .
أما الحقل الرابع فهو لنموذج التسجيل حتى نستخدمه في عملية التحقق من أن النموذج
تم إرسال البيانات عبره أم لا لأنه لو إستخدمنا المتغير submit فهذا يجعل نموذجنا لا يعمل مع internet Explorer مع بعض المشاكل في المتصفحات الأخرى .
النموذج واضح إن شاء الله فقط في السطر 10 تلاحظون إسم الحقل الخفي action مع قيمة register حيث هذه سنستعملها في التحقق من النموذج .
قاعدة البيانات الخاصة بنا ستكون كالآتي :

CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL auto_increment,
`user` varchar(25) NOT NULL,
`password` varchar(25) NOT NULL,
`email` varchar(25) NOT NULL,
`code` varchar(50) NOT NULL,
`status` int(11) NOT NULL default ‘0’,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

user : هو إسم المستخدم
password : كلمة السر
email : البريد الإلكتروني
code : هذا الحقل نضع فيه كلمة التفعيل التي ستكون عبارة عن تشفير لإسم المستخدم .
status : هذا الحقل سيحمل قيمة 0 مع كل مستخدم جديد دلالة على أن المستخدم غير مفعل حسابه أما لو كان حسابه مفعل فسيحمل القيمة 1 .
dd
في السطر 16 نقوم بالتحقق من أن النموذج تم إرساله و ذلك بمعرفة إن المتغير action يحمل قيمة أم لا بإستخدام الدالة isset التي ترجع true في حالة إن كان المتغير يحمل قيمة .
الأسطر 17-19 هي إستقبال للبيانات من النموذج أما 21-22 فهي إتصال بقاعدة البيانات .
السطر 23 هو إستعلام يرجع لنا حقل في حالة تحقق الشرط حيث أن شرطنا هو وجود عضو بنفس الإسم الذي إستقبلناه من النموذج أما السطر 24 فهو إستخدام الدالة mysql_num_row التي تعيد لنا عدد الحقول من نتيجة إستعلام ،الهدف من هذا هو معرفة إن كان يوجد عضو مسجل أصلا بهذا الإسم حتى نمنع منع التسجيل بنفس الإسم .
في حالة أرجع لنا الإستعلام حقلا فهذا يعني أن الإسم محجوز فنخبر العضو الجديد بإن هذا محجوز في السطر 27 (مسكين :D) بعدها نوقف عمل السكريبت في السطر 29 .
أما إن كان العكس (عدم إرجاع أي حقل من الإستعلام) فهذا يعني أنه محظوظ فنقوم بتوليد كلمة عشوائية في السطر 29 إنطلاقا من إسم المستخدم وذلك بتشفيرها بعدها نقوم بإضافة البيانات في السطر 32 لاحظوا أن الحقل status لم أقم بإضافة قيمة له ذلك أنه عند إضافة كل مستخدم جديد ستكون معه قيمة إبتدائية و هي 0 التي تعني أنه غير مفعل السبب في هذا هو الكسل في زيادة طول الإستعلام .
السطر 34 إستخدمنا فيه الدلة mysql_insert_id التي مهمتها إرجاع قيمة ال id الذي تم إنشائه في قاعدة البيانات من آخر إستعلام حيث هذا سيكون id آخر مستخدم قام بالتسجيل .
السطر 36 ننشيء فيه رابط يكون كالآتي : confirm.php?id=$id&code=$activation
حيث confirm.php ستكون الصفحة التي نقوم فيها بتفعيل الحساب ،id سيحمل رقما يعبر عن مستخدم في القاعدة أخيرا code هو رقم التفعيل .
السطر 37 هو الرسالة التي سترسل إلى بريد العضو للتفعيل أما السطر 38 فهو إرسال الرسالة إلى العضو بإستخدام الدالة mail التي تأخذ 3 وسائط ،الأولى البريد المرسل إليه في حالتنا بريد من قام بالتسجيل بعدها عنوان الرسالة أكيد ستكون تفعيل حساب أخيرا محتوى الرسالة التي ستحتوي على رابط التفعيل للمستخدم .
ملاحظة : الدالة mail تحمل أكثر من 3 وسائط لكن عادة نستخدم 3 الوسائط الأولى فقط .
dd
صفحة تفعيل التسجيل ستكون بسيطة أولا سنستقبل البيانات id الخاص بالعضو و رمز التفعيل حيث قمنا أولا بالتحقق من أن هذه المتغيرات تحمل قيمة في السطر 9 كما ترون .
السطر 11 للإتصال بالقاعدة و 12 لإختيار قاعدة البيانات أم السطر 13 فهو إستعلام نقوم بالبحث في قاعدة البيانات
عن هذا العضو ،بعدها في السطر 14 إن كان الإستعلام رد لنا حقلا واحد فهذا يعني أن العضو موجود فنقوم بتغيير حالته من غير مفعل إلى مفعل و ذلك بتحديث قيمة الحقل status من 0 إلى 1 ، الباقي معروف .
ملاحظة : الشرح مختصر بعض الشيء و ذلك على فرض أن القاريء لديه معرفة بسيطة بقواعد البيانات .

التصنيفات :برمجة
  1. 19 فبراير 2010 الساعة 12:39 ص

    هل الكود في الصورة الاولى كامل؟

    لانه يبدو ان هناك سطر رقم 41

    لكنه غير ظاهر

    ارجو ادراج الكود كامل

    شكرا

  2. 20 فبراير 2010 الساعة 3:14 م

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

  3. رمز الامان ارجو ارسالة على ايميلي
    26 يوليو 2012 الساعة 9:26 ص

    هاتفي مسروق ورقم هاتفي مسروق
    ولا استطيع فتح حسابي بسبب عدم حصولي على رمز الامان
    برجاء ارسال رمز الامان على ايميلي mean.hussam@yahoo.com
    ورقم هاتفي الجديد هو 021154090190

  1. 24 أغسطس 2009 الساعة 11:27 م

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

%d مدونون معجبون بهذه: