file_get_contents wrapper is disabled in server hatası, sunucu ile fonksiyon uyumsuzluğunu gösterir. Bu fonksiyonu kullanabilmeniz için sunucudan etkinleştirmelisiniz. Bu PHP fonksiyonu, uzak sunucuya veriyi post edip dönüş alır.
Sunucunuzda PHP.ini dosyasına şu satırları ekleyin:
allow_url_fopen = 1
allow_url_include = 1
Varsa ve değerleri 0 ise 1 olarak değiştirin. Konumuzun teknik analizine geçelim.
file_get_contents() wrapper nedir?
PHP’de wrapper, bir kaynağa (dosya, stream, URL vb.) erişim sağlayan bir arabirimdir. file_get_contents() fonksiyonu normalde yerel dosya okuma işlevine sahiptir, fakat URL wrapper aktif edilirse HTTP/HTTPS/FTP gibi uzak kaynaklara da erişebilir. Örnek PHP kodu:
$data = file_get_contents("local.txt");
$data = file_get_contents("https://recepserit.com/data.json");
allow_url_fopen parametresi ne iş yapıyor?
Bu değeri 1 yaparsanız fopen(), file(), file_get_contents() gibi dosya fonksiyonları URL ile de çalışabilir. Yani PHP bu fonksiyonlarla HTTP/HTTPS/FTP üzerinden veri çekebilir.
allow_url_include nedir?
include, require gibi kod dahil etme fonksiyonlarının da uzak URL’lerden çalışmasına izin verir. Bu sebeple risklidir. Güvenlik açısından da çoğu zaman 0 olarak b ırakılır.
Yani include “https://recepserit.com/malicious.php”; gibi zararlı bir dosyanın kullanımı mümkün olur.
Hosting tarafında durum var mı?
Paylaşımlı hosting firmaları genelde güvenlik nedeniyle allow_url_include parametreyi kapalı bırakır. allow_url_fopen de çoğu firmada kapalı olabilir. Bu durumda WordPress/OpenCart gibi hazır sistemlerde bazı fonksiyonları çalışmaz.
Bunun için çözüm ise:
.htaccess veya php.ini / user.ini içine allow_url_fopen = On
Hosting tarafında bu izin verilmiyorsa cURL kullanabilirsiniz. Bu da ayrı bir konu olur.
Yorum bırakın