ホームページ  >  記事  >  バックエンド開発  >  PHP5.3 は eregi() 関数をサポートしていません。preg_match を使用して変換するにはどうすればよいですか?神にアドバイスを求める

PHP5.3 は eregi() 関数をサポートしていません。preg_match を使用して変換するにはどうすればよいですか?神にアドバイスを求める

WBOY
WBOYオリジナル
2016-06-13 13:44:03820ブラウズ

PHP5.3 は eregi() 関数をサポートしていません。preg_match を使用して変換するにはどうすればよいですか?神様にアドバイスを求めてください!
function inject_check($sql_str) {
$check=eregi('select|insert|update|delete|'|\*|*|../|./|union|into|load_file|outfile', $sql_str); // Filter
if($check){
echo "不正な挿入コンテンツを入力してください!";
exit();
}else{
return $sql_str;
}
}
今日、SQL インジェクションを防ぐいくつかの方法を見つけるためにオンラインにアクセスしましたが、実行後、eregi() 関数がバージョン 5.3 では使用できないことがわかり、有効期限が切れた関数があるので、オンラインで探してみました。情報によると、オンラインのコメントでは、eregi() 関数の代わりに preg_match() 関数が使用されているとも書かれていますが、関数名を に変更すると機能しません。 preg_match パラメータが間違っているようです。正しい preg_match を変更する方法を教えてください。ありがとうございます。

-----解決策---------

PHP コード

preg_match('/select|insert|update|delete|'|\*|*|../|./|union|into|load_file|outfile/i',$sql_str);
<br><font color="#e78608">------解決策------------------</font><br>
PHP コード

関数 inject_check($sql_str) {
    $check=preg_match('/select|insert|update|delete|'|\*|*|../|./|union|into|load_file|outfile/i',$sql_str); // フィルタ
    if($check){
        echo "不正な挿入コンテンツを入力してください!";
        出口();
    }それ以外{
        $sql_str を返します。
    }
<div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。