2013-01-14 46 views
-1

請澄清一下:
到目前爲止,我對一些用戶輸入使用了兩個步驟驗證(客戶端/服務器),例如 - 電子郵件(經典表單提交 - 通過重新加載頁面)。使用ajax的一步或兩步郵件驗證?

如果我使用php-jquery ajax方法 - 它是否聰明地在服務器上執行所有驗證(因爲應用程序已經與服務器通信),或者也可能在客戶端保留一些驗證。

其次,是否有PHP的郵件驗證比下面的一個更好的辦法:

If(!filter_var($mail, FILTER_VALIDATE_EMAIL))... 

最後,沒有任何語言,任何架構,任何...無論(Web開發),其中所有的變量,一旦聲明,就可以在項目中每個文件的每個頁面上的任何位置自動使用?

+0

您有無關(或者最好,切向相關的)三個問題。你應該單獨問他們。 – Quentin

+0

[Server Side/Client Side or Both User Input Validation]的可能重複(http://stackoverflow.com/questions/852287/server-side-client-side-or-both-user-input-validation) – Quentin

+0

@Quentin ,刪除這部分沒有問題,但它只需要是或不需要。 – Alegro

回答

1

記住:

總是讓最終驗證服務器

如果您使用PHP/Ajax的表單處理程序,你應該在驗證輸入第一個從用戶和比你提交基於驗證成功發送響應(202或0)。

對於電子郵件驗證,用戶發送的所有數據和表格完成後,你可以給他一個令牌(通過電子郵件),讓他來「激活」賬戶 喜歡的東西http://www.myFakesite.com/activate.php?tkref=2423fuhr334hu(獨特的,每當然用戶)

末的FILTER_VALIDATE_EMAIL這是一個偉大的驗證,但它不檢查DNS記錄

+0

Claudio,如果我使用php ajax,'最終驗證'是'唯一驗證執行',那麼可以嗎? – Alegro

+0

是的,因爲如果您發送並向用戶發送電子郵件,並且他使用虛假電子郵件,則永遠不會將該用戶標記爲「已選中」或激活或您想要的任何XD –