• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/check admin referer

提供: WordPress Codex 日本語版
移動先: 案内検索

この項目「関数リファレンス/check admin referer」は、翻訳チェック待ちの項目です。加筆、訂正などを通して、Codex ドキュメンテーションにご協力下さい。

現在のリクエストが有効な nonce を持っているか、または現在のリクエストが管理画面から参照されたものであるかをテストします。どちらをテストするかは $action が与えられている(これが推奨)かどうかによります。失敗すると、この関数は wp_nonce_ays() 関数を呼び出した後に 終了 (die) します。

セキュリティ脆弱性を防ぐために使用します。

この関数名は今や適切ではありませんが後方互換性のために使われています。また、古いバージョンの WordPress ではこの関数がリファラーのみをチェックしていたことに由来しています。詳しくは、本ページの 参考 セクションを見てください。

使い方

非推奨の使い方

<?php check_admin_referer(); ?>

好ましい使い方

<?php check_admin_referer( $action, $query_arg ); ?>

パラメータ

$action
文字列) (オプション) アクションの名前。実行中のコンテキストを指定してください。(2.0.1 から導入)
初期値: -1
$query_arg
文字列) (オプション) どの $_REQUEST PHP 変数を nonce 値とするか。(2.5 から導入)
初期値: '_wpnonce'

戻り値

  • 上記以外の場合、この関数は適切なメッセージ(デフォルトは「本当に実行していいですか?」)を表示して 終了 (die) します。

用例


下記はプラグインのオプション設定ページで使用する例です。wp_nonce_field() 関数を使って nonce をフォームへ追加します:

<form method="post">
    <!-- 他の入力項目をここに ... -->
    <?php wp_nonce_field( 'name_of_my_action','name_of_nonce_field' ); ?>
</form>

そしてフォーム送信先のページで、フォームが送信されたことを確認し、本当に送信されたものなら値を更新します:

<?php
// 失敗すると check_admin_referer() は自動的に "failed" ページを表示して終了 (die) する。
if ( ! empty( $_POST ) && check_admin_referer( 'name_of_my_action', 'name_of_nonce_field' ) ) {
    // フォームのデータを処理する。例えばフィールドを更新。
}

// フォームを表示する。

参考

  • $action 引数なしの関数使用は非推奨になりました。バージョン 3.2 以降、WP_DEBUG /entrue にすると適切なメッセージ(デフォルトは "You should specify a nonce action to be verified by using the first parameter.")を出力して終了 (die) します。
  • バージョン 2.0.1 以降、リファラーがチェックされるのは $action 引数を省略(またはデフォルトの -1 をセット)したときだけですが、これは nonce を使わない後方互換性のためです。信頼できないリファラーのために nonce を推奨します。さらに、$action を指定するとこの関数は wp_verify_nonce() とほぼ同様に働きますが、wp_verify_nonce() は nonce が無効または無指定なら wp_nonce_ays() を呼び出した後に終了 (die) する点が異なります。

変更履歴

  • 1.2.0: 新規導入

ソースファイル

check_admin_referer()wp-includes/pluggable.php にあります。

WordPress Nonce

Nonce関数: wp_explain_nonce() /en, wp_nonce_ays() /en, wp_nonce_field(), wp_nonce_url(), wp_verify_nonce(), wp_create_nonce() /en, check_admin_referer() /en, check_ajax_referer() /en, wp_referer_field() /en


外部リソース


関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function Reference/check_admin_referer最新版との差分