この記事では、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 関数を使用して、「'」を直接エスケープすることもできます。
例は次のとおりです:
<?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 チュートリアルに興味のある友人に役立つことを願っています。