PHP幾個資料處理函數

來源:互聯網
上載者:User
最近在對前端表單輸入資料進行處理中,遇到幾個PHP字串處理函數,真心搞不懂作用是什麼,API說的太過於模糊,看不太懂,求大神幫忙解答一下區別和作用:

  • htmlspecialchars

  • addslashes

  • stripslashes

  • strip_tags

  • nl2br

  • mysql_real_escape_string

我就是想將textarea裡的資料insert into進mysql資料庫,使用者可能輸入html等亂七八糟的字串,插入mysql,我應該怎麼處理?

回複內容:

最近在對前端表單輸入資料進行處理中,遇到幾個PHP字串處理函數,真心搞不懂作用是什麼,API說的太過於模糊,看不太懂,求大神幫忙解答一下區別和作用:

  • htmlspecialchars

  • addslashes

  • stripslashes

  • strip_tags

  • nl2br

  • mysql_real_escape_string

我就是想將textarea裡的資料insert into進mysql資料庫,使用者可能輸入html等亂七八糟的字串,插入mysql,我應該怎麼處理?

標準寫法(請忘掉那一堆亂七八糟的函數):

//檢查防止SQL注入的函數function MySQLCheck(&$value){    //去除斜杠(伺服器配置給予的轉義斜杠)    if (get_magic_quotes_gpc())    {        $value = stripslashes($value);    }    //如果不是數字則加引號(專業的轉義函數)    if (!is_numeric($value))    {        $value = "'" . mysql_real_escape_string($value) . "'";    }    return $value;    //樣本用法:    //$user = SQLCheck($_POST['user']);    //$pwd = SQLCheck($_POST['pwd']);    //$sql = "SELECT * FROM users WHERE user = $user AND password = $pwd";}

函數來源(開源庫):https://github.com/MoonLord-LM/MyPHP
另外,新版PHP已經廢棄mysql擴充,推薦用mysqli擴充了,代碼如下:

//檢查防止SQL注入的函數function MySQLCheck(&$value){    global $Connect;    //去除斜杠(伺服器配置給予的轉義斜杠)    if (get_magic_quotes_gpc())    {        $value = stripslashes($value);    }    //如果不是數字則加引號(專業的轉義函數)    if (!is_numeric($value))    {        $value = "'" . mysqli_real_escape_string($Connect,$value) . "'";    }    return $value;    //樣本用法:    //$user = SQLCheck($_POST['user']);    //$pwd = SQLCheck($_POST['pwd']);    //$sql = "SELECT * FROM users WHERE user = $user AND password = $pwd";}

上面的$Connect是資料庫連接。
注意,這兩個函數都是要在串連了MySQL資料庫之後才能執行,否則會有報錯。
另外,前端如果要展示,那麼也要對script等等標籤進行處理,可以用PHP的str_replace函數進行替換,還有

等等。
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.