ホームページ >バックエンド開発 >PHPチュートリアル >phpのstripslashesとaddslashes_PHPチュートリアルの違い

phpのstripslashesとaddslashes_PHPチュートリアルの違い

WBOY
WBOYオリジナル
2016-07-13 10:39:581021ブラウズ

mysql にデータを書き込む場合、たとえば:

コードをコピーします コードは次のとおりです:

mysql_query("update table set `title`='kuhanzhu's blog'");


すると、何か問題が発生します。 ASP と同様、データベースは一重引用符にアレルギーがあります。そして、addslashes は現時点で最も価値があり、asp の replace(""",""","kuhanzhu のブログ") と同じ機能を持っています。 セキュリティのために、PHP は関数

magic_quotes_gpc = On を導入しました。この関数は、処理を行わずにデータベースに直接一重引用符を挿入できます。その後、Off の場合は、操作を盲目的に信頼するのではなく、一重引用符の問題を考慮する必要があります。環境。

magic_quotes_gpc = On

の場合、addslashes()で処理したデータが'の形でデータベースに保存されます。この時直接出力してみると、予想以上に内容が多いことが分かります。 stripslashes()が表示されると、それを削除できます(str_replace("", "",$Str)とは異なります)。 magic_quotes_gpc = Off

の場合、

addslashes() を使用して処理されたデータは ' の形式でデータベースに保存されます。addslashes() は、エラーなしでデータを挿入する役割を果たします。この時点で直接出力すると、データは正常になります。もう stripslashes() を使用する必要はありません。 addslashes() とtripslashes() はまったく逆です。 ダイレクト メモリ:addslashes() は 1 つ追加し、stripslashes() は 1 つ削除します

それでは、いつ使用すればよいですか?


簡単に言えば:
magic_quotes_gpc = On の場合、システムは一重引用符などの問題を自動的に処理します。addslashes() とtripslashes() を使用するかどうかは関係ありませんが、データを追加するときにaddslashes() を使用する場合は、stripslashes() を使用する必要があります。データを表示するときに使用されます

magic_quotes_gpc = Off の場合、システムは一重引用符などの問題を処理しないため、データを挿入する場合は addslashes() を使用する必要があり、データを表示する場合はtripslashes() を使用する必要はありません。

分析ができたので、プログラムを実行するときに何をすべきでしょうか?上記 2 つの状況によれば、次のことが得られます:

magic_quotes_gpc がオンかオフかに関係なく、データを追加するときは addslashes() を使用します。オンの場合は、stripslashes() を使用する必要があり、オフの場合は、stripslashes() を使用できません。

オンかオフかを判断するにはどうすればよいですか? get_magic_quotes_gpc() を使用します。

最後の例:



コードをコピー

コードは次のとおりです: コード
//データを送信、または変数の準備:
$Content=addslashes("これは、単一のデータがあるかどうかに関係なく、データです引用符または変数 ”);
//データベースにデータを挿入します。コードは省略されます
//データの表示を開始します
$Content=”データベースから読み取られたデータ”;
if(get_magic_quotes_gpc()){
$Content=stripslashes($コンテンツ);
}
echo $Content;



http://www.bkjia.com/PHPjc/728080.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/728080.html技術記事たとえば、mysql にデータを書き込む場合、次のようにコードをコピーします。 mysql_query("update table set `title`='kuhanzhu's blog'"); エラーが発生します。 ASP と同じように、データベースは...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。