• 11-05-2023, 11:35:42
    #1
    Merhabalar,

    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.
  • 11-05-2023, 11:39:18
    #2
    Teşekkürler
  • 11-05-2023, 11:45:24
    #3
    Teşekkürler hocam.
  • 12-05-2023, 18:18:39
    #4
    Sağolasın hocam güzel bilgi
  • 12-05-2023, 18:48:10
    #5
    flyingatm adlı üyeden alıntı: mesajı görüntüle
    Merhabalar,

    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.
    açıkçası çok katılmıyorum php yukarıdan aşşağıya okunuyor döngü açsanız da açmasanız hız da pek farketmeyecektir. Satır azaltması doğru fakat her veri farklı yanıt vermesi içinde arraya key de [key=>value](ALERT) eklense daha tatlı olurmuş. yazan kişiye göre değişir dediğiniz şey