簡體   English   中英

在PHP中將filter_var與htmlentities一起使用會很好嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM