ホームページ >バックエンド開発 >PHPチュートリアル >PHP における addcslashes 関数とtripcslashes 関数の使用法に関する分析

PHP における addcslashes 関数とtripcslashes 関数の使用法に関する分析

WBOY
WBOYオリジナル
2016-07-29 09:07:201452ブラウズ

この記事では、PHP での addcslashes 関数とtripcslashes 関数の使用法を例とともに分析します。ご参考までに、詳細は以下の通りです:

私は英語版のウェブサイトを書くとき、書き終わった後に英語の情報を記入します。何気なく入力しましたが、指定された内容を入力するたびに入力できません。データベースを確認したところ、このフィールドには「TEXT」データ型が使用されていることがわかりました。長すぎたので、データ型を「ロングテキスト」に変更しましたが、送信しても同じ問題が発生することがわかりました。 addcslashes 関数を紹介しましょう

その後、同僚に助けを求めたところ、MySQL がここで実行されると自動的にステートメントが終了したものとみなされることがわかりました。追加することはできません。問題が見つかったので、対応する解決策を見つける必要があります。それは、テキスト コンテンツ内のすべての "'" の前にエスケープ文字 "" を追加することです。たまたま、PHP にはエスケープ文字を自動的に追加または削除する機能が備わっています。文字列からの関数は addcslashes とtripcslashes なので、テストを追加した後、問題は解決しました。平日にプログラムを作成するときは、ハッカーがこれらの詳細を発見しても、常に無視していることがわかります。問題とそれを悪用した場合、Web サイトは基本的に終わりです。したがって、誰もがこれを警告として受け取り、私と同じ間違いを犯さないようにしてください。

これら 2 つの関数の使用法を簡単に紹介します:

string addcslashes(string str, string charlist)

最初のパラメータ str は失われたオブジェクトの元の文字列です

2 番目のパラメータ charlist は次のことを示します元の文字列内でどの文字の前に文字 "" が付いているかを確認する必要があります。

string Stripeslashes(string str)

文字列から「」を削除します。

さらに、addslashes 関数を使用して、「'」を直接エスケープすることもできます。

例は次のとおりです:

<&#63;php
$sql = "update book set bookname='let's go' where bookid=1";
 echo $sql."<br/>";
 $new_sql = addcslashes($sql,"'");
 echo $new_sql."<br/>";
 $new_sql_01 = stripcslashes($new_sql);
 echo $new_sql_01."<br/>";
 echo addslashes($sql);
?>

実行結果は次のとおりです:

update book set bookname='let's go' where bookid=1
update book set bookname=\'let\'s go\' where bookid=1
update book set bookname='let's go' where bookid=1
update book set bookname=\'let\'s go\' where bookid=1

この記事が PHP プログラミングの皆様のお役に立てば幸いです。

上記では、PHP の addcslashes 関数とtripcslashes 関数の使用分析を、関連する側面も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

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