我需要一些帮助:
a form.php:
<?php
<form name="create" method="post" action="done.php">
<input type="email" name="email" class="cform" required />
<input type="submit" name="submit" />
</form>
?>
现在,在done.php中,我有:
<?php
$email = $_POST['email'];
$OtherVar = email@gmail.com;
?>
我的问题是,如何确定“$ email”是否等于“$ OtherVar”但没有退出form.php?
如果“$ email”=“$ OtherVar”允许用户发送表单。
如果“$ email”不是=“$ OtherVar”向用户显示消息。
希望你能解决我的问题,你可以帮助我,对不起我的英语和谢谢:)
答案 0 :(得分:1)
包含jquery
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
为您的表单和电子邮件字段指定一个ID,以便您可以通过jquery调用它:
<?php
<form name="create" id="create" method="post" action="done.php">
<input type="email" id="email" name="email" class="cform" required />
<input type="submit" name="submit" />
</form>
?>
现在通过jquery调用它并检查值是否相同。如果不是,则使用preventDefault()
方法停止表单提交:
$('#create').submit(function(event) {
var email = $('#email').val();
var otherVariable = 'someValue;
if(!(email == otherVariable)) {
event.preventDefault();
}
});
答案 1 :(得分:1)
如果您想查看之前提交表单的电子邮件,则需要在客户端使用javascript进行操作。如果您在提交表单之前无法应用PHP。
<form onsubmit="return checkEmail(this.email.value)" action="done.php">
<input name="email" type="text">
<input type="submit">
</form>
<script>
function checkEmail(email) {
return email == 'email@gmail.com';
}
</script>
但您也可以允许提交任何电子邮件,如果电子邮件不是您想要的,请将用户返回到表单再次填写。
if ($email != "email@gmail.com") {
header('Location: form.php');
}
请注意,如果您使用的是javascript,则所需的电子邮件地址绝不是秘密:任何人都可以在页面的源代码中找到它。另一方面,返回表单的PHP解决方案隐藏了随机访问者的电子邮件地址(虽然我仍然不建议以任何方式将其视为安全层)。
答案 2 :(得分:0)
在没有JavaScript的form.php
内进行此操作的一种方法是让form.php
处理后期操作:
<?php if ($_POST && $_POST['email'] == $OtherVar) { ?>
// User submitted desired email address
<?php } else { ?>
// User didn't submit desired email address
<form name="create" method="post" action="form.php">
<input type="email" name="email" class="cform" required />
<input type="submit" name="submit" />
</form>
<?php } ?>
但是有一个页面刷新。如果你想在没有页面刷新的情况下完成它,你需要使用一些JavaScript或jQuery:
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<form name="create" method="post" action="done.php">
<input id="special-input" type="email" name="email" class="cform" required />
<input id="special-submit" type="submit" name="submit" />
</form>
<script type="text/javascript">
$('#special-submit').click(function () {
if ($('#special-input').val() != "<?php echo $OtherVar; ?>") {
event.preventDefault();
}
});
</script>