目前我的电子邮件接受所有的电子邮件域名。我想定义哪些是允许从列表(solent.ac.uk,herts.ac.uk)之外的,而不是像@gmail.com等公共的。目前,无论哪种方法最简单,我都会尝试其他方法,这更多的是暂时的。
<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>谢谢。
发布于 2013-02-04 02:27:09
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
}发布于 2013-02-04 02:36:04
在<form>中,您可以将电子邮件分成两部分:用户名和域。用户名将是典型的文本输入,域部分将是选择下拉框。
下面是一个简化的示例:
<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>https://stackoverflow.com/questions/14675627
复制相似问题