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ď č. 1Zjednoduš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>