[英]Delete user from database if email not confirmed
我目前正在基於注冊的網站上工作,並且我讓服務器在注冊后向用戶發送激活電子郵件。 您可以想象,這都是用PHP完成的,因此我正在使用mail()函數。
一旦用戶收到電子郵件並單擊激活鏈接,“用戶”表中的“活動”字段將設置為true,這一切都很好。 但是,如果用戶不確認其電子郵件地址,這就是問題所在,我該怎么辦?
我曾考慮過保留用戶注冊日期和時間之類的詳細信息,但是我不知道如何處理這些數據。 在設定的時間后,服務器如何自動從數據庫中刪除用戶?
我想這就是我要問的,但老實說,我不知道通常的協議...
結論:由於Cron適用於基於Unix的服務器,因此我不得不繼續使用它,但是我發現非常有趣的是,我可以使用Windows內置的Windows Task Scheduler。 這至少意味着我可以在托管任何服務器之前在PC上對其進行測試。 謝謝你們
您絕對應該存儲發送激活鏈接的日期和時間。
確實沒有一種方法可以告訴服務器自動刪除過時的用戶數據,但是編寫自己的代碼很容易。 假設您有權訪問服務器上的cron,則可以將cronjob設置為每天晚上2點運行(例如),並執行PHP腳本來搜索數據庫,以查找在X天前已發送鏈接但從未確認的用戶它
我認為解決方案是在發送郵件時存儲時間戳。 現在每15分鍾運行一次cron,它將檢查哪些值的時間戳超過24小時或您想要的任何時限,然后將其從數據庫中刪除
只需在index.php文件中調用以下代碼即可。 (為什么使用index.php?-因為每次都需要它,並且可以“充當” cronjob。)
(只是偽代碼-可能需要一些調整!)mysql_query(“從用戶處於活動狀態的用戶刪除='false'AND registerTime <(NOW-60 * 60 * 24 * 7)”)
這將刪除7天內未激活的所有用戶。
我認為這只是一個構想,您可以在此基礎上繼續前進。
您應該研究每天運行的cronjobs 。 只需將用戶注冊的時間與數據庫中的字段一起輸入即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.