Ufak bir bilgilendirme yapmak istiyorum PHP'de yeni ya da bu yöntemi izlemeyen arkadaşlarım ile ilgili.
Çok kötü kod örneği:
<?php
if (!isset($_POST["event_title"])) {
// Existence check
$text = esc_html__("Request has been denied by website due to security reasons!", 'hpc');
wp_send_json_error($text);
}
if (!isset($_POST["event_desc"])) {
// Existence check
$text = esc_html__("Request has been denied by website due to security reasons", 'hpc');
wp_send_json_error($text);
}
if (!isset($_POST["event_date"])) {
// Existence check
$text = esc_html__("Request has been denied by website due to security reasons", 'hpc');
wp_send_json_error($text);
}
?>Kötü kod örneği:<?php
if (!isset($_POST["event_desc"]) || !isset($_POST["event_title"] || !isset($_POST["event_date"]) ) ) {
// Existence check
$text = esc_html__("Request has been denied by website due to security reasons", 'hpc');
wp_send_json_error($text);
}
?>Bunlar gerçekten çok sayıda client tarafından veri beklediğiniz durumlarda; oldukça karışık ve uzun doğrulamalar gerektirebilir. Bunun çokça yapıldığını görüyorum incelediğim sistemlerde.Doğru kod örneği:
<?php
$expected_post_values = array("nonce_ajax", "term_id", "event_title", "event_desc", "event_formatted_date", "event_time", "event_location", "event_place_id");
foreach($expected_post_values as $value){
// Expected value doesn't exist!
if(!isset($_POST[$value])){
$text = esc_html__("Request has been denied by website due to security reasons!", 'hpc');
wp_send_json_error($text);
}else{
// Expected value is empty!
if(sanitize_text_field($_POST[$value]) == ""){
$text = esc_html__("Request has been denied by website due to security reasons!", 'hpc');
wp_send_json_error($text);
}
}
}
?>Doğru kod örneğinde verilen kod kısaca beklenen verileri array içine alıp, ardından gereksiz onlarca satırla uğraşmadan; sadece array'i loop'lamamız ile bize pek çok satır kazandırabilir ve okunabilirliği gerçekten arttıracaktır.