表单字段未传递给PHP脚本

时间:2017-04-22 18:52:06

标签: php html forms

我有一个HTML格式的表单,但是当按下提交按钮时,表单中输入的值不会传递给PHP脚本。我已经使用基本的正则表达式检查来测试它,以测试电子邮件是否有效。我知道我输入的电子邮件使用正则表达式功能,因为我之前使用过它。但是,测试在PHP中失败我猜是因为变量是空的。

表格代码:

<!-- Registration -->
<section id="registration">
  <div class="col-sm-6 col-sm-offset-3">
    <form class="animated pulse" id="register" action="/php/registration-form.php" method="POST">
      <p class="small">There are no refunds available under any circumstances.</p>
      <input id="register_first_name" type="text" placeholder="FIRST NAME">
      <input id="register_last_name" type="text" placeholder="LAST NAME">
      <input id="register_email" type="text" placeholder="E-MAIL">
      <input id="submit" type="submit" value="Checkout Now">
    </form>
  </div>
    </section>
<!-- End Registration -->

PHP代码:

    <?php
$first_name = $_POST["register_first_name"];
$last_name = $_POST["register_last_name"];
$email = $_POST["register_email"];

//Validate the attendee's email
if( validate_email($email) ) {

} else {
    ?>
    <script language="javascript" type="text/javascript">
        alert('Sorry! Please enter a valid email address.');
        window.location = '/';
    </script>
    <?php
    die("ERROR: Attendee entered an invalid email.");
}

function validate_email($email_to_check) {
    $regex = "^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-z]{2,4})$";
    return !empty($email_to_check) && preg_match($regex, $email_to_check);
} ?>

我应该如何将文本传递给我的PHP变量?

由于

2 个答案:

答案 0 :(得分:4)

输入字段的名称应该是您尝试获取它们的名称(此处您已将其设为ID)

例如

<input name="register_first_name" type="text" placeholder="FIRST NAME">

答案 1 :(得分:0)

您必须使用name属性而不是id属性才能更正您的表单代码将id转换为名称才能正常工作