ホームページ  >  記事  >  バックエンド開発  >  PHPのget_magic_quotes_gpc()関数の詳細な説明

PHPのget_magic_quotes_gpc()関数の詳細な説明

墨辰丷
墨辰丷オリジナル
2018-05-26 10:16:454640ブラウズ

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 データに対して使用されます。

関数 get_magic_quotes_gpc() を使用すると、この状況を検出できるため、magic_quotes_gpc によってエスケープされた文字列に対して addlashes() を使用しないでください。

データベース攻撃を防ぐための 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[&#39;user&#39;]);
$pwd = check_input($_POST[&#39;pwd&#39;]);
$sql = “SELECT * FROM users WHERE
user=$user AND password=$pwd”;
mysql_query($sql);
mysql_close($con);
?>

概要は次のとおりです:

1. magic_quot の場合 es_gpc =オン,

データベースからの文字列データの入出力に対して

addslashes()とstripslashes()を実行する必要はなく、

入力に対してaddslashes()を実行すればデータは正常に表示されます。このときのデータは、

次に、出力時に余分なバックスラッシュを削除するために、stripslashes() を使用する必要があります。

2. magic_quotes_gpc=off の場合、入力データを処理するために、addslashes() を使用する必要があります。 tripslashes(.) 形式の出力を使用する必要はありません

addslashes() はバックスラッシュをデータベースに書き込まないため、mysql が SQL ステートメントの実行を完了するのに役立つだけです

上記はこの記事の全内容です、皆様の学習に役立つことを願っています

関連する推奨事項:

php get_magic_
quotes

_gpc() 関数の使用説明

php の自動エスケープの問題、magic_ の歴史的遺産について。構成内の quotes_gpc

php get_magic_quotes_gpc() 関数の使い方の紹介


以上がPHPのget_magic_quotes_gpc()関数の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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