[英]Is it good to use filter_var with htmlentities in PHP?
我正在驗證POST請求變量,我以前經常這樣做:
$email = htmlentities($_POST['email']);
但是現在我搜索並了解了關於filter_var的信息,並且正在像這樣進行驗證:
$email = filter_var(htmlentities($_POST['email']), FILTER_SANITIZE_EMAIL);
哪種方法更好? 對於所有類型的輸入[電話-字符串-等。]我必須使用什么?
抱歉,我是一個初學者,已經研究了手冊,但我不太了解。
感謝幫助。
僅對電子郵件使用以下行:
filter_input(INPUT_POST, "email", FILTER_SANITIZE_EMAIL);
這樣可以從電子郵件字符中正確刪除非法字符(例如;
並保留合法字符,例如&
或+
使用htmlentities
可能會將合法的電子郵件地址轉換為非法的電子郵件地址,然后FILTER_SANITIZE_EMAIL
將被破壞。
如果要處理標簽或描述的用戶輸入,則可以正常存儲所述輸入 (使用准備好的語句以使DB正確轉義輸入),並在頁面上顯示時使用htmlentities
。 另外,您可以使用:
filter_input(INPUT_POST, "description", FILTER_SANITIZE_STRING);
該字符串對過濾條標簽進行消毒。
您可以在以下位置檢查更多過濾器: http : //php.net/manual/en/filter.filters.sanitize.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.