簡體   English   中英

PHP機構電子郵件驗證

[英]PHP Institutional Email Validation

我想制作一個用戶注冊表格,該表格只接受我大學的電子郵件地址。

例如

me@gmail.com, me@yahoo.com, me@live.com = INVALID

me@university.ac.uk = VALID

我應該開始研究哪種類型的術語和查詢來實現這一目標? 我是PHP的新手,但到目前為止,我已經完成了功課,只能找到有關如何基於拒絕無效輸入來驗證電子郵件的教程,而不是僅接受諸如@university.ac.uk類的有效域擴展名的教程。

希望這是有道理的,不要試圖為我編寫代碼(盡管直觀的說明會有所幫助),只是要求一些指針來幫助您朝正確的方向發展。

我會建議您使用正則表達式來接收您的要求的電子郵件。

/^(([^<>()[\\]\\\\.,;:\\s@\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\"]+)*)|(\\".+\\"))@\\buniversity.ac.uk/

請訪問這里https://regex101.com/r/KkJeho/9

如果首先確保該地址是電子郵件,然后對電子郵件進行explode() ,則可以檢查服務器是否匹配:

<?php
$email = "foo@university.ac.uk";
$allowed_servers = array("university.ac.uk", "other_server.maybe");
if (filter_var($email, "FILTER_VALIDATE_EMAIL")) {
    $check = explode("@", $email);
    if (in_array($check[1], $allowed_servers)) {
        // server checks out
    } else {
        // server doesn't check out
    }
} else {
    // invalid email address
}

首先,以表格的形式要求特定於域的電子郵件地址意味着您至少需要在服務器端使用它(提交的郵件地址需要再次從不合格的用戶輸入中進行檢查)。 簡而言之,如果有人想“玩”您的網站,他可能會發送“不好的”請求,以便您在數據庫中存儲錯誤的信息。 此外,它不是強制性的,但是如果您想幫助用戶,則可以添加客戶端驗證。

就服務器端代碼而言,您可以使用正則表達式來驗證輸入。 這里這里

此外,客戶端代碼可用於協助用戶以正確提交表單。 您對此有更多選擇:

HTML5正則表達式 Javascript正則表達式

暫無
暫無

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

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