我有一个包含两个值'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>
答案 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?