بسيار زيبا توضيح داديد.به نقل از sama_sally :اول يه ايميل محتوي يه لينك بفرست
توي اون لينك يه آي دي قرار بده
وقتي روش كليك شد و رفت تو صفحه خودت اونجا بررسي كن ببين اين آي دي وجود داره يا نه
اگه داشت بگو ايول! اگه هم نداشت بگو خاك تو سرتون! :blink:
به نقل از moein :میتونی موقع ثبت یوزر یه ستون بسازی و توش یه رشته حروف یا عدد رندم بزاری و هر کس به لینک مثلاً :
http://www.yoursite.com/verify.php?confirm=vx4g26h7yksd2 رفت اگه همچین کدی تو دیتابیس بود ان رو آپدیت کنی مثلاً این در این ستون به جای کد بنویسی verified که متوجه بشی آدرس ایمیلش درسته و کسی هم نمیتونه این کد رو حدس بزنه.
کافی این لینک رو براش ایمیل کنی.
<?php
function send_mail($to, $subject, $msgid, $optmsg, $name) {
$mail_enabled=1;
$baseurl='http://localhost/';
$adminemail='admin@localhost';
$dbname='database_name';
$dbhost='localhost';
$dbun='root';
$dbpass='sa';
$sitetitle='Website Name';
$sitehome='http://localhost/';
switch ($msgid) {
case 1:
$message = '
<html>
<head>
<title>'.$subject.'</title>
</head>
<body>
Dear <b>'.$name.',</b>
<br>
<br>
<p>Thank you for registration.</p>
<p>To Activate your account, please follow this activation link:
<a href="'.$baseurl.'/activate.php?id='.$optmsg.'">
'.$baseurl.'/activate.php?id='.$optmsg.'</a></p>
<br><br><br><code>
IMPORTANT: THIS EMAIL CONTAIN PERSONAL INFORMATION.<br>
1.FOR MORE SAFETY PLEASE PRINT OUT EMAIL AND THEN<br>
REMOVE IT FROM YOUR MAILBOX.<br>
2.IF YOU ARE NOT OWNER, PLEASE REPORT IT TO US.<br>
</code>
<br>
Best Regards,
<br>
<b>'.$sitetitle.'</b> Support Team<br>
<a href="'.$sitehome.'">Visit Our Website</a>
</body>
</html>
';
break;
};
/* To send HTML mail, you can set the Content-type header. */
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
/* additional headers */
$headers .= "From: ".$adminemail."\r\n";
/* and now mail it */
if ($mail_enabled==1) {
error_reporting(0);
mail($to, $subject, $message, $headers) or die('Error sending email.');
error_reporting(E_ALL);
};
$dbhost="localhost"
$dbun="root"
$dbpass="sa"
mysql_connect($dbhost,$dbun,$dbpass) or die("Can not connect to database.");
mysql_select_db($dbname) or die("Can not use database.");
$vid=md5(uniqid(rand(), true));
$sql="insert into members (username, password, name, email, company, description, vid, status) values ('$username', '$password', '$name', '$email', '$company', '$description', '$vid', 0);";
if (mysql_query($sql)) {
mysql_close();
send_mail($email,'Account Activation',1,$vid, $name);
header('Location: ./confirm_register.php?un='.urlencode($username));
} else
$error=$error | 0x2;
mysql_close();
};
};
?>
<h1>Registration</h1>
TODO Registration Form Here
<?php
//include('./common/db_tool.php');
//include('./header.php');
$username=$_GET['un'];
?>
<h1>Congratulation!</h1>
Now, you are a member of our website.<br>
Your username is: <?php echo $username; ?>
<br><br>To complete your registration:<br>
Please check your mailbox and follow activation link we sent for you, to active your account. Then
<a href="login.php">click here</a> to login.
<?php
//include('./footer.php');
?>
<?php
$dbhost="localhost"
$dbun="root"
$dbpass="sa"
mysql_connect($dbhost,$dbun,$dbpass) or die("Can not connect to database.");
mysql_select_db($dbname) or die("Can not use database.");
$error=0;
$vid=$_GET['id'];
if (strlen($vid)<>32) die("Invalid id!");
dbc_connect();
$res=mysql_query("update members set status=1 where vid='$vid' and status=0;");
if (mysql_affected_rows()<>1) $error=1;
mysql_close();
if ($error==1)
{
?>
<h1>Invalid ID!</h1>
Verification ID has expired. <a href="register.php">Register</a> again.
<?php
}
else {
?>
<h1>Activation Completed!</h1>
Your account activated. You can <a href="login.php">Login</a> to access to your account area.
<?php
}
?>
CREATE TABLE `members` (
`id` int auto_increment,
`name` varchar(20),
`email` varchar(20),
`description` varchar(255),
`status` int,
`username` varchar(20),
`password` varchar(20),
`company` varchar(20),
`vid` varchar(32),
PRIMARY KEY (`id`)
)
میتونی رندم رو بین 1000000 تا مثلاً 10000000 بسازی یا از کد زیر برای رشته حروف و عدد استفاده کنی:به نقل از hba :خوب اين عدد رندم رو با چه دستوري مي شه ساخت من با دستور rand چیزی که می زنم خیلی قاطی نیست؟
$rand = md5(uniqid(time()));
به نقل از balabala :با یک مقدار مرور کدها میبینید که کار بسیار ساده ای هست.
موفق باشید (این هم جایزم به نوید، خودش میدونه... )
خواهش ميكنم قابل شمارو نداشت.به نقل از navid_gh :واقعا ازت ممنونم لطف بزرگی کردی
:blush:
ممنـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــون :wacko: :blink: :heart: