Advertisement
  1. Code
  2. PHP

كيفية رمز نموذج الاشتراك مع تأكيد البريد الإلكتروني 

Scroll to top
Read Time: 16 min

() translation by (you can also view the original English article)

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


الخطوة 1: القالب

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

فتح مجلد "قالب الموقع" ونسخة إلى أي ملقم مضيف محلي أو شبكة الإنترنت.

Open up index.php and take a quick look. سترى نموذج بسيط مع 3 المدخلات. هذه هي الحقول التي سنأسرها.  ونحن نريد اسم المستخدم وكلمة المرور الخاصة بهم، فضلا عن البريد الإلكتروني الخاصة بهم. يمكنك اختيار لالتقاط عناصر أخرى عند التوقيع المستخدمين، ولكن هذه العناصر المجردة 3 ونحن بحاجة إلى.

previewpreviewpreview

الخطوة 2: إعداد قاعدة بيانات MySQL 

افتح PHPMyAdmin أو أي برنامج تستخدمه لإدارة قاعدة بيانات MySQL وإنشاء قاعدة بيانات جديدة  يمكنك تسمية هذا كل ما تريد. الآن نريد إنشاء الصفوف التي تنوي عقد لدينا معلومات المستخدم وتأكيد المعلومات. ولهذا نحن إنشاء جدولين. المستخدمين وتأكيد. 

1
2
CREATE TABLE `users` (
3
  `id` int(11) NOT NULL auto_increment,
4
  `username` varchar(50) NOT NULL default '',
5
  `password` varchar(128) NOT NULL default '',
6
  `email` varchar(250) NOT NULL default '',
7
  `active` binary(1) NOT NULL default '0',
8
  PRIMARY KEY  (`id`)
9
) ENGINE=MyISAM AUTO_INCREMENT=27 DEFAULT CHARSET=utf8;

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

1
2
CREATE TABLE `confirm` (
3
  `id` int(11) NOT NULL auto_increment,
4
  `userid` varchar(128) NOT NULL default '',
5
  `key` varchar(128) NOT NULL default '',
6
  `email` varchar(250) default NULL,
7
  PRIMARY KEY  (`id`)
8
) ENGINE=MyISAM AUTO_INCREMENT=27 DEFAULT CHARSET=utf8;

جدولنا الثاني هو جدول التأكيد.  وهذا يحمل معرف المستخدم والبريد الإلكتروني، فضلا عن مفتاح تم إنشاؤه عشوائياً التي سوف نستخدمها للتأكد من حساب المستخدمين.


الخطوة 3: الاتصال بقاعدة بيانات MySQL

فتح inc/php/config.php.

نحتاج أولاً إلى جعل الاتصال بقاعدة البيانات. 

1
2
mysql_connect('localhost', 'username', 'password') or die("I couldn't connect to your database, please make sure your info is correct!");

اعتماداً على الإعداد الخاص بك، نحن ذاهبون إلى الحاجة إلى تغيير بعض المتغيرات. حتى المضي قدما وملء كل شيء.

نحن بحاجة إلى معرفة الخلية قاعدة البيانات التي نريد أن نستخدم التالي.

1
2
mysql_select_db('your_database_name') or die("I couldn't find the database table make sure it's spelt right!");

بمجرد أن يتم تحرير كل شيء لتتناسب مع قاعدة البيانات الخاصة بك والمضي قدما ، وأشر إلى ملف index.php على الخادم الخاص بك. 

إذا كنت لا ترى أية أخطاء في الجزء العلوي، ونحن جميعا متصلة.


الخطوة 4: إرسال النموذج

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

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

هنا هو القاعدة؛ ضع هذا الحق بعد يتضمن الأول في الجزء العلوي من index.php

1
2
//check if the form has been submitted

3
if(isset($_POST['signup'])){
4
5
}

هذا البيان إذا تم التحقق لمعرفة ما إذا تم إرسال النموذج.

وبدون ذلك، أن تشغيل البرنامج النصي لدينا في كل مرة يتم فيها تحديث الصفحة ونحن لا نريد أن.

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


