搜尋
首頁後端開發php教程PHP實作使用者註冊郵件啟動帳號的方法

PHP實作使用者註冊郵件啟動帳號的方法

May 22, 2018 am 09:34 AM
php用戶註冊帳戶

我們在註冊一個網站的帳戶時,通常都會收到一封包含點擊連結啟動的郵件,本篇文章主要介紹了PHP郵件激活帳戶的實現代碼,有興趣的可以了解一下

#我們在註冊一個網站的帳戶時,通常都會收到一封含點擊連結啟動的郵件,而它是怎麼激活我們的帳戶的呢,今天向大家介紹一種方法。

預備條件

我們在註冊帳戶時,一般在用戶表中會記錄下我們的id、用戶名、密碼、郵箱或手機號,還會有一個帳戶啟動與否的欄位。我們假設它為activation varchar(50) 註冊時一般都會產生一個激活碼,並且把激活碼插入activation字段,我們可以使用$activation_key=bin2hex(openssl_random_pseudo_bytes(16)); 來生成,並且把它插入欄位。

在連結中儲存啟動訊息

既然我們點擊了郵件裡的連結後,就啟動了帳戶,那麼說明這個連結裡,必然儲存了啟動訊息。而它該儲存哪些資訊呢,首先,必須有啟動碼,還有用戶註冊時的郵箱或id,我們這裡用郵箱。例如下面這個連結。


複製程式碼 程式碼如下:


#$message.="Activate";

$email使我們註冊時的郵箱,我們用urlencode()來編碼一下,將字串用於URL 的請求部分,$activation_key就是我們產生的啟動碼了,我們用伺服器向這個email發送啟動郵件,而這個在郵箱客戶端裡,會顯示成一個超鏈接,提示你點擊,點擊後,我們就把email和key傳送到了activate.php文件,也就是開始執行驗證並啟動帳戶了。

在activate.php中驗證訊息

我們使用URL請求向activate.php傳入使用者信箱和啟動碼,現在只需要調取資料庫中原有的資訊進行對比,就可以驗證使用者了,所以我們第一步才將啟動碼插入使用者表中,我寫了一個activate.php的範例:

<?php
$link=mysqli_connect("localhost", "root", "root", "project") or die("Database Access Denied");//连接数据库
if (!isset($_GET[&#39;email&#39;])||!isset($_GET["key"])){
  echo "<p class=&#39;alert alert-danger&#39;>Account Activation Failed</p>";
  exit;//如果邮件链接损坏,没有传入用户激活信息,则不执行后续步骤
}
$email=$_GET[&#39;email&#39;];
$key=$_GET[&#39;key&#39;];
$email=mysqli_real_escape_string($link, $email);
$key=mysqli_real_escape_string($link, $key);//转义特殊字符
$sql="UPDATE users SET activation=&#39;activated&#39; WHERE (user_email=&#39;$email&#39; AND activation=&#39;$key&#39;) LIMIT 1";
$result=mysqli_query($link, $sql);//查询email与key匹配的数据项,并且更新activation字段到activated
if (mysqli_affected_rows($link)==1){
  echo "<p>Account Activated</p>";
  echo &#39;<a href="index.php" rel="external nofollow" type="button">Login</a>&#39;;
  echo "<br/>";
}else{
  echo "<p>Account Activation Failed Or Already Activated</p>";
}
?>

現在帳戶就啟動了,用戶在登入時,先配對activation是否為activated,接著再進行後續步驟

此文僅只涉及這個問題的解決方法,一個完整的用戶註冊、啟動、登錄,也應該配置發送郵件的伺服器

相關推薦:

php實作用戶註冊密碼的crypt加密的方法

django 透過ajax完成郵箱用戶註冊、啟動帳號的方法

ajax提交資料到後台資料庫後實作使用者註冊

以上是PHP實作使用者註冊郵件啟動帳號的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
高流量網站的PHP性能調整高流量網站的PHP性能調整May 14, 2025 am 12:13 AM

TheSecretTokeEpingAphp-PowerEdwebSiterUnningSmoothlyShyunderHeavyLoadInVolvOLVOLVOLDEVERSALKEYSTRATICES:1)emplactopCodeCachingWithOpcachingWithOpCacheToreCescriptexecution Time,2)使用atabasequercachingCachingCachingWithRedataBasEndataBaseLeSendataBaseLoad,3)

PHP中的依賴注入:初學者的代碼示例PHP中的依賴注入:初學者的代碼示例May 14, 2025 am 12:08 AM

你應該關心DependencyInjection(DI),因為它能讓你的代碼更清晰、更易維護。 1)DI通過解耦類,使其更模塊化,2)提高了測試的便捷性和代碼的靈活性,3)使用DI容器可以管理複雜的依賴關係,但要注意性能影響和循環依賴問題,4)最佳實踐是依賴於抽象接口,實現鬆散耦合。

PHP性能:是否可以優化應用程序?PHP性能:是否可以優化應用程序?May 14, 2025 am 12:04 AM

是的,優化papplicationispossibleandessential.1)empartcachingingcachingusedapcutorediucedsatabaseload.2)優化的atabaseswithexing,高效Quereteries,and ConconnectionPooling.3)EnhanceCodeWithBuilt-unctions,避免使用,避免使用ingglobalalairaiables,並避免使用

PHP性能優化:最終指南PHP性能優化:最終指南May 14, 2025 am 12:02 AM

theKeyStrategiestosigantificallyBoostPhpaPplicationPerformenCeare:1)UseOpCodeCachingLikeLikeLikeLikeLikeCacheToreDuceExecutiontime,2)優化AtabaseInteractionswithPreparedStateTementStatementStatementAndProperIndexing,3)配置

PHP依賴注入容器:快速啟動PHP依賴注入容器:快速啟動May 13, 2025 am 12:11 AM

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增強codemodocultion,可驗證性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

PHP中的依賴注入與服務定位器PHP中的依賴注入與服務定位器May 13, 2025 am 12:10 AM

選擇DependencyInjection(DI)用於大型應用,ServiceLocator適合小型項目或原型。 1)DI通過構造函數注入依賴,提高代碼的測試性和模塊化。 2)ServiceLocator通過中心註冊獲取服務,方便但可能導致代碼耦合度增加。

PHP性能優化策略。PHP性能優化策略。May 13, 2025 am 12:06 AM

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)啟用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替換loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

PHP電子郵件驗證:確保正確發送電子郵件PHP電子郵件驗證:確保正確發送電子郵件May 13, 2025 am 12:06 AM

phpemailvalidation invoLvesthreesteps:1)格式化進行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。