我有一个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变量?
由于
答案 0 :(得分:4)
输入字段的名称应该是您尝试获取它们的名称(此处您已将其设为ID)
例如
<input name="register_first_name" type="text" placeholder="FIRST NAME">
答案 1 :(得分:0)
您必须使用name属性而不是id属性才能更正您的表单代码将id转换为名称才能正常工作