Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

PHP avoid SQL injection 2

Posted on 2007 年 9 月 8 日2021 年 3 月 12 日 By 日落 在〈PHP avoid SQL injection 2〉中有 1 則留言

之前在網路上找到一個函式可以分辨 php.ini 是否有開啟 magic_quote 並且把傳入的字串做處理:

function quotes($content){
if (!get_magic_quotes_gpc()) {
if (is_array($content)) {
foreach ($content as $key=>$value) {
$content[$key] = addslashes($value);
}
} else {
addslashes($content);
}
}
return $content;
}

不過因為一個表單的欄位絕對不只十幾個,有可能超過一百的欄位,所以每次用到一個欄位就要自己打一次 $variabal = quotes( $variable ) 實在很不方便。

我想偷懶,所以用 foreach 把 $_POST 和 $_GET 的值一次處理完丟到 $http_post 和 $http_get 中,只要程式執行前執行一次所有欄位就全部處理完了。

function quotes($content){
if (!get_magic_quotes_gpc()) {
if (is_array($content)) {
foreach ($content as $key=>$value) {
$content[$key] = addslashes($value);
}
} else {
addslashes($content);
}
}
return $content;
}

foreach( $_POST as $key => $value ){
$http_post[$key] = quotes( $value );
}
foreach( $_GET as $key => $value ){
$http_get[$key] = quotes( $value );
}
Tags:PHP, 程式設計

文章導覽

Previous Post: 史上最難的腦筋急轉彎
Next Post: 「機」瘟

Comment (1) on “PHP avoid SQL injection 2”

  1. ChihPing表示:
    2011 年 9 月 9 日06:04

    Code寫的又精簡又明白
    感謝你的分享….

    回覆

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.