• 0
obada.saada

تسجيل مستخدم جديد والتحقق من البريد الالكتروني خطوة بخطوة

سؤال

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

السلام عليكم اخواني

هذا هو الموضوع الاول لي في قسم لغة PHP  وليس الاخير بإذن الله

بعد تتبعي للقسم ولمواضيعه وجدت ان المواضيع المطروحة في لغة PHP  قليلة جدا وتحتاج الى نشاط وتفاعل اكثر، فإذا كنت تملك علما لما لا تشاركه مع غيرك ليتعلموا منك وتتعلم منهم وتعم الفائدة على الجميع

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

 

لنبدأ بالخطوات

 

الصفحات اللازمة:

 

1. signup.php
2. signup_ac.php
3. confirmation.php

4. config.php

 

قواعد البيانات:

 

1. temp_members_db
2. registered_members

 

المتطلبات:

  1. عند القيام بالتسجيل، هنالك مجموعه عشوائية من اكواد التفعيل.
  2. حفظ معلومات المستخدمين واكواد التفعيل في الجدول "temp_members_db"، بحيث انها افتراضية حتى يقوم المستخدم بتفعيل المعلومات بواسطة كود التفعيل وبعدها نقوم بنقل معلومات المستخدم الى الجدول "registered_members"
  3. بعد انهاء عملية التسجيل وحفظ البيانات في الجدول الافتراضي "temp_members_db" ارسال بريد الكتروني للمستخدم لتفعيل الحساب
  4. عندما يقوم المستخدم بالنقر على الوصلة المرسلة للبريد الالكتروني، يتم تفعيل الحساب (نقل الملفات من "temp_members_db" الى "registered_members" وحذف البيانات من "temp_members_db")

 

الخطوة الاولى : اضافة الجداول "temp_members_db" و "registered_members"

 

1.png

