0

目前我的电子邮件接受所有电子邮件域。我想定义列表中允许哪些列表(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>

谢谢。

4

2 回答 2

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
}
于 2013-02-03T18:27:08.940 回答
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>
于 2013-02-03T18:36:04.470 回答