PHP自己寫留言板~如合防語法

EX:對方在留言板輸入<P>

我一樣要讓他顯示<P>

如何作

<PRE> 不可行

<span> 不可行

P.s 不想把<這種符號去掉

我相信自己寫留言板一定碰過這種問題?

防語法炸彈之類的

越詳細越好

2 個解答

評分
  • 阿言
    Lv 4
    1 0 年前
    最佳解答

    利用 str_replace 來替換那些關鍵字即可

    例如: 留言的變數為 book_body

    那麼將< > 這些關鍵字替換掉

    ex:

    $book_body = str_replace('<',"&lt;",$book_body);

    $book_body = str_replace('>',"&gt;",$book_body);

    說明: &lt; 在html裡即表示為 <

    再給您一個function,可以簡單的處理這些特殊字,表示出原始留言的樣子,以下為主程式

    function StrReplace($str){

    $str = StripSlashes($str);

    $str = str_replace(chr(92),'',$str);

    $str = str_replace(chr(47),'',$str);

    $str = str_replace(chr(10).chr(13),"<br>",$str);

    $str = str_replace('<',"&lt;",$str);

    $str = str_replace('>',"&gt;",$str);

    $str = str_replace(';',";",$str);

    $str = str_replace('"',"「",$str);

    $str = str_replace("'","『",$str);

    $str = str_replace(" "," ",$str);

    $str = str_replace("/**/"," ",$str);

    return trim($str);

    }

    使用方法以上面的 book_body 為例

    只要直接帶入book_body變數值即可

    ex:

    $book_body = StrReplace($book_body);

    這樣就ok囉,試試看吧

    參考資料: 要寫網頁可以參考小弟網站: http://www.li888.com.tw
  • Daniel
    Lv 5
    1 0 年前

    其實只要用就行了 htmlspecialchars()

    在存入資料庫時($contents為留言內容變數)

    $contents = htmlspecialchars($contents) ;

還有問題?馬上發問,尋求解答。