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
PHP mailer表单数据验证isn';行不通_Php - Fatal编程技术网

PHP mailer表单数据验证isn';行不通

PHP mailer表单数据验证isn';行不通,php,Php,注意:邮件功能本身工作正常,我有一个专业配置邮件的托管站点。邮件是通过此脚本发送的,但我的简单空字段处理程序从不捕获空字段。我相信这是非常明显的,但我对php非常陌生,我的脚本逻辑似乎很合理。守则如下: 编辑:我将表单调用留在php脚本中,以防有人发现引导表单本身存在问题。重定向是暂时的,直到我能够更好地处理表单错误 <body> <!-- jQuery and bootstrap --> <script src="https://code.jquery

注意:邮件功能本身工作正常,我有一个专业配置邮件的托管站点。邮件是通过此脚本发送的,但我的简单空字段处理程序从不捕获空字段。我相信这是非常明显的,但我对php非常陌生,我的脚本逻辑似乎很合理。守则如下:

编辑:我将表单调用留在php脚本中,以防有人发现引导表单本身存在问题。重定向是暂时的,直到我能够更好地处理表单错误

    <body>
<!-- jQuery and bootstrap -->
  <script src="https://code.jquery.com/jquery.js"></script>
  <script src="../js/bootstrap.min.js"></script>
  <script src="../js/counter.js"></script>
<div class="jumbotron-fluid" id="primary">
<?php
if (isset($_POST['submit'])) {
  $from = 'Web_Form_Contact';
  $to = 'example@example.com';
  $subject = 'Job_Contact';
  $c_type = $_POST["c_type"];

if (empty($_POST["c_name"])) {
    $errName = 'Info missing: Name';
  } else {
    $c_name = $_POST["c_name"];
  }

if (empty($_POST["c_email"] )) {
       $errEmail = 'Please enter a valid email address';
   } else {
     $c_email = $_POST["c_email"];
   }
if (empty($_POST["co_name"])) {
    $errCoName = 'Info missing: Company Name';
  } else {
    $co_name = $_POST["co_name"];
  }
if (empty($_POST["j_desc"])) {
    $errjDesc = 'Info missing: Job Description';
  } else {
    $j_desc = $_POST["j_desc"];
  }

  $body = "From: $c_name\n E-Mail: $c_email\n Type: $c_type\n CoName: $co_name\n Description\n $j_desc";

if (empty($errName && $errEmail && $errCoName && $errjDesc)) {
    if (mail ($to, $subject, $body, $from)) {
        $result='<div class="alert alert-success">Thank You! I will be in touch\n This page will redirect in 5 seconds.</div>';
    } else {
        $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later</div>';
    }
} else {
  echo "$errName\n $errEmail\n  $errCoName\n $errjDesc";
    }
}
  echo "$result";
?>
<div class="container">
 <form class="form-horizontal" role="form" method="post" action="php/info.php"
  <div class="row">
    <div class="col-xs-10  col-sm-6  col-md-6 col-lg-offset-2 col-md-offset-2">
      <<h2>Contact Me! <small></small></h2>
       <form>
        <div class="form-group row">
          <label for="clientEmail" class="col-sm-2 form-control-label">Email</label>
          <div class="col-sm-10">
            <input type="email" name="c_email"class="form-control" id="clientEmail" placeholder="Email" >
          </div>
        </div>
        <div class="form-group row">
          <label for="clientName" class="col-sm-2 form-control-label">Name</label>
          <div class="col-sm-10">
            <input type="text" class="form-control" name="c_name" id="clientName" placeholder="Your Name" >
          </div>
        </div>
        <div class="form-group row">
          <label class="col-sm-2">Contact Type</label>
          <div class="col-sm-10">
            <div class="radio">
              <label>
                <input type="radio" name="c_type" id="gridRadios1" value="recruiter" checked>
                I am a recruiter, and do not work directly for the company hiring.
              </label>
            </div>
            <div class="radio">
              <label>
                <input type="radio" name="c_type" id="gridRadios2" value="employee">
                I work for the company in question, and wish to discuss an open position.
              </label>
            </div>
            <div class="radio">
              <label>
                <input type="radio" name="c_type" id="gridRadios3" value="other" >
                Other
              </label>
            </div>
          </div>
        </div>
        <div class="form-group row">
          <label for="coName" class="col-sm-2 form-control-label">Company Name</label>
          <div class="col-sm-10">
            <input type="text" class="form-control" name="co_name" id="coName" placeholder="Company Name" >
          </div>
        </div>
       <!-- Job Description Text Box -->
        <div class="form-group row">
            <label for="Job Description ">Job Description: (1100 character max!)</label>
           <div class="col-sm-10 col-lg-offset-2 col-md-offset-2 col-xl-offset-2 col-sm-offset-2" >
              <div class="form-group">

                  <textarea class="form-control" rows="5" name="j_desc" id="jobDesc" placeholder="Job Description" ></textarea>
                  <p class="counter">1100</p>
              </div>
           </div>
        </div>
       <div class="form-group row">
          <div class="col-sm-offset-2 col-sm-10">
            <button type="submit" id="send" name="submit" value="Send"class="btn btn-secondary">Submit</button>
          </div>
       </div>
       <div class="form-group">
        <div class="col-sm-10 col-sm-offset-2">
            <?php echo $result; ?>
        </div>
    </div>
      </form>
    </div>
  </div>
</div>
</div>
<!--redirect script -->
<script>
function redirect(page) {
    setTimeout(function () {
        window.location.href = page;
    }, 5000);
}
//sends to homepage
redirect("../index.html");
</script>

函数重定向(第页){
setTimeout(函数(){
window.location.href=页面;
}, 5000);
}
//发送到主页
重定向(“../index.html”);

您需要对每个变量进行空检查:

if (empty($errName) && empty($errEmail) && empty($errCoName) && empty($errjDesc)) {

您还可以在开始时将电子邮件标志设置为true,如果遇到任何错误,您可以将其设置为false。然后,当您准备好发送电子邮件时,检查该电子邮件标志是否仍然正确。

谢谢!我回家后会测试一下,我甚至没想过要做这样的空头支票。完全解决了,再次感谢!我会记住国旗,以便进一步修改。