2013-02-23 26 views
-2

我有下面的代码,我想验证表单,以确保两个电子邮件匹配提交之前匹配。PHP我可以在提交表单之前检查两个电子邮件是否匹配?

电子邮件在线24 在此先感谢。

<?php 
include_once 'includes/config.php'; 
$pageTitle = 'Members'; 
include HEADER; 
?> 

<?php 
$fname = ""; 
$lname = ""; 
$email1 = ""; 
$email2 = ""; 
?> 

<p>To create an account with us please fill out the form below</p> 

<form action="sendRegister.php" method="get"> 
    First Name: <input name="new[fname]" type="text"><br> 
    Last Name: <input name="new[lname]" type="text"><br> 
</form> 

Email : <input name="new[email1]" required="" type="email" value="<?php echo $email1;?>"><br> 
Re-Enter Email : <input name="new[email2]" required="" type="email" value="<?php echo $email2;?>"><br> 
Password: <input name="new[password1]" type="password"><br> 
Re-enter password:<input name="new[password2]" type="password"><br> 
Gender: <select name="new[gender]"> 
    <option value="Male"> 
     Male 
    </option> 

    <option value="Female"> 
     Female 
    </option> 
</select><br> 
State of Residence:<select name="new[states]"> 
    <option value="NY"> 
     New York 
    </option> 

    <option value="NJ"> 
     New Jersey 
    </option> 
</select><br> 
<br> 
<?php 
if(isset($email1) != $email2){ 
echo 'please correct your email'; 
} 
?> 
<input type='submit' value='submit'> 
</form> 
<?php 
include FOOTER; 
?> 
+0

我总是复制,并在询问两次提交地址粘贴;所以它几乎没有什么好处 - 我总是通过向用户发送一封电子邮件到地址并让他们回复一个特定的链接密钥来验证电子邮件。 – 2013-02-23 22:10:21

+0

你有一个额外的关闭标签到你的表单。 – cwallenpoole 2013-02-23 22:13:13

回答

0

尝试:

if(isset($email1, $email2)) { 
    if($email1 != $email2){ 
    echo "Bad Email" 
    .... 
    } 
} 

您还可以使用JavaScript来做到这一点(http://www.w3schools.com/js/js_form_validation.asp

+0

我同意PHP在这里,但是你不应该只依赖客户端验证,因为这可以很容易规避 – 2013-02-23 21:41:11

+0

你可以'isset($ email1,$ email2,...)',它等于运行多个isset '&&' – 2013-02-23 21:44:58

+0

@SimplyKiwi原则上我同意你的100%。然而,在这种情况下,客户端验证就是我喜欢称之为错字捕获,确保用户不会因意外而做一些愚蠢的事情。因此,JavaScript验证在这里很有意义。 – 2013-02-23 21:45:24

0

我认为这是最好的使用JavaScript这一点,特别是如果你想在提交前就验证,因为(afaik)PHP将不得不在提交时进行检查,而您可以使用JavaScript来检查提交按钮是否被单击,并根据验证的结果进行。

看看:

+0

为什么选择投票?使用PHP来验证电子邮件是最终用户无用的点击和无意义的重定向。我很欣赏我没有以PHP为中心的答案来回答这个问题,但是我的回答非常有效,因为前面的答案提供了相同的链接。 – LokiSinclair 2013-02-23 21:48:10

+0

我没有降低你的视觉效果,但纯粹的JavaScript并不是这里的最佳做法。虽然对于用户来说这是一个很好的礼貌,但您不能相信客户端验证。 – cwallenpoole 2013-02-23 22:11:05

+2

js可以被规避,因此,应始终使用php(无论是除此之外还是独占),并且w3shools不应链接到http://w3fools.com(不,我没有投票拒绝) – 2013-02-23 22:12:17

0

如果您要检查您提交表单以前,则必须用JavaScript做。

第二种可能性是:把你提交的表单值作为defauld值例如为:

<?php 
$pass1=$_POST["pass1"]; 
$pass2=$_POST["pass2"]; 
if (isset($pass1,$pass2) && $pass1!=$pass2) echo 'Your password confirmation is not equal to your password'; 
echo '<form ....>'; 
echo '<input type="text" name="pass1" value="'.$pass1.'">'; 
echo '<input type="text" name="pass2" value="'.$pass2.'">'; 
echo '</form>'; 
?> 
+0

当尝试上述代码时,它们不起作用。 – 2013-02-24 00:47:11

+0

请帮助我,谢谢。 – 2013-02-24 00:47:54

+0

这是一个例子。你不能复制粘贴它......这只是为了演示如何在中创建$ _POST []值。您需要填写

标记并添加提交输入... – 2013-02-24 01:16:14

相关问题