我一直在尋找一個簡單的php/mysql解決方案,爲用戶註冊一個帳戶 - 在登錄前向管理員發送請求以進行批准 這是可能的如果是這樣,它是直截了當的嗎?PHP管理員批准用戶註冊
一直在尋找教程和以前的問題,仍然無處可尋! 它註冊成功,但我還沒有能夠找出發送給管理員的電子郵件的請求......
感謝
我一直在尋找一個簡單的php/mysql解決方案,爲用戶註冊一個帳戶 - 在登錄前向管理員發送請求以進行批准 這是可能的如果是這樣,它是直截了當的嗎?PHP管理員批准用戶註冊
一直在尋找教程和以前的問題,仍然無處可尋! 它註冊成功,但我還沒有能夠找出發送給管理員的電子郵件的請求......
感謝
如果你想發送電子郵件給管理員,PHP有郵件()函數: http://php.net/manual/en/function.mail.php
#given $email, $user
$mail_success = mail("[email protected]","User Registration awating approval","User ".$user." has registered and is on the waiting list.\n User's email: ".$email);
if(!$mail_success) { echo "Warning: Mail delivery failed"; }
注意,郵件()函數沒有efficent在所有發送多封電子郵件。
您可以通過在您的用戶表中添加一列is_approved
來輕鬆實現它。
當用戶註冊時,默認情況下將此字段設置爲false
。
向管理員發送有關新註冊的電子郵件,並批准用戶只需將is_approved
更改爲true
。
當用戶嘗試登錄時,應該檢查該值,如果該值爲false,則拒絕訪問。
一個很好的資源是sfGuard包,其中的代碼完全符合您的需求。
您可以將BOOLEAN列添加到您的用戶表user_approved
並默認將其設置爲0。
當一個新用戶註冊,發送電子郵件給管理員使用PHP郵件功能要求進行審批:
$to = '[email protected]';
$subject = 'User needs approval';
$message = 'The user {username} needs your approval' .
'----------------------------------- ' . "\r\n" .
'Accept: ' . $accept_link . "\r\n" .
'Decline: ' . $decline_link . "\r\n";
$_headers = 'From:[email protected]' . "\r\n"; // Set FROM headers
mail($to, $subject, $message, $headers); // Send the email
的accept_link
和decline_link
可以使用PHP哈希函數
生成例如,您可以使用SHA512哈希表:
$accept_link = "yourwebsite.com/approval.php?e=" . $email . "&h=" . hash('sha512', 'ACCEPT');
$decline_link = "yourwebsite.com/approval.php?e=" . $email . "&h=" . hash('sha512', 'DECLINE');
在PHP腳本approval.php
你可以簡單地檢查得到變量,並檢查管理員是否想要接受或拒絕註冊請求。
$hash = $_GET['h'];
$email = $_GET['e'];
if($hash == hash('sha512', 'ACCEPT')){
//ACCESS MYSQL DATABASE
//FIND THE USER AND SET user_approved = 1
//WHERE email = $email
}else if($hash == hash('sha512', 'DECLINE')){
//MAIL THE USER NOTIFYING THAT THE ACCOUNT HAS NOT BEEN APPROVED
}
如何在你的主應用程序和用戶添加另一列稱爲'IsApproved TINYINT(1)DEFAULT 0'了'User'表,則僅顯示用戶的'1'值與'價值0「在您的管理頁面上。 '1' = true。 '0' = false。 – Jonathan
您是否找到解決方案?如果是這樣,請發佈完整的代碼作爲答案,以便它可以幫助其他人.... – fresher