PHP用戶輸入數據進行過濾


1.在表單中,input項,如果用戶輸入的是英文狀態下的雙引號或單引號,數據保存后。以后又在后台編輯的時候,<input value=" "這是帶引號的值,因為引號導致問題" " ...>因為雙引號或單引號的原因,發現數據“丟失”。

2.因此要將輸入數據中引號變成html實體。

3.怎么變?答曰:htmlentities或者htmlspecialchars

根據PHP手冊來看,htmlentities或者htmlspecialchars幾乎一樣,而我使用中發現,字符串中有法文等用htmlentities會被轉為html實體,用htmlspecialchars不會,而html實體除了<>&' " 沒必要轉換,所以最好用htmlspecialchars

    //php 5.2.6
    $text = trim($text);//去除數據頭尾空格
    //$text = strip_tags($text); //去掉html標簽,根據情況決定是否用此
    $text = htmlentities($text,ENT_QUOTES);//單引號,雙引號都轉化    

4.發現出來的數據是亂碼!

5.原來,雖然htmlentities是默認UTF-8,但是還是要加上。

    $text = trim($text);
    //$text = strip_tags($text);
    $text = htmlentities($text,ENT_QUOTES,"UTF-8");

6.嗯,正常了,英文雙引號變成了&quot;   <變成了&lt;等

7.對用戶數據再次編輯的時候,直接從數據庫讀出來,塞給input的value即可,不需要轉碼處理之后再塞給input。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM