我實際上是使用PHP創建Web應用程序並尋求幫助驗證用戶。 與某些網站一樣,當您註冊時,會通過確認鏈接向您發送電子郵件。我如何在PHP中實現? 我所知道的是,我必須使用PHP mail()
函數來發送電子郵件。 請幫忙。必要。謝謝。 :)通過PHP中的電子郵件驗證用戶
2
A
回答
1
就像CSRF保護您生成一個唯一的令牌。
$token = md5(uniqid(rand(), TRUE));
你在你的會話值存儲電子郵件和當用戶點擊電子郵件中的鏈接(您通過query-string通過令牌)你比較兩個值。
爲了讓它更安全,您可以像CSRF一樣添加時間限制。
3
這是一個很廣泛的問題,所以我們只能給出一個廣泛的答案,但總的技術這樣做是
- 插入用戶的電子郵件地址到你的數據庫,但它標記爲未驗證
- 創建一個唯一的註冊密鑰並將其插入到不同的表只是這些鍵
- 發送電子郵件到用戶的電子郵件地址,並鏈接到你的網站,通過這個註冊碼作爲參數(如http://site.com/confirm.php?key=1234)
- 當該網址是可見的將其標記爲已驗證的電子郵件並刪除臨時創建的註冊密鑰
7
帕特里克斯的回答是正確的,儘管我想指出還有其他的可能性!
您不必在數據庫中創建並存儲唯一標記。這是僅需要一次的數據開銷。
你也可以利用單向哈希。
例如發送用戶代碼md5('my-secret-application-token'.$user_email_adress)
。
您可以通過同樣的方式進行驗證,但不需要存儲密碼。
相關問題
- 1. 通過電子郵件和PHP進行電子郵件驗證?
- 2. 電子郵件驗證PHP
- 3. PHP電子郵件驗證
- 4. PHP - 電子郵件驗證
- 5. 電子郵件驗證php
- 6. 通過電子郵件驗證鏈接
- 7. Asp.NET MVC 5通過電子郵件和密碼驗證用戶
- 8. 使用PHP的電子郵件驗證
- 9. 在php中的電子郵件驗證?
- 10. JQuery通過電子郵件驗證驗證插件
- 11. 用戶註冊電子郵件驗證
- 12. MeteorJS:用戶電子郵件驗證
- 13. 使用filter_var驗證電子郵件PHP
- 14. 使用PHP驗證電子郵件
- 15. 在PHP中驗證電子郵件?
- 16. 在PHP 5.2中驗證電子郵件?
- 17. 電子郵件通過PHP
- 18. 通過電子郵件帳戶驗證 - 利弊
- 19. 在symfony2中通過電子郵件鏈接驗證用戶帳戶
- 20. PHP電子郵件驗證IBM電子郵件(全球範圍)
- 21. 用電子郵件內容中的按鈕進行電子郵件驗證php
- 22. 通過電子郵件驗證在mysql中導入CSV文件
- 23. 驗證已登記的用戶(通過電子郵件)在facebook註冊插件
- 24. ASP.Net電子郵件和帳戶驗證
- 25. 驗證電子郵件在PHP
- 26. PHP電子郵件表單驗證
- 27. AJAX實時電子郵件驗證(PHP)
- 28. PHP電子郵件驗證功能
- 29. PHP erigi:貶值(電子郵件驗證)
- 30. Ember無法通過驗證電子郵件來啓用/禁用
謝謝帕特里克。這有很大的幫助。你們三個人(喬,你們和阿爾弗雷德)都給了我真正「廣泛」問題的完整解決方案。乾杯。保持聯繫。 :) – ikartik90 2011-02-09 18:36:04
你怎麼知道這是訪問該網址的用戶?或者,是否爲每個用戶提供了唯一的網址? – ggkmath 2012-05-11 04:52:39
@ggkmath因爲第2步,「創建一個唯一的註冊碼」。如果你使用連續數字,確定它可能讓某人猜測序列中的下一個數字,但如果你做了一個類似於隨機數的md5總和,沒有人會猜測這個數字。 – Patrick 2012-05-11 12:12:46