2013-02-23 23 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

相關問題