ホームページ >バックエンド開発 >PHPチュートリアル >php get_magic_quotes_gpc() 関数の使用手順
get_magic_quotes_gpc 関数は、ユーザーが提供したデータにスラッシュを追加するかどうかを決定するために使用されます。これは php.ini 設定ファイル内にあります。この記事では get_magic_quotes_gpc() 関数の説明を紹介します。以下のエディターで見てみましょう get_magic_quotes_gpc 関数は、ユーザーが指定したデータにスラッシュを追加するかどうかを決定するために使用されます。これは php.ini 設定ファイルにあります。
関数の説明を紹介します。 get_magic_quotes_gpc関数の紹介PHPのシステム関数であるPHP環境変数magic_quotes_gpcの値を取得します。
構文:long get_magic_quotes_gpc(void);
戻り値:long integer
この関数は、PHP 環境設定の変数 magic_quotes_gpc (GPC、Get/Post/Cookie) の値を取得します。 0 を返すとこの機能がオフになることを意味し、1 を返すとこの機能がオンになることを意味します。
magic_quotes_gpc がオンになっている場合、すべての ' (一重引用符)、” (二重引用符)、(バックスラッシュ) および null 文字はバックスラッシュを含むオーバーフロー文字に自動的に変換されます。
Magic_quotes_gpc 設定は自動的に GPC に設定されます ( '" get、post、cookie によって渡されるデータにはバックスラッシュが追加されます。 get_magic_quotes_gpc() を使用してシステム設定を検出できます。
この設定がオンになっていない場合は、addslashes() 関数を使用して追加できます。その機能は、データベース クエリ ステートメントで必要な場合に特定の文字の前にバックスラッシュを追加することです。
これらの文字は、一重引用符 (')、二重引用符 (")、バックスラッシュ ()、および NUL (NULL 文字) です。
デフォルトでは、PHP 命令の magic_quotes_gpc がオンになっており、主にすべての GET、POST、COOKIE データに対して使用されます。
magic_quotes_gpc によってエスケープされた文字列に対しては addlashes() を使用しないでください。この状況が発生した場合は、
get_magic_quotes_gpc() 関数を使用できます。データベース攻撃を防ぐためにget_magic_quotes_gpc()を使用する正しい方法
コードは次のとおりです<?php function check_input($value) { // 去除斜杠 if (get_magic_quotes_gpc()) { $value = stripslashes($value); } // 如果不是数字则加引号 if (!is_numeric($value)) { $value = “‘” . mysql_real_escape_string($value) . “‘”; } return $value; } $con = mysql_connect(“localhost”, “hello”, “321″); if (!$con) { die(‘Could not connect: ‘ . mysql_error()); } // 进行安全的 SQL $user = check_input($_POST['user']); $pwd = check_input($_POST['pwd']); $sql = “SELECT * FROM users WHERE user=$user AND password=$pwd”; mysql_query($sql); mysql_close($con); ?>要約は次のとおりです:
1の場合。 on,
us データベースから入出力される文字列データに対して
addslashes()とstripslashes()を実行する必要はなく、onでaddslashes()を実行すればデータは正常に表示されます。このときの入力データは、その後、出力するときに、stripslashes() を使用して余分なバックスラッシュを削除する必要があります2。magic_quotes_gpc=off の場合、
は入力データを処理するために addslashes() を使用する必要があります。ただし、stripslashes() を使用する必要はありません フォーマットされた出力
addslashes() はバックスラッシュをデータベースに書き込まないため、mysql が SQL ステートメントの実行を完了するのに役立つだけです
以上がphp get_magic_quotes_gpc() 関数の使用手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。