CREATE TABLE `temp_members_db` (`confirm_code` varchar(65) NOT NULL default '',`name` varchar(65) NOT NULL default '',`email` varchar(65) NOT NULL default '',`password` varchar(15) NOT NULL default '',`country` varchar(65) NOT NULL default '') ENGINE=MyISAM DEFAULT CHARSET=latin1;CREATE TABLE `registered_members` (`id` int(4) NOT NULL auto_increment,`name` varchar(65) NOT NULL default '',`email` varchar(65) NOT NULL default '',`password` varchar(65) NOT NULL default '',`country` varchar(65) NOT NULL default '',PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

الخطوة الثانية: بناء صفحة تسجيل الدخول signup.php

<table width="350" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td><form name="form1" method="post" action="signup_ac.php"><table width="100%" border="0" cellspacing="4" cellpadding="0"><tr><td colspan="3"><strong>Sign up</strong></td></tr><tr><td width="76">Name</td><td width="3">:</td><td width="305"><input name="name" type="text" id="name" size="30"></td></tr><tr><td>E-mail</td><td>:</td><td><input name="email" type="text" id="email" size="30"></td></tr><tr><td>password</td><td>:</td><td><input name="password" type="password" id="password" size="30"></td></tr><tr><td>Country</td><td>:</td><td><input name="country" type="text" id="country" size="30"></td></tr><tr><td> </td><td> </td><td><input type="submit" name="Submit" value="Submit">  <input type="reset" name="Reset" value="Reset"></td></tr></table></form></td></tr></table>

الخطوة الثالثة : اضافة المعلومات الى قاعدة البيانات signup_ac.php

 

في هذه الخطوة :

  1. اكواد تفعيل عشوائية
  2. اضافة المعلومات وكود التفعيل الى قاعدة البيانات
  3. ارسال بريد الكتروني للمستخدم ووصلة تفعيل الحساب

2.png

<?phpinclude('config.php');// اسم الجدول$tbl_name=temp_members_db;// كود تفعيل عشوائي$confirm_code=md5(uniqid(rand())); // البيانات المرسلة من الفورم$name=$_POST['name'];$email=$_POST['email'];$country=$_POST['country'];// اضافة المعلومات لقاعدة البيانات$sql="INSERT INTO $tbl_name(confirm_code, name, email, password, country)VALUES('$confirm_code', '$name', '$email', '$password', '$country')";$result=mysql_query($sql);// اذا نجحت عملية اضافة المعلومات سيتم ارسال بريد الكتروني يحتوي على كود التفعيلif($result){// ---------------- SEND MAIL FORM ----------------// البريد الالكتروني المرسل له ...$to=$email;// عنوان الرسالة المرسلة$subject="كود التفعيل المستخدم";// المرسل$header="from: اسمك او اسم الموقع <بريدك الاكتروني المستخدم للأرسال>";// نص الرسالة المرسلة$message="وصلة التفعيل الخاصة بك\r\n";$message.="اضغط على الوصلة التالية ليتم تفعيل حسابك\r\n";$message.="http://www.yourweb.com/confirmation.php?passkey=$confirm_code";//كود الارسال $sentmail = mail($to,$subject,$message,$header);}// اذا لم يتم العثور على البريد الالكتروني في قاعدة البياناتelse {echo "لم يتم ايجاد بريدك الالكتروني في قاعدة البيانات الخاصة بنا";}// اذا تم ارسال كود التفعيل بنجاحif($sentmail){echo "تم ارسال كود التفعيل لبريدك الالكتروني بنجاح, يرجى فتح الرسالة والضغط على الوصلة المرسلة لتفعيل حسابك";}else {echo "لقد فشلت عملية ارسال كود التفعيل لبريدك الالكتروني";}?>

الخطوة الرابعه: تفعيل الحساب confirmation.php

 

عندما يقوم المستخدم بتفقد بريده الالكتروني سيجد رسالة تحتوي على كود التفعيل

في هذه الخطوة:

  1. التأكد من passkey
  2. اذا كان الpasskey صحيحا يتم نقل البيانات الى قاعدة بيانات المستخدمين المفعلين
  3. حذف كود التفعيل من قاعدة البيانات

3.png

<?phpinclude('config.php');// كود التفعيل الذي سيتم استقباله من البريد الالكتروني   $passkey=$_GET['passkey'];$tbl_name1="temp_members_db";// احضار المعلومات من قاعدة البيانات في حال وجود كود التفعيل$sql1="SELECT * FROM $tbl_name1 WHERE confirm_code ='$passkey'";$result1=mysql_query($sql1);// في حال توفر المعلوماتif($result1){// ايجاد عدد الصفوف التي تحتوي على نفس كود التفعيل$count=mysql_num_rows($result1);// في حالة ايجاد البيانات في القاعدة وعدد الصفوف صحيح مساويا للعدد 1، اي بمعنى لا يوجد بريد الكتروني اخر يستخدم نفس الكودif($count==1){$rows=mysql_fetch_array($result1);$name=$rows['name'];$email=$rows['email'];$password=$rows['password'];$country=$rows['country']; $tbl_name2="registered_members";// نقل البيانات الى جدول الحسابات المفعلة$sql2="INSERT INTO $tbl_name2(name, email, password, country)VALUES('$name', '$email', '$password', '$country')";$result2=mysql_query($sql2);}// اذا لم يتم ايجاد كود التفعيل في قاعدة البيانات سنظهر رسالة للمستخدم بعدم وجودهelse {echo "كود تفعيل خاطئ";}// في حالة تم نقل البيانات من الجدول الافتراضي الى جدول الحسابات المفعلة سنظهر رسالة للمستخدم بنجاح العملية وانه بامكانه الدخول لحسابهif($result2){echo "لقد تم تفعيل حسابك يمكنك تسجيل الدخول الى حسابك الان";// حذف كود التفعيل من قاعدة البيانات المؤقته بعد تفعيل الحساب$sql3="DELETE FROM $tbl_name1 WHERE confirm_code = '$passkey'";$result3=mysql_query($sql3);}}?>

الخطوة الخامسة: اعدادات الموقع config.php

<?php$host="localhost"; // اسم السيرفر$username=""; // مستخدم السيرفر$password=""; // كلمة مرور المستخدم$db_name=""; // اسم قاعدة البيانات//الاتصال بقاعدة البياناتmysql_connect("$host", "$username", "$password")or die("لا يمكن الاتصال بقاعدة البيانات");mysql_select_db("$db_name")or die("لم يتم الوصول لقاعدة البيانات المحددة");?>

مع اطيب الامنيات ;)

 

 

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

0 إجابة على هذا السؤال .

لاتوجد إجابات على هذا السؤال حتى الآن .

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

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .