Sihirli Tırnak
PHP Manual

Sihirli Tırnakların İptali

Uyarı

Bu özelliğin kullanımı PHP 5.3.0'dan beri ÖNERİLMEMEKTEDİR ve PHP 6.0.0'da tamamen KALDIRILACAKTIR. Bu özelliğe kesinlikle güvenmemelisiniz.

magic_quotes_gpc yönergesi sadece sistem seviyesinde etkisiz kılınabilir, çalışma anında yapılamaz. Başka bir deyişle, ini_set() işlevi bir seçenek değildir.

Örnek 1 - Sihirli tırnakların sunucu taraflı iptali

Aşağıdaki örnekte php.ini içinde bu yönergelere değer olarak Off atanmaktadır. Bu konuda daha ayrıntılı bilgi edinmek için Yapılandırma ayarlarının değiştirilmesi bölümüne bakınız.

; Sihirli tırnakların iptali
;

; Gelen GET/POST/Cookie verisi için sihirli tırnaklar
magic_quotes_gpc = Off

; Çalışma anında üretilen (SQL veya exec() kaynaklı) veri için
magic_quotes_runtime = Off

; Sybase-tarzı sihirli tırnak kullanımı (' yerine \' değil '').
magic_quotes_sybase = Off

Eğer sunucuda yapılandırma dosyasına erişim ve değişiklik mümkün değilse, .htaccess kullanmak da bir seçenektir. Örnek:

php_flag magic_quotes_gpc Off

Taşınabilir kod (her ortamda çalışan kod) yazmaya yönelik olarak, ayarların sunucu seviyesinde değiştirilmesi mümkün değilse magic_quotes_gpc yönergesi örnekteki gibi çalışma anında etkisiz kılınabilir. Bu yol fevkalade verimsizdir ancak uygun yönergeleri başka bir yerden atamaya tercih edilir.

Örnek 2 - Sihirli tırnakların çalışma anında iptali

<?php
if (get_magic_quotes_gpc()) {
    function 
stripslashes_deep($value)
    {
        
$value is_array($value) ?
                    
array_map('stripslashes_deep'$value) :
                    
stripslashes($value);

        return 
$value;
    }

    
$_POST array_map('stripslashes_deep'$_POST);
    
$_GET array_map('stripslashes_deep'$_GET);
    
$_COOKIE array_map('stripslashes_deep'$_COOKIE);
    
$_REQUEST array_map('stripslashes_deep'$_REQUEST);
}
?>


Sihirli Tırnak
PHP Manual