it-swarm.asia

Neden kullanmadan önce wp_nonce_field () 'nin mevcut olup olmadığını kontrol etmemizi.

nonce işlevi çalıştırmadan önce var olup olmadığını kontrol neden gerçekten anlamıyorum ...

if ( function_exists('wp_nonce_field') ) 
     wp_nonce_field('gmp_nonce_check');

geriye dönük uyumluluk için anlıyorum ...

Ayrıca geriye dönük uyumluluk için çağırmayı denemeden önce wp_nonce_field işlevinin var olduğunu nasıl doğruladığınızı da fark edin.

ama geri gönderirseniz ben yine de kırmak olmaz kontrol

if ( isset($_POST['submit']) ) {
     check_admin_referer('gmp_nonce_check');
1
Jiew Meng

Cevap, kullanmadan önce wp_nonce_field () 'nin mevcut olup olmadığını kontrol etmemelisiniz!

Kontrolü gerçekleştirme önerisi, fonksiyonun varlığından önceki WordPress sürümleriyle uyumlu olmak istediğinizi varsayar. Rarst, 2.0.4'te tanıtıldığı için haklıysa, daha önce sürümleri desteklememelisiniz, çünkü bunların tümü kesinlikle güvensizdir ve bunları kullanan herkes, ŞİMDİ DOĞRU yükseltmek zorundadır.

Genellikle, etkinleştirilemeyen eklentilerin işlevlerinden farklı olarak, WP içinden işlevlerin olup olmadığını kontrol etmeniz gerekmez.

Alıntı yaptığınız bu yorumu nerede gördünüz? Kaldırılması gerekir.

5
jerclarke

Sorunuzu doğru anlıyorsam - neden check_admin_referer () 'in de tanımlanmış olup olmadığını kontrol etmenin gerekmediğini mi soruyorsunuz?

Dokümanlardan gördüğüm kadarıyla bu işlev wp_nonce_field () öğesinden çok daha eski (WP 1.2.0) (WP 2.0.4'ten beri]. Bu nedenle, eski sürümlerinde check_admin_referer () bulunmayan eski versiyonlarla karşılaşmanızın çok daha düşük olacağını varsayacağım.

1
Rarst

Ölümcül bir hatayı önlemek için bir işlevin var olup olmadığını kontrol edin ve daha sonra kullanmaya çalıştığınız işlevi içermeyen bir WordPress sürümünde kodunuz çalıştırıldığında uygulamanın durması.

Bu geriye dönük uyumluluk sağlıyor mu? Kesinlikle. Daha da önemlisi, bu kontrol, kodunuz çalıştırıldığında uygulamanızın kilitlenmesine neden olmasını engeller:

Hata işleme herhangi bir sistemde “zarif” olmalıdır - bu, uygulamanın kendi hatalarını nasıl tespit edeceğini bilmesi ve son kullanıcılar için en az kesinti ile bunları uygun bir şekilde ele alması gerektiği anlamına gelir. Daha fazla bilgi için http://www.devshed.com/c/a/PHP/PHP-Application-Development-Part-Two/2/#wIxuV7yhLhBTU1UZ.99

Böylece, kodunuzda aşağıdakileri yapabilirsiniz:

if ( function_exists('wp_nonce_field') ) {
 wp_nonce_field('gmp_nonce_check');
} else {
 //do nothing
 exit() ;
}
0
Daryl