2011-05-17 144 views
1

我需要爲我的用戶製作激活碼。當用戶註冊時,我的PHP腳本會向用戶發送電子郵件,我不知道如何實現激活碼或激活鏈接。我不知道這個電子郵件中的激活碼如何使

+0

您是否特別感興趣的是如何使用CakePHP框架完成此任務,或者只是一般? – generalopinion 2011-05-17 19:57:56

回答

1

我沒有做這件事,但我本來以爲這將是沿着線:

  • 當用戶註冊生成激活碼,並將其與用戶ID相關聯存儲。
  • 有一個驗證代碼的頁面。這將查找URL中給出的代碼(或讓用戶在頁面上的一個字段中手動輸入),並查看它是否與用戶關聯的代碼(必須登錄才能看到此頁面)
  • 生成一個URL,它會轉到上面的頁面並在url中提供代碼。
  • 插入電子郵件中的網址,並在登記時向用戶發送
8
  1. 創建一個隨機字符串$user_rand;
  2. 店在users表中的隨機字符串中activation_secret欄,設置active列0
  3. 哈希隨機字符串併發送電子郵件的電子郵件地址提供的用戶,幷包括一個鏈接到您激活頁面,包括散列作爲參數。例如http://host.com/activate.php?activation_code=sfer3423ste&username=john
  4. activatate.php提取物usernameactivation code(這是你發送哈希)
  5. 查詢users表,其中有active=0user=john,activation_secrete
  6. 哈希activation_secrete返回值和activation code比較哈希記錄如果它們匹配,則應該驗證用戶(如果不是,則將active列設置爲1),通知用戶激活碼不被識別。

您可以在此基礎上進行構建,並使其健壯並添加異常處理。例如。您還可以設置激活分泌等的壽命。

+0

很好放!我也給+1 +1 – Drewdin 2011-05-17 19:06:04

+4

如果它是一個隨機生成的字符串,爲什麼它必須被哈希? – 2012-06-15 09:55:35

0

或者你可以簡單地使用CakeDC's users plugin並避免所有的麻煩。

+0

它有很多錯誤 – Aziz 2011-05-18 06:28:14

+0

儘可能地,它應該是一個足夠好的基礎,而不是完全重新發明輪子。 – mmhan 2011-05-19 06:17:39

相關問題