一種實用的處理表單參數和URL參數的方法,你想到了嗎

來源:互聯網
上載者:User
【分享】一種實用的處理表單參數和URL參數的方法,你想到了嗎?
本帖最後由 xjl756425616 於 2014-08-07 11:03:45 編輯

當你正在處理很多參數提交的時候,你可能會碰到資料庫查詢,插入等等的操作,
這時你需要轉義或者實體化
對安全不瞭解的phper初學者,寫查詢語句是這樣寫的
$sql="select * from demo where user='".$_POST['user']."'"";

那麼就有sql注入的危險
一般有點經驗的人寫查詢語句是這麼寫的
$sql="select * from demo where user='".addslashes($_POST['user'])."'"";

這樣寫沒問題,就是
1、顯得不專業
2、語句太多,每條都寫,繁瑣,難免遺漏

以我現在的掌握的知識再去寫這條語句的話,我還是會寫
$sql="select * from demo where user='".$_POST['user']."'"";

But我不是初學者,
我會在表單處理檔案開頭加上一句話,
$_POST=array_map("addslashes",$_POST);


實際源碼樣本
$_POST['user']="demo";
$_POST['content']="Hello,It's a book";
$_POST=array_map("addslashes",$_POST);
echo "
";
var_dump($_POST);
?>

列印出來的結果
array(2) {
["user"]=>
string(4) "demo"
["content"]=>
string(18) "Hello,It\'s a book"
}

------解決方案--------------------
所以要這樣寫
$a = array(
'a' => "a'b",
'b' => array("C'd", 123)
);
array_walk_recursive($a, function(&$v) { $v = addslashes($v); });
print_r($a);
Array
(
[a] => a\'b
[b] => Array
(
[0] => C\'d
[1] => 123
)

)

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.