我有以下代码:
if(isset($_POST['login'])){
$check = $_POST['theemail'];
if (preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/", $check)){
echo 'Email is valid ';
}
}
<form method="post" action="" autocomplete="off">
<p align="right">Email <BR><input type="text" name="theemail" size="20" /></p>
<p align="right"><input type="submit" name="register" value="Register" /></p>
<p align="right"><a href="index.php">register</a></p>
</form>
当用户提交表单时,此代码检查电子邮件是否采用有效格式(name@host.com),并且有效;我的问题是,当我尝试从提交表单时将preg_match中的某些内容回显给用户时。
例如:用户提交了以下电子邮件:john@gmail.com
我希望用户会看到回报: echo'Hello john(而不是john它将是一个变量$,或者会显示它的东西)。你的电子邮件的主机是:gmail.com(而不是gmail,它将是一个变量$或将显示它的东西)。
我尝试在代码中的某些位置创建div,以便稍后在echo中显示它们,但我没有成功。任何帮助都会得到满足!
答案 0 :(得分:1)
我会这样做的:
<?php
if(isset($_POST['register'])){
$check = $_POST['theemail'];
if (preg_match("/^([_a-z0-9-]+(\.[_a-z0-9-]+)*)@([a-z0-9-]+(\.[a-z0-9-]+)*)(\.([a-z]{2,3}))$/", $check, $match)){
echo 'Hello ' . $match[1] . ' your email address domain is '. $match[3] . '.' . $match[6];
} else {
echo 'Error, you entered an invalid email address';
}
}
?>
<form method="post" action="" autocomplete="off">
<p align="right">Email <BR><input type="text" name="theemail" size="20" /></p>
<p align="right"><input type="submit" name="register" value="Register" /></p>
<p align="right"><a href="index.php">register</a></p>
</form>
这将输出:
您好john您的电子邮件地址域是doe.com
或者,如果电子邮件地址无效:
错误,您输入了无效的电子邮件地址
在所有情况下,它会再次显示该表格。