用Php編寫註冊後Email啟用驗證的執行個體代碼_PHP教程

來源:互聯網
上載者:User
總共需兩個頁面,register.php 和 verify.php

1. 使用者註冊表格 register.php

複製代碼 代碼如下:

2. 建立使用者資料表格 Users
複製代碼 代碼如下:
CREATE TABLE IF NOT EXISTS `users` (

`id` int(11) NOT NULL auto_increment,

`status` varchar(20) NOT NULL,

`username` varchar(20) NOT NULL,

`password` varchar(20) NOT NULL,

`email` varchar(20) NOT NULL,

`activationkey` varchar(100) NOT NULL,

PRIMARY KEY (`id`),

UNIQUE KEY `username` (`username`),

UNIQUE KEY `email` (`email`),

UNIQUE KEY `activationkey` (`activationkey`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;

3. 建立驗證碼 使用者註冊資訊存入資料表
我們使用狀態‘verify' 來表示尚未啟用的使用者。

複製代碼 代碼如下:
$activationKey = mt_rand() . mt_rand() . mt_rand() . mt_rand() . mt_rand();

$username = mysql_real_escape_string($_POST[username]);

$password = mysql_real_escape_string($_POST[password]);

$email = mysql_real_escape_string($_POST[email]);

$sql="INSERT INTO users (username, password, email, activationkey, status) VALUES ('$username', '$password', '$email', '$activationKey', 'verify')";

4. 發送驗證碼
複製代碼 代碼如下:
echo "An email has been sent to $_POST[email] with an activation key. Please check your mail to complete registration.";

##Send activation Email

$to = $_POST[email];

$subject = " YOURWEBSITE.com Registration";

$message = "Welcome to our website!\r\rYou, or someone using your email address, has completed registration at YOURWEBSITE.com. You can complete registration by clicking the following link:\rhttp://www.YOURWEBSITE.com/verify.php?$activationKey\r\rIf this is an error, ignore this email and you will be removed from our mailing list.\r\rRegards,\ YOURWEBSITE.com Team";

$headers = 'From: noreply@ YOURWEBSITE.com' . "\r\n" .

'Reply-To: noreply@ YOURWEBSITE.com' . "\r\n" .

'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

5. 驗證啟用代碼 verify.php
如果驗證碼相同,則啟用使用者。

複製代碼 代碼如下:
$queryString = $_SERVER['QUERY_STRING'];

$query = "SELECT * FROM users";

$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)){

if ($queryString == $row["activationkey"]){

echo "Congratulations!" . $row["username"] . " is now the proud new owner of a YOURWEBSITE.com account.";

$sql="UPDATE users SET activationkey = '', status='activated' WHERE (id = $row[id])";

if (!mysql_query($sql)) {

die('Error: ' . mysql_error());

}

// 到這裡,使用者已經完全啟用了帳號,你可以將頁面跳轉到登陸後的介面了

}

} // end of while

http://www.bkjia.com/PHPjc/326740.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/326740.htmlTechArticle總共需兩個頁面,register.php 和 verify.php 1. 使用者註冊表格 register.php 複製代碼 代碼如下: html body form action="register.php" method="post" name="register"...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.