Sanitizarea intrărilor de tip întreg pentru update_post_meta
Când actualizezi un post meta unde intrarea va fi întotdeauna un număr întreg, ar trebui să folosesc (int)
sau există o funcție WordPress pentru asta (de exemplu sanitize_text_field
)?
De exemplu:
if(isset($_POST['category_id'])){
update_post_meta($post->ID, 'category_id', (int)($_POST['category_id']));
}

Pentru numerele întregi, KSES nu are nicio funcție specială.
Folosește (int)
sau intval()
sau absint()
Vezi mai mult: Validarea Datelor - Numere Întregi

&safe_id = intval( $_POST['category_id'] );
if ( ! $safe_id ) {
$safe_id = '';
}
update_post_meta( $post->ID, 'category_id', $safe_id );
Funcția intval() convertește input-ul utilizatorului într-un număr întreg și returnează zero dacă valoarea introdusă nu este numerică. Apoi verificăm dacă valoarea rezultată este zero. Dacă este zero, vom salva o valoare goală în baza de date. În caz contrar, vom salva category_id-ul validat corect.

Folosește o instrucțiune condițională pentru a verifica mai întâi dacă $_POST['category_id'])
este un întreg. Funcția PHP este is_int()
1
if(isset($_POST['category_id']) && is_int($_POST['category_id'])){
update_post_meta($post->ID, 'category_id', $_POST['category_id']);
}
De asemenea, ar trebui să elimini spațiile albe din datele $_POST pentru că is_int()
va returna fals dacă șirul conține spații albe2.
