الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

بدأه obada.saada في 15 أبريل 2014 · 0 رد · 2,325 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1

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

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

هذا هو الموضوع الاول لي في قسم لغة 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>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Submit"> &nbsp;
<input type="reset" name="Reset" value="Reset"></td>
</tr>
</table>
</form></td>
</tr>
</table>

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

 

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

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

2.png

<?php

include('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

<?php

include('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

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…