Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在联系人表单中使用电话/电子邮件的单一输入_Javascript_Php_Html - Fatal编程技术网

Javascript 在联系人表单中使用电话/电子邮件的单一输入

Javascript 在联系人表单中使用电话/电子邮件的单一输入,javascript,php,html,Javascript,Php,Html,我正在考虑使用带有用户输入的联系人表单,用于电话或电子邮件(通过单个输入) 我想知道是否有可能以某种方式使用HTML数字/电子邮件输入?我应该在服务器端进行这种类型的验证吗 HTML表单: contact.php中的代码: $name=trim(带斜杠($\u POST['fullname']); $ep_input=trim(条斜杠($_POST['emailPhone']); //名称验证 if(strlen($name)

我正在考虑使用带有用户输入的联系人表单,用于电话或电子邮件(通过单个输入)

我想知道是否有可能以某种方式使用HTML数字/电子邮件输入?我应该在服务器端进行这种类型的验证吗

HTML表单:


contact.php中的代码:

$name=trim(带斜杠($\u POST['fullname']);
$ep_input=trim(条斜杠($_POST['emailPhone']);
//名称验证
if(strlen($name)<2){
$error['name']=“无效名称”;
}
//电子邮件和电话号码验证。首先,电子邮件。。。
如果(!preg\u match('/^[a-z0-9&\'-\+]+@[a-z0-9\-]+.([a-z0-9\-]+.*+[a-z]{2}/is',$ep\U输入)){
$error['email']=“无效的电子邮件地址。”;
}
//现在手机(应该更准确,但我们现在保持简单…)
如果(!preg_匹配('/^[0-9]*$/'),$ep_输入){
$error['phone']=“无效的电话号码。”;
}
我想知道是否有可能对两者都使用HTML5验证。如果没有,在将表单数据发送到PHP文件之前,如果有人能与一些JS/Jquery/AJAX代码共享一种更好的方法来实现这一结果,那就太好了

  • 将输入类型更改为文本
  • 检查字段输入是否仅包含数字,然后验证10位数的电话号码
  • 如果它包含字母数字,则使用FILTER\u VALIDATE\u EMAIL验证该值是否为有效的电子邮件地址


  • 以下是一个临时解决方案,它仅使用html和php通过单个html表单输入获取电话号码或电子邮件:

    html(具有文本类型):

    
    
    php:

    
    

    我想用JS有更好的方法来实现这一目标,但由于没有答案,我希望这段代码也能有用。

    不要这样做。这会让用户感到困惑。相反,有两个输入,并有一个清晰的选项供用户选择。那么
    type=“text”呢
    ?这两种方法都应该适用。有没有一种好方法可以让这个选项看起来像一个输入?有没有一种方法可以用更少的输入来完成它,只需在这里输入电子邮件或电话-想不出一种方法来完成它。为什么你不尝试使用jquery或javascript?我正在尝试,但还想不出正确的方法来完成任何事情。你可以吗请为您的代码添加一些解释,以便其他人能够更轻松地理解解决方案的工作原理?
    <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>
    
       $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.";
        }
    
    <?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"; 
        }
    }
    ?>
    
    <input name="emailPhone" placeholder="email / phone" type="text" value="" required="">
    
     <?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;
      }
    ?>