目前,我的电子邮件接受所有电子邮件域。我想定义哪些是允许从列表(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>
感谢。
答案 0 :(得分:1)
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
}
答案 1 :(得分:0)
在<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>