v2.5.2
Giriş yap

Verot.net Sınıfı İle Yazılmış Resim Küçültme İşleminde Hata

ilkertuncer
337 defa görüntülendi

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

Cevap yaz
Cevaplar (2)
rephp7
688 gün önce

verot class'ın hangi sürümünü kullanıyorsun? sitesinden güncelini indirip dene.

ebykdrms
688 gün önce

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)