![](/img/trans.png)
[英]How to Validate Email or Phone Number Using Single Input like Facebook
[英]Using a single input for phone / email in a contact form
我正在考虑将联系表单与用户输入的电话或电子邮件(通过一次输入)一起使用。
我想知道是否可以为此使用HTML数字/电子邮件输入吗? 并且,我应该在服务器端进行这种类型的验证吗?
HTML形式:
<form name="contact" target="contact.php" method="post">
<input name="fullname" placeholder="Name" type="text" value="" minlength="2" required="">
<input name="emailPhone" placeholder="email / phone" type="email" value="" required="">
<input value="send" type="submit">
</form>
来自contact.php的代码:
$name = trim(stripslashes($_POST['fullname']));
$ep_input = trim(stripslashes($_POST['emailPhone']));
// Name validation
if (strlen($name) < 2) {
$error['name'] = "Invalid name";
}
// Email and phone number validation. first, the email...
if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $ep_input)) {
$error['email'] = "invalid email address.";
}
// Now the phone (should be more accurate but we keep it simple for now...)
else if (!preg_match('/^[0-9]*$/', $ep_input) {
$error['phone'] = "invalid phone number.";
}
我想知道是否有可能同时使用HTML5验证。 如果没有,那么在将表单数据发送到PHP文件之前,如果有人可以通过一些JS / Jquery / AJAX代码共享更好的方法来实现此结果,那就太好了...
<?php
$ep=trim(stripslashes($_POST['emailPhone']));
if(is_numeric($ep))
{
if(!preg_match('/^\d{10}$/',$ep))
{
echo "invalid phone";
}
}
else
{
if (!filter_var($ep, FILTER_VALIDATE_EMAIL)) {
echo "Invalid email format";
}
}
?>
这是仅使用html&php的临时解决方案,只需输入一个HTML表单输入即可获取电话号码或电子邮件:
html (文本类型):
<input name="emailPhone" placeholder="email / phone" type="text" value="" required="">
的PHP :
<?php
$name = trim(stripslashes($_POST['fullname']));
$ep = trim(stripslashes($_POST['emailPhone']));
// Check phone number for 10 digits
if(is_numeric($ep))
{
if(!preg_match('/^\d{10}$/',$ep)) {
$error = "invalid phone number.";
}
$eptype = "phone";
}
// Check valid email format
else
{
if (!filter_var($ep, FILTER_VALIDATE_EMAIL)) {
$error = "invalid email address.";
}
$eptype = "email";
}
// Send the information via email with php or show the error
$mailto = "email@example.com";
$massage = "Please contact". $name ."via ". $eptype .": ". $ep;
if (!$error) {
$sendmail = mail($mailto, "Subject", $massage);
}
else {
echo $error;
}
?>
我想有一种更好的方法可以用JS实现此目标,但由于没有答案,我希望这段代码也能有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.