ホームページ php教程 php手册 addslashes,mysql_real_escape_string和mysql_escape_string介绍

addslashes,mysql_real_escape_string和mysql_escape_string介绍

May 25, 2016 pm 04:47 PM

本文章来给大家简单介绍关于在php中addslashes() ,mysql_real_escape_string() 和mysql_escape_string()的一些用法与区别,有举的朋友可参考.

以前还真没有关注过这面的事情.自己在写的时候都是用了一个很简单的函数addslashes() 函数在指定的预定义字符前添加反斜杠.

这些预定义字符是:

•单引号 (')

•双引号 (")

•反斜杠 ()

•NULL

实例代码如下:

<?php  
function as_array(&$arr_r)  
{  
    foreach ($arr_r as &$val) is_array($val) ? as_array($val):$val=addslashes($val);  
    unset($val);  
} 
as_array($_POST);  
?>
ログイン後にコピー

虽然国内很多PHP程序员仍在依靠addslashes防止SQL注入,还是建议大家加强中文防止SQL注入的检查.addslashes的问题在 于黑客 可以用0xbf27来代替单引号,而addslashes只是将0xbf27修改为0xbf5c27,成为一个有效的多字节字符,其中的0xbf5c仍会 被看作是单引号,所以addslashes无法成功拦截.

当然addslashes也不是毫无用处,它是用于单字节字符串的处理,多字节字符还是用mysql_real_escape_string吧.另外对于php手册中get_magic_quotes_gpc的举例:

实例代码如下:

if (!get_magic_quotes_gpc()) { 
    $lastname = addslashes($_POST[&#39;lastname&#39;]); 
} else { 
    $lastname = $_POST[&#39;lastname&#39;]; 
}
ログイン後にコピー

最好对magic_quotes_gpc已经开放的情况下,还是对$_POST['lastname']进行检查一下.

再说下mysql_real_escape_string和mysql_escape_string这2个函数的区别:

mysql_real_escape_string 必须在(PHP 4 >= 4.3.0, PHP 5)的情况下才能使用. mysql_escape_string (PHP 4 >= 4.0.3, PHP 5, 注意:在PHP5.3中已经弃用这种方法,不推荐使用),

<?php 
// 说明:用 array_map() 调用 mysql_real_escape_string 清理数组 
function mysqlClean($data) 
{ 
    return (is_array($data))?array_map(&#39;mysqlClean&#39;, $data):mysql_real_escape_string($data); 
} 
?>
ログイン後にコピー

两者的区别是:mysql_real_escape_string 考虑到连接的当前字符集,而mysql_escape_string 不考虑.

总结一下:

实例代码如下:

<?php 
 function escape($str){ 
    if(function_exists(&#39;mysql_escape_string&#39;)){ 
        return mysql_escape_string($str); 
    }elseif( function_exists(...real_escape...)){ 
        //real_escape 
    }else{ 
        if(MAGIC_QUOTER ....判断){ 
            return $str 
        }else{ 
            return addslashes($str); 
        } 
    } 
} 
?>
ログイン後にコピー


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)