TL; DR
Singkatnya, wp_verify_nonce() gunakan nilai itu karena mengharapkan nilai itu sebagai argumen pertama.
wp_verify_nonce() argumen
wp_verify_nonce() menerima 2 argumen:
$nonce
$action
Nilai dalam bidang tersembunyi ( 'cabfd9e42d'dalam contoh Anda) mewakili $nonce.
Argumen pertama adalah yang pertama, dan berasal dari permintaan
Bahkan, wp_verify_nonce()harus digunakan seperti ini:
// here I assume that the form is submitted using 'post' as method
$verify = wp_verify_nonce($_POST['message-send']);
Jadi argumen pertama yang diteruskan wp_verify_nonce()adalah persis nilai yang ada di bidang tersembunyi.
Argumen ke-2: wp_create_nonce()metode
Mengenai argumen kedua, itu tergantung pada bagaimana Anda membangun nilai nonce.
Misal jika Anda melakukannya:
<?php $nonce = wp_create_nonce( 'custom-action' ); ?>
<input type="hidden" name="message-send" value="<?php echo $nonce ?>" />
Maka yang perlu Anda lakukan:
$verify = wp_verify_nonce( $_POST['message-send'], 'custom-action' );
Jadi, argumen kedua adalah apa yang digunakan sebagai argumen wp_create_nonce().
Argumen ke-2: wp_nonce_field()metode
Jika Anda membuat nonce menggunakan wp_nonce_field()like:
wp_nonce_field( 'another_action', 'message-send' );
Maka Anda perlu memverifikasi nonce seperti:
$verify = wp_verify_nonce( $_POST['message-send'], 'another_action' );
Jadi, kali ini, tindakan adalah apa pun yang dilewati sebagai argumen pertama wp_nonce_field().
Rekap
Untuk lulus wp_verify_nonce()validasi, Anda harus melewati 2 argumen ke fungsi, satu adalah nilai di bidang tersembunyi nonce, yang lain adalah tindakan , dan tergantung pada bagaimana nilai nonce dibangun.
$noncenilai di sana - cek mengembalikan false jika$noncenilainya hilang.