خطوة 5: تنظيف وفحص المتغيرات

أننا نريد أن نتأكد من أن المستخدم قام بتقديم المحتوى الفعلي بدلاً من مجرد نموذج فارغ، حيث سنقوم بإجراء بعض الفحوص السريعة.

الجزء الأول هو وضع المتغيرات $ POST في المتغيرات الأبسط وتنظيفها لقاعدة البيانات. ضع هذا داخل إذا كان لدينا بيان.

1
2
$username = mysql_real_escape_string($_POST['username']);
3
$password = mysql_real_escape_string($_POST['password']);
4
$email = mysql_real_escape_string($_POST['email']);

mysql_real_escapse_string () يتأكد من أن المستخدم لا يحاول استخدام apostrophes للوصول إلى قاعدة البيانات الخاصة بنا مع MySQL الحقن. كلما أردت وضع المعلومات في قاعدة بيانات قام المستخدم بإدخالها ، يرجى تشغيلها من خلال mysql_real_escape_string (). لمزيد من المعلومات حول حقن MySQL يمكنك قراءة هذه المقالة على ويكيبيديا

لذا، نحن لقد تنظيف المتغيرات، الآن دعونا تحقق لمعرفة إذا كان المستخدم قد نسيت أية حقول.

1
2
if(empty($username)){ //put code in me please }

3
if(empty($password)){ //put code in me please }

4
if(empty($email)){ //put code in me please }

الآن لدينا ثلاثة إذا كانت البيانات التي يتم التحقق من حالة كل حقل فارغ. إذا كان الحقل فارغًا ، فسنقوم بتعيين بعض المتغيرات

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

الحق فوق ذلك قطعة من التعليمات البرمجية، لنقم بإنشاء صفيف وبعض المتغيرات.

1
2
$action = array();
3
$action['result'] = null;
4
5
$text = array();

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

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

وضع هذا الرمز داخل اسم المستخدم إذا كان البيان.

1
2
$action['result'] = 'error';
3
array_push($text,'You forgot your username');

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

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

ملاحظة: نحن نستخدم array_push () في حالة وجود أخطاء متعددة في إرسال النموذج. إذا كانت كافة إذا كان يتم تنفيذ جمل، إرادة صفيف النص يبدو وكأنه:

1
2
Array(
3
  [0] => 'You forgot your username',
4
	[1] => 'You forgot your password',
5
	[2] => 'You forgot your email'
6
)

نحن بحاجة الآن للتحقق إذا كان لدينا أي أخطاء حتى نتمكن من مواصلة على مع عملية التسجيل.


الخطوة 6: لا توجد أخطاء ، لنسجل المستخدم

نحن ذاهبون للتحقق لمعرفة ما إذا تم تعيين قيمة نتيجة صفيف العمل لدينا إلى خطأ.

1
2
if($action['result'] != 'error'){
3
	//no errors, continue signup

4
       $password = md5($password);
5
}
6
	
7
$action['text'] = $text;

ونحن أيضا تشغيل كلمة المرور عن طريق الدالة md5(). This takes the password and returns a 32 character string that looks something like this: a3470ce826283eca7ce3360d0f26b230. أنها ممارسة جيدة لتشغيل كلمة المرور من خلال نوع من دالة التجزئة قبل وضعه في قاعدة البيانات. هذا يمنع الناس من عرض كلمات مرور المستخدمين إذا تم اختراق قاعدة البيانات الخاصة بك.

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

آخر قطعة من هذه المدونة ونحن نضع قيم الصفيف النص الخاص بك إلى صفيف العمل لدينا.


الخطوة 7: إضافة المستخدم إلى قاعدة البيانات

ضع هذه التعليمات البرمجية داخل لدينا إذا كان آخر بيان.

1
2
...
3
If Statement checking for errors
4
...
5
6
//add to the database

7
$add = mysql_query("INSERT INTO `users` VALUES(NULL,'$username','$password','$email',0)");
8
		
9
if($add){
10
11
	//the user was added to the database	

12
			
13
}else{
14
		
15
	$action['result'] = 'error';
16
	array_push($text,'User could not be added to the database. Reason: ' . mysql_error());
17
	=
18
}

نستخدم mysql_query () و INSERT لإدخال معلومات المستخدمين في قاعدة البيانات. بعد ذلك، نقوم بإنشاء آخر إذا كان البيان التحقق لمعرفة إذا تمت إضافة المستخدم إلى قاعدة البيانات. علينا القيام بذلك عن طريق فحص إذا كان المتغير $add true أو false.

إذا تمت إضافة المستخدم ، فيمكننا المتابعة باستخدام الاشتراك. إن لم يكن الأمر كذلك ، فسنقوم بتعيين بعض المتغيرات المألوفة ووقف الاشتراك.

عند العمل مع استعلامات MySQL ، نستخدم وظيفة mysql_error () إذا كانت أخطاءهم لأنها تساعد في تصحيح الأخطاء في استعلاماتك. فإنه سيتم إخراج أخطاء النص عند شيء خاطئ. هذا جيد!


الخطوة 8: التأكيد مطلوب

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

1
2
...
3
if added check
4
...
5
6
//get the new user id

7
$userid = mysql_insert_id();
8
			
9
//create a random key

10
$key = $username . $email . date('mY');
11
$key = md5($key);
12
			
13
//add confirm row

14
$confirm = mysql_query("INSERT INTO `confirm` VALUES(NULL,'$userid','$key','$email')");	
15
			
16
if($confirm){
17
			
18
	//let's send the email

19
20
}else{
21
				
22
	$action['result'] = 'error';
23
	array_push($text,'Confirm row was not added to the database. Reason: ' . mysql_error());
24
				
25
}

لتسهيل الأمور ، لنقم بتعيين معرف المستخدم الجديد لمتغير حتى نتمكن من استخدامه لاحقًا. نقوم بذلك باستخدام mysql_insert_id (). سيؤدي هذا إلى تعيين $userid إلى كل ما معرف المستخدم الجديد.

بعد ذلك ، نقوم بإنشاء المفتاح العشوائي لهذا المستخدم المحدد. إنشاء متغير يسمى المفتاح، وملء مع قيمة اسم المستخدم والبريد الإلكتروني وحتى الآن. ستبدو السلسلة مثل mattmatt@email.com012009. بعد ذلك يمكننا استخدام الدالة md5() لتحويلها إلى سلسلة عشوائية فريدة من نوعها لهذا المستخدم.

باستخدام mysql_query () و INSERT مرة أخرى ، نضع معرف المستخدم الجديد والمفتاح والبريد الإلكتروني للمستخدمين في قاعدة البيانات.

previewpreviewpreview

الخطوة 9: إنشاء "قوالب البريد الإلكتروني"

سنأخذ استراحة من ترميز PHP وإنشاء ملفين جديدين. نحن ذاهبون فعلا من أجل كونها سريعة وسهلة لاستخدام قوالب اثنين لقد شملت مع هذا البرنامج التعليمي. الملفان اللذان سنطلع عليهما هما signup_template.html و signup_template.txt. سويفت يتيح لنا تعيين HTML، فضلا عن صيغة TXT للبريد الإلكتروني طارئ للمستخدمين لا يعتمد عميل البريد الإلكتروني رسائل البريد الإلكتروني HTML.

فتح signup_template.html ملاحظة: يمكنك أن تقرأ على HTML في رسائل البريد الإلكتروني على مدى الساعة carsonified. لن نقوم بتحرير هذا الملف ، سأقوم فقط بشرح ما يحدث ، وبعد ذلك يمكنك اللعب معه بمجرد اكتمال البرنامج التعليمي. الجزء الأكثر أهمية في هذا الملف هو العلامات التي تشبه {USERNAME} و confirm.php؟ email = {EMAIL} & key = {KEY}. سنقوم بكتابة دالة التي تستخدم هذا القالب ويحل محل تلك العلامات مع المتغيرات من النموذج.


الخطوة 10: وظيفة القالب

فتح inc / php / functions.php ووضع هذا الكود في الداخل.

1
2
function format_email($info, $format){
3
4
	//set the root

5
	$root = $_SERVER['DOCUMENT_ROOT'].'/dev/tutorials/email_signup';
6
7
	//grab the template content

8
	$template = file_get_contents($root.'/signup_template.'.$format);
9
			
10
	//replace all the tags

11
	$template = ereg_replace('{USERNAME}', $info['username'], $template);
12
	$template = ereg_replace('{EMAIL}', $info['email'], $template);
13
	$template = ereg_replace('{KEY}', $info['key'], $template);
14
	$template = ereg_replace('{SITEPATH}','http://site-path.com', $template);
15
		
16
	//return the html of the template

17
	return $template;
18
19
}

يتم أخذ format_email() اثنين من المتغيرات التي سيتم استخدامها في index.php. الأول هو لدينا مجموعة معلومات النموذج والثاني تنسيق. لدينا متغير شكل حتى يمكننا إعادة استخدام هذا الصفيف لإصدارات كل من HTML و TXT من القالب.

أولاً قمنا بتعيين الجذر. وهذا يشير إلى المجلد أن القوالب يتم استضافتها.

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

سنستخدم الآن preg_replace () لاستبدال علامات {USERNAME} في نموذجنا بالمحتوى من النموذج الخاص بنا. أنها في الأساس مجرد نظام قالب سوبر بسيطة.

وأخيراً علينا أن نعود المتغير القالب الذي يحمل جميع ال html.

Explanation: باختصار ، يفتح format_email () ملفات القالب ، ويأخذ HTML ويعينه للمتغير الخاص بنا. هذا هو مجرد وسيلة أنظف ثم تعيين كل HTML في وظيفة نفسها.


الخطوة 11: إرسال البريد الإلكتروني

سنقوم بكتابة دالة أخرى للتعامل مع سويفت، وإرسال رسائل البريد الإلكتروني.

1
2
function send_email($info){
3
		
4
	//format each email

5
	$body = format_email($info,'html');
6
	$body_plain_txt = format_email($info,'txt');
7
8
	//setup the mailer

9
	$transport = Swift_MailTransport::newInstance();
10
	$mailer = Swift_Mailer::newInstance($transport);
11
	$message = Swift_Message::newInstance();
12
	$message ->setSubject('Welcome to Site Name');
13
	$message ->setFrom(array('noreply@sitename.com' => 'Site Name'));
14
	$message ->setTo(array($info['email'] => $info['username']));
15
	
16
	$message ->setBody($body_plain_txt);
17
	$message ->addPart($body, 'text/html');
18
			
19
	$result = $mailer->send($message);
20
	
21
	return $result;
22
	
23
}

تمامًا مثل format_email () ، يأخذ send_email () مصفوفة المعلومات لدينا كمتغير. الجزء الأول من الدالة يمكننا تعيين اثنين من المتغيرات، و $body و $body_plain_text. نحن نستخدم format_email () لتعيين قيم HTML الخاصة بالقالب الخاص بنا لكل متغير. الآن يأتي الجزء جيدة. لدينا إعداد مثيل swift باستخدام Swift_MailTransport: newInstance () ثم إعداد الارسال باستخدام Swift_Mailer :: newInstance ($ transport)؛

إنشاء مثيل جديد لرسالة Swift، والبدء في تعيين بعض المتغيرات لهذا المثيل. قمنا بتعيين الموضوع ، من البريد الإلكتروني وعنوان البريد الإلكتروني ، ثم استخدم setBody () لتخصيص نسخة النص من البريد الإلكتروني إلى مثيل الارسال. لإضافة إصدار HTML ، نستخدم addPart (). تتولى وظيفة send () إرسال البريد الإلكتروني ، ثم نعيد النتيجة. حسنا، لدينا البريد الإلكتروني إنشاء وإرسال مهام مكتوبة، دعونا نذهب إلى index.php والبدء إلى الانتهاء من التسجيل الرئيسية.


الخطوة 12: هل أرسلنا؟ ونؤكد أن؟

لدينا أخير ينبغي لقد إذا كان البيان التحقق إذا تم إنشاء صف تأكيد.

دعنا نرسل البريد الإلكتروني ونتحقق مما إذا كان كل شيء قد مر بشكل جيد. 

1
2
...
3
if confirm
4
...
5
6
//include the swift class

7
include_once 'inc/php/swift/swift_required.php';
8
			
9
//put info into an array to send to the function

10
$info = array(
11
	'username' => $username,
12
	'email' => $email,
13
	'key' => $key
14
);
15
			
16
//send the email

17
if(send_email($info)){
18
								
19
	//email sent

20
	$action['result'] = 'success';
21
	array_push($text,'Thanks for signing up. Please check your email for confirmation!');
22
				
23
}else{
24
					
25
	$action['result'] = 'error';
26
	array_push($text,'Could not send confirm email');
27
				
28
}

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

نقوم بحفظ وظيفة send_email () الخاصة بنا في عبارة if أخرى وكذلك تمرير مصفوفة $ info. إذا تم إرسال رسالة البريد الإلكتروني ونحن تعيين قيمة النجاح ونشكر المستخدم للتوقيع. إذا كانت هناك أخطاء ونحن استخدام المتغيرات المألوفة. حتى الآن، نحن تقريبا القيام به مع الاشتراك، الدالة آخر واحد فقط تحتاج إلى إنشاء. على الرغم من أننا نقوم بتعيين كل هذه المتغيرات للنصوص / النجاح والنص ، فإننا لم نعرض هذه المعلومات على المستخدم. 

previewpreviewpreview

الانتقال للخلف إلى functions.php وقم بلصق هذا الرمز.

1
2
//cleanup the errors

3
function show_errors($action){
4
5
	$error = false;
6
7
	if(!empty($action['result'])){
8
	
9
		$error = "<ul class=\"alert $action[result]\">"."\n";
10
11
		if(is_array($action['text'])){
12
	
13
			//loop out each error

14
			foreach($action['text'] as $text){
15
			
16
				$error .= "<li><p>$text</p></li>"."\n";
17
			
18
			}	
19
		
20
		}else{
21
		
22
			//single error

23
			$error .= "<li><p>$action[text]</p></li>";
24
		
25
		}
26
		
27
		$error .= "</ul>"."\n";
28
		
29
	}
30
31
	return $error;
32
33
}

قد يبدو هذا محيرًا ، ولكنه في الحقيقة يجعل نجاحنا / أخطاءنا تبدو جيدة.

أولاً أنه التدقيق لمعرفة إذا كان الصفيف فارغ حيث أننا لا يتم تنفيذ التعليمات البرمجية عندما لم يكن هناك حاجة.

المقبل فإنه يقوم بإنشاء علامة ماي وتنطبق النتيجة كفئة. وهذا سيكون أما النجاح أو الخطأ والجمالية فقط.

ثم نتحقق مما إذا كان متغير النص عبارة عن مصفوفة أو مجرد سلسلة. إذا كانت سلسلة، نحن التفاف عليه في لي. إذا كان هناك صفيف نقوم بتكراره خلال كل عنصر صفيف ولفه في li.

وأخيراً، نغلق إبري وإرجاع السلسلة بأكملها.

إذا كان علينا الانتقال للخلف إلى index.php ووضع التعليمات البرمجية هذا الحق بعد بما في ذلك header.php ونحن يختتم هذا المقطع.

1
2
...
3
header include
4
...
5
6
<?= show_errors($action); ?>

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


الخطوة 13: تأكيد المستخدم

ينبغي أن يكون لدينا قبضة جيدة عن كيفية عمل البرنامج النصي؛ حتى وأنا ذاهب لهذا البرنامج النصي التالي لتعطيك قطعة كاملة من التعليمات البرمجية ثم انتقل من خلال ذلك معك.

فتح confirm.php وقم بلصق هذا في الفترات الفاصلة بين تشمل الرأس ودالة show_errors() الخاص بك.

1
2
//setup some variables

3
$action = array();
4
$action['result'] = null;
5
6
//quick/simple validation

7
if(empty($_GET['email']) || empty($_GET['key'])){
8
	$action['result'] = 'error';
9
	$action['text'] = 'We are missing variables. Please double check your email.';			
10
}
11
		
12
if($action['result'] != 'error'){
13
14
	//cleanup the variables

15
	$email = mysql_real_escape_string($_GET['email']);
16
	$key = mysql_real_escape_string($_GET['key']);
17
	
18
	//check if the key is in the database

19
	$check_key = mysql_query("SELECT * FROM `confirm` WHERE `email` = '$email' AND `key` = '$key' LIMIT 1") or die(mysql_error());
20
	
21
	if(mysql_num_rows($check_key) != 0){
22
				
23
		//get the confirm info

24
		$confirm_info = mysql_fetch_assoc($check_key);
25
		
26
		//confirm the email and update the users database

27
		$update_users = mysql_query("UPDATE `users` SET `active` = 1 WHERE `id` = '$confirm_info[userid]' LIMIT 1") or die(mysql_error());
28
		//delete the confirm row

29
		$delete = mysql_query("DELETE FROM `confirm` WHERE `id` = '$confirm_info[id]' LIMIT 1") or die(mysql_error());
30
		
31
		if($update_users){
32
						
33
			$action['result'] = 'success';
34
			$action['text'] = 'User has been confirmed. Thank-You!';
35
		
36
		}else{
37
38
			$action['result'] = 'error';
39
			$action['text'] = 'The user could not be updated Reason: '.mysql_error();;
40
		
41
		}
42
	
43
	}else{
44
	
45
		$action['result'] = 'error';
46
		$action['text'] = 'The key and email is not in our database.';
47
	
48
	}
49
50
}

يجب أن يبدو معظم هذا مألوفًا جدًا. لذلك أنا ذاهب إلى القفز إلى الأمام والتحقق مما إذا كان المفتاح في قسم قاعدة البيانات.

مرة أخرى، نحن نستخدم mysql_query() للحصول على أية صفوف في قاعدة البيانات حيث تتساوى بالبريد الإلكتروني ومفتاح مفاتيح المقدمة من مستخدمي البريد الإلكتروني.

نحن نستخدم mysql_num_rows() لمعرفة ما إذا كان عدد الصفوف التي يتم إرجاعها أكبر من 0.

إذا كان البريد الإلكتروني والمفتاح موجودان في قاعدة البيانات ، فسنمسك جميع المعلومات من قاعدة البيانات باستخدام mysql_fetch_assoc ().

الآن وبعد أن أكد المستخدم حسابه ، نحتاج إلى تحديث قاعدة البيانات وتعيين الصف النشط إلى 1.

نحن نستخدم mysql_query() مرة أخرى، ولكن بدلاً من إدراج نستخدم تحديث لتحديث الصف النشط إلى 1 حيث معرف المستخدم هو نفس معرف المستخدمين الحالية لدينا

لتنظيف كل شيء نستخدم mysql_query() وحذف لإزالة صف التأكيد من قاعدة البيانات. وهذا يجعل التأكد من أن المستخدم لا يمكن العودة إلى هذه الصفحة، ونؤكد مجددا. كما تحافظ على قاعدة البيانات جميلة ونظيفة.


استنتاج

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


ملاحظات النهائية

  • لقد استعملت "الإرسال سويفت" لدينا سيناريو النشر الإلكتروني التي يمكن تحميلها هنا: http://swiftmailer.org/
  • لقد استخدمت أيضًا أنماط الأزرار المقدمة من Zurb. يجب التأكد من تحقق لهم ومنحهم بعض الحب. http://www.zurb.com/blog_uploads/0000/0485/buttons-02.html

شكرا على القراءة وتأكد من زيارتي على تويتر إذا كان لديك أي أسئلة!

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.