/ / Skontrolujte, či sa e-mail zhoduje so zadanou doménou alebo doménami, alebo odmietnite - php, javascript, e-mail, zoznam povolených

Skontrolujte, či e-mailové adresy zodpovedajú zadaným doménam, alebo ich odmietnite - php, javascript, e-mail, whitelist

Momentálne môj e-mail prijíma všetky e-mailové domény. Chcel by som definovať, ktoré z nich sú povolené zo zoznamu (solent.ac.uk, herts.ac.uk), a nie verejné, ako napríklad @ gmail.com atď. Podľa toho, čo je zatiaľ najjednoduchšie, vyskúšam alternatívu Zatiaľ je to len dočasné.

<form method="post" action="<?php url_for("register"); ?>">

<!--Email-->
<p class="email field">
<input tabindex="1" id="email" type="text" name="email" value="<?php if(isset($_POST["email"])) echo $_POST["email"]; ?>" placeholder="email@example.com" autofocus />
<a href="<?php url_for("login"); ?>" tabindex="2" class="action button register" title="Click to log-in with your existing account.">Login</a>
</p>

Vďaka.

odpovede:

1 pre odpoveď č. 1

Zjednodušená verzia v PHP

if ("POST" === $_SERVER["REQUEST_METHOD"]) {
$whitelist = array("solent.ac.uk", "herts.ac.uk");
$email     = $_POST["email"];
list(, $domain) = array_pad(explode("@", $email, 2), 2, "");
if (in_array($domain, $whitelist)) {
// you"re good
}
else {
// not so good
}

// more data validation
}

0 pre odpoveď č. 2

V <form> e-mail môžete rozdeliť na dve časti; používateľské meno a doménu. Používateľské meno by bolo typickým textovým vstupom a doménová časť by bola rozbaľovacím zoznamom na výber.

Zjednodušený príklad je uvedený nižšie:

<input type="text" name="email_username" />@
<select name="email_domain">
<option value="domain1.com">@domain1.com</option>
<option value="domain2.com">@domain2.com</option>
<option value="domain3.com">@domain3.com</option>
<option value="domain4.com">@domain4.com</option>
</select>