TL; DR
Krótko mówiąc, wp_verify_nonce()
używa tej wartości, ponieważ oczekuje jej jako pierwszego argumentu.
wp_verify_nonce()
argumenty
wp_verify_nonce()
otrzymuje 2 argumenty:
$nonce
$action
Wartość w ukrytym polu ( 'cabfd9e42d'
w twoim przykładzie) reprezentuje $nonce
.
Pierwszy argument jest nonce i pochodzi z żądania
W rzeczywistości wp_verify_nonce()
muszą być używane w ten sposób:
// here I assume that the form is submitted using 'post' as method
$verify = wp_verify_nonce($_POST['message-send']);
Tak więc pierwszym przekazywanym argumentem wp_verify_nonce()
jest dokładnie wartość obecna w ukrytym polu.
Drugi argument: wp_create_nonce()
metoda
Jeśli chodzi o drugi argument, zależy to od sposobu budowania wartości nonce.
Np. Jeśli zrobiłeś:
<?php $nonce = wp_create_nonce( 'custom-action' ); ?>
<input type="hidden" name="message-send" value="<?php echo $nonce ?>" />
Następnie musisz zrobić:
$verify = wp_verify_nonce( $_POST['message-send'], 'custom-action' );
Tak więc drugi argument jest tym, co zostało użyte jako argument wp_create_nonce()
.
Drugi argument: wp_nonce_field()
metoda
Jeśli utworzyłeś nonce używając wp_nonce_field()
:
wp_nonce_field( 'another_action', 'message-send' );
Następnie musisz zweryfikować nonce:
$verify = wp_verify_nonce( $_POST['message-send'], 'another_action' );
Tym razem akcja jest tym, co przekazano jako pierwszy argument wp_nonce_field()
.
Podsumować
Aby przekazać wp_verify_nonce()
sprawdzanie poprawności, musisz przekazać 2 argumenty do funkcji, jeden to wartość w ukrytym polu nonce, drugi to akcja i zależy od tego, jak zbudowano wartość nonce.
$nonce
Tam też masz wartość - czek zwraca wartość false, jeśli$nonce
brakuje wartości.