2014-07-06 29 views
1

我需要一点点的帮助,这:如何做这种形式值的检查?

一个有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 protected]; 
?> 

我的问题是,如何确定如果“$ email”等于“$ OtherVar”但没有退出form.php?

如果“$ email”=“$ OtherVar”允许用户发送表单。

如果“$ email”不是=“$ OtherVar”会向用户显示一条消息。

希望你有understad我的问题,你能帮帮我,对不起,我的英语和感谢:)

+0

** **的Javascript大 – Xatenev

回答

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 protected]'; 
} 
</script> 

但你也可以允许使用任何电子邮件submittin,如果电子邮件是不是你想要的,回报用户回到形式再次填充它。

if ($email != "[email protected]") { 
    header('Location: form.php'); 
} 

请注意,如果你会使用JavaScript,所需的E-mail地址绝非秘密:任何人都可以找到它的页面的源代码。另一方面,返回到表单的PHP解决方案隐藏了来自随机访问者的电子邮件地址(虽然我仍然不建议以任何方式将其视为安全层)。

+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(); 
} 
}); 
0

一种方式做到这里面form.php没有JavaScript是由具有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>