簡體   English   中英

檢查電子郵件地址是否已被使用

[英]Checking if e-mail address is already used

我在php上編碼注冊系統。 我試圖使不可能用相同的電子郵件地址創建兩個帳戶。 我寫了一個應該檢查它的代碼,但是它不起作用。 我可以使用同一封電子郵件創建任意多個帳戶。 它出什么問題了?

$sqlemail = "SELECT count(*) FROM 'users' WHERE email = ?"; 
$result = $connection->prepare($sqlemail); 
$result->execute($email); 
$emailused = $result->fetch();

if ($emailused!=false) {
    echo 'An account with this e-mail address already exists!';
}

使email字段成為表的唯一鍵。 然后,如果您嘗試插入一個副本,mysql將拋出錯誤。

然后,您可以處理錯誤,並顯示更友好的消息。 您可以使用$result->errorCode()檢查錯誤。

這也使您不必在INSERT之前進行SELECT

你可以試試這個,使用反引號在users'

 $sqlemail = "SELECT count(*) FROM `users` WHERE email = ?"; 

if ($emailused>0) {
    echo 'An account with this e-mail address already exists!';
}

即使電子郵件返回了多個結果,該腳本也會執行,因為您不會殺死該腳本! 您需要使用exit; die()阻止它們繼續前進,或進行重定向或其他操作。

if ($emailused>0) {
    echo 'An account with this e-mail address already exists!';
    exit;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM