我的問題有點棘手,無法找到有效表達它的正確方式。 我創建了一個獨特的激活字符串/鏈接,它在PHP中結合了哈希用戶名和時間。 但是,將數據發送到我的數據庫的確切時間以及將電子郵件激活鏈接發送到用戶電子郵件帳戶所需的實際時間不同(可能以毫秒爲單位,有時也可能是秒) - 這基本上意味着我有不同的電子郵件激活鏈接從我的數據庫和電子郵件帳戶 讓我給的代碼片段:爲電子郵件激活鏈接生成唯一字符串PHP
$username = $_POST[‘username’];
$table = ‘users’;
$activate_field = ‘activate’;
$activate_code = md5($_POST[‘username’]) + time(); //provides unique code for activating
//few more lines of code then…
$query = $connect-> prepare(「INSERT INTO $table $acivate_field VALUES $activate_code」);
$query->execute();
//then the long code for sending the email with the activation code appended to the user’s email account
有可能產生的唯一字符串每秒的更好的辦法? 感謝您的時間,並感謝任何幫助和/或suggestions.P.S我使用phpmailer發送電子郵件。
您可以簡單地採取唯一字段(例如電子郵件或用戶名)和'md5'。在這方面它將是獨一無二的。 – Andrew
這是正常的,時間不同,你只需要使用一次兩種操作。隨着您將信息保存在數據庫中,這是一項成本更高的操作。你必須使用這段時間來發送鏈接和其他需要的操作。 – Miguel
那麼'$ activate_code'的值應該只評估一次,所以沒有理由他們應該不同。 '時間'已經在幾秒鐘內。你確定'//更多的代碼行...'部分沒有修改'$ activate_code'嗎? – hoss