آموزش ساخت ایمیل فعال سازی
ابتدا ساختار دیتابیس:
CREATE TABLE IF NOT EXISTS `users` (این تصویر فیلدهای دیتابیس و توضیحاتش :
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`verify_code` varchar(255) NOT NULL,
`active` bit(1) NOT NULL,
PRIMARY KEY (`id`)
)
فقط تذکر بدم که در فیلد active مقدار صفر (۰) یعنی کاربر فعال نیست و مقدار یک(۱) یعنی فعال.
ساختار فایل ها
ما به چهارتا فایل نیاز داریم:
فایل register.php
محتوای فایل :
|
این فایل پس از گرفتن اطلاعات کاربر به صفحه ی signup.php ارسال می شه.
فایل config.php :
در این فایل ما تنظیمات مربوط به دیتابیس رو ذخیره می کنیم$dbhost = 'localhost'; //نام هاست دیتابیس
$dbuser = 'dbuser'; // نام کاربری دیتابیس
$dbpass = 'dbpass'; // گذرواژه ی دیتابیس
$dbname = 'dbname'; //نام دیتابیس$url = 'http://test.com/'; // نشانی سایت
$dblink = mysql_connect($dbhost, $dbuser, $dbpass) or die('خطا در اتصال');
mysql_select_db($dbname, $dblink) or die('دیتابیس وجود ندارد');
?>
فایل signup.php :
در این فایل:include_once('config.php');حالا کاربر ایمیل خودش رو باز می کنه و می بینه که ایمیل از طرف سایت بهش رسیده که شامل یه لینک با این نشانیه://ایجاد کد تصادفی
$activation_code = md5(uniqid(rand()));// اطلاعات کاربر
$user = $_POST['username'];
$pass = $_POST['password'];
$email = $_POST['email'];//ثبت اطلاعات در دیتابیس
$sql = "INSERT INTO `users` (
`id`,
`username`,
`password`,
`email`,
`verify_code`,
`active`
)
VALUES
(
NULL,
'".$user."',
'".$pass."',
'".$email."',
'".$activation_code."',
0
);";$result = mysql_query($sql) or die('query error');
// ارسال ایمیل فعال سازی
if($result){// ایمیل کاربر
$to=$email;//موضوع ایمیل فعال سازی
$subject="فعال سازی ثبت نام";// ایمیل سایت ما
$header="from: نام سایت ";//متن ایمیل
$message="لینک فعال سازی
";
$message.="برای فعال سازی ثبت نام روی لینک زیر کلیک کنید
";
$message.="
".$url."confirmation.php?code=$activation_code";//ارسال ایمیل
$sentmail = mail($to,$subject,$message,$header);}
else {
// اگر ثبت در دیتابیس انجام نشد
echo "ثبت نام انجام نشد. دوباره تلاش کنید.";
}//اگر ایمیل فعال سازی ارسال شد
if($sentmail){
echo "ثبت نام انجام شد و ایمیل فعال سازی برای شما ارسال شد";
}
// اگر ثبت نام انجام شد اما ایمیل فعال سازی ارسال نشد
else {
echo "ثبت نام انجام شد اما ایمیل فعال سازی ارسال نشد";
}?>
http://test.com/activation.php?code=d6f9b575a72824639f990aa8b0e0295eوقتی روی این لینک کلیک بکنه وارد سایت ما می شه و به صفحه ی activation.php راهنمایی می شه. متغیری به نام code با مقدار d6f9b575a72824639f990aa8b0e0295e ثبت شده که ما باید این مقدار رو از دیتابیس بخونیم. اگر چنین کدی وجود داشت ما مقدار active رو برابر با یک(۱) می کنیم و اگر وجود نداشت یعنی کاربری با این مشخصات ثبت نام نکرده در نتیجه خطای مربوطه رو نمایش می دیم.
فایل activation.php :
include('config.php');به همین راحتی می تونید یه بخش فعال سازی ایمیل در سایت خودتون ایجاد کنید.$code = $_GET['code'];
$sql = "SELECT * FROM `users` WHERE `verify_code` ='".$code."';";
$result = mysql_query($sql);
if($result){
$count = mysql_num_rows($result);
// if found this passkey in our database, retrieve data from table "temp_members_db"
if($count == 1){// Insert data that retrieves from "temp_members_db" into table "registered_members"
$active_sql = "UPDATE `users` SET `active` = 1 WHERE `verify_code` = '".$code."';";
$active_result = mysql_query($active_sql);
echo 'activation OK';
}// if not found passkey, display message "Wrong Confirmation code"
else {
echo "Wrong Confirmation code";
}}
?>
امیدوارم براتون مفید بوده باشه
فایل های این پروژه رو می تونید از اینجا دانلود کنید:
در صورتی که سوالی دارید می تونید در انجمن گفتگوی iranphp.org بپرسید یا همینجا در بخش دیدگاه ها سوالتون رو مطرح کنید
همیشه شاد باشید
اگر خوب متوجه نشدید در هر سوشیال یه لینک هست وقتی روی اون کلیک میکنی درخواست شما برای طرف مقابل ارسال میشه وبعد از تایید نفر مقابل شما به لیست اون افزوده میشوید . و همچنین اون به لیست شما !