Verot.net Sınıfı İle Yazılmış Resim Küçültme İşleminde Hata
Merhabalar. Ben verot.net sınıfıyla yazılmış bir fotoğraf küçültme koduna sahibim. Fakat sınıf dosyasının 2662. satırında hata veriyor. Neden kayaklı olabilir?
Kodum:
require_once 'config.php'; // dosyamızı dahil ediyoruz
require_once 'class.upload.php'; //class dosyamızı dahil ediyoruz
$upload = new upload($_FILES["image"]);
if ($upload->uploaded) {
$upload->file_auto_rename = true;
$upload->process("uploads/resim");
$upload->file_auto_rename = true;
$upload->image_resize = true;
$upload->image_ratio_crop = false;
$upload->image_x = 271;
$upload->image_y = 150;
$upload->process("uploads/kucuk");
if ($upload->processed) {
$e = "" . $upload->file_dst_name . "";
}
}
$e[0] = "" . $upload->file_dst_name . "";
$sorgu = $pdo->prepare("INSERT INTO posts SET title=?, image=?, url=?, content=?, short_content=?, status=?, category_id=?");
$sorgu->execute([$title, $e, $url, $content, $short_content, $status, $category_id]);
echo '<script type="text/javascript">
swal("", "Veri Eklendi!", "success");
</script>';
Hatam:
Fatal error: Array and string offset access syntax with curly braces is no longer supported in C:\xampp\htdocs\datayukle\class.upload.php on line 2662
Dizinim: https://prnt.sc/T3E-Z0nJgHIw
Tablom: https://prnt.sc/DcR77JQFM_Zn
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
Hata diyor ki:
C:\xampp\htdocs\datayukle\class.upload.php dosyasındaki 2662.satırda, küme parantezleri ile bir array veya string elemanına erişim söz dizimi kullanılmış ama bu söz dizimi artık desteklenmiyor.
Kullandığınız Verot class'ının uyumlu olduğu PHP sürümü ile sizin sunucunuzdaki PHP sürümü uyumsuz gibi görünüyor.
Muhtemelen kullandığınız Verot class'ı PHP'nin 7.4 versiyonundan önceki versiyonlara göre yazılmış ve şöyle bir kullanımla array veya string bir değişkenin index'ine ulaşılmaya çalışılmış: $degisken{0}
PHP 7.4'ten itibaren bu yöntem kullanımdan kaldırıldı ve şu şekilde köşeli parantezli kullanım zorunlu oldu: $degisken[0]
3 yoldan biriyle çözebilirsiniz:
1) Sunucunuzdaki PHP versiyonunu 7.4'ün altında bir sürüme düşürün. Tabi bu başka sorunlara neden olabilir.
2) Hatalı satırı düzeltin: Örnek verdiğim gibi küme parantezli bir kullanım varsa bunu köşeli paranteze çevirin.
3) Verot class'ınızı daha güncel bir versiyonuyla değiştirin. (tavsiyem)