根据列表选择验证电子邮件 - php

时间:2013-12-04 20:20:15

标签: php

我有一个包含两个值'Student'和'Business'的列表框我还有一个电子邮件输入框和一个提交按钮。当用户选择“学生”时,他们应该只允许输入@ mail.ITname.ie的电子邮件地址。选择业务时,应该只检查有效的电子邮件。我是php的新手,发现很难找到教程来做我想要的东西。任何帮助表示赞赏。

<?php
if(isset($_POST['email']) == true && empty($_POST['email']) == false){
        $email = $_POST['email'];
        $allowed = array('mail.ITname.com');

        if (filter_var($email, FILTER_VALIDATE_EMAIL) == true)
        {
            $domain = array_pop(explode('@', $email));

            if ( ! in_array($domain, $allowed))
            {
                // Not allowed
            }
        }
}

?>
<form action="" method="post">
    <select name="user type" size="2" >
      <option>Student</option>
      <option>Business</option>
    </select>
    <br />
  <input type="text" name="email" />
    <input type="submit" />

</form>

1 个答案:

答案 0 :(得分:0)

首先将<select>名称更改为此类名称(无空格):

<select name="user_type" size="2" >

然后,您只需检查$_POST['user_type']服务器端并正确处理验证。

它可能最终看起来像这样:

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {

    if($_POST['user_type'] == 'Student') {
        // Validate the domain
        $domain = array_pop(explode('@', $email));
        if (in_array($domain, $allowed)) {
            // Email is valid.
        }
    } else {
        // User must be 'Business', so we're done. Email is valid.
    }
}

// Validation failed somewhere. Display an error? Redirect?