TL; DR
Короче говоря, wp_verify_nonce()
использует это значение, потому что ожидает это значение в качестве первого аргумента.
wp_verify_nonce()
аргументы
wp_verify_nonce()
получает 2 аргумента:
$nonce
$action
Значение в скрытом поле ( 'cabfd9e42d'
в вашем примере) представляет $nonce
.
1-й аргумент - это одноразовый номер, полученный из запроса
На самом деле, wp_verify_nonce()
должны быть использованы так:
// here I assume that the form is submitted using 'post' as method
$verify = wp_verify_nonce($_POST['message-send']);
Таким образом, первый передаваемый аргумент wp_verify_nonce()
- это именно то значение, которое присутствует в скрытом поле.
2-й аргумент: wp_create_nonce()
метод
Что касается второго аргумента, это зависит от того, как вы строите одноразовое значение.
Например, если вы сделали:
<?php $nonce = wp_create_nonce( 'custom-action' ); ?>
<input type="hidden" name="message-send" value="<?php echo $nonce ?>" />
Тогда вам нужно сделать:
$verify = wp_verify_nonce( $_POST['message-send'], 'custom-action' );
Итак, второй аргумент - это то, что использовалось в качестве аргумента wp_create_nonce()
.
2-й аргумент: wp_nonce_field()
метод
Если вы создали одноразовый номер, используя wp_nonce_field()
как:
wp_nonce_field( 'another_action', 'message-send' );
Затем вам нужно проверить одноразовый номер так:
$verify = wp_verify_nonce( $_POST['message-send'], 'another_action' );
Итак, на этот раз действие - это то, что передано в качестве первого аргумента wp_nonce_field()
.
резюмировать
Чтобы пройти wp_verify_nonce()
валидацию, вам нужно передать 2 аргумента функции, один из которых - значение в скрытом поле nonce, другой - действие и зависит от того, как было создано значение nonce.
$nonce
значение - проверка возвращает false, если$nonce
значение отсутствует.