v2.5.2
Giriş yap

Php ile Json Dosyanın İçine Veri Yazdırma Sorunu

yazilimyolcusu
253 defa görüntülendi

Arkadaşlar bir problemim var. ".Json" dosyanın içine verileri yazdırıyorum ama sadece bir adet veri yazıyor. Rsimleri aktarmada bir problem yok. Diğerleri için şu uyarıyı veriyor. ve ".json" dosyasının içine sadece en son resmi yazıyor. Diğerlerini yazmıyor.
Creating default object from empty value in
Kodlar aşağıda resim de yardımcı olacaktır.

form.php

<form action="galeriformislem.php" method="POST"  enctype="multipart/form-data">
    <div class="col-lg-12 p-1 text-white mt-1">
        <input type="file" name="dosya[]" required multiple>
    </div>
    <br>
     
    <div class="col-lg-12 p-1 text-white mt-1">
        <input type="file" name="dosya[]" required multiple>
    </div>
     
    <br>
    <div class="col-lg-12 p-1 text-white mt-1">
        <input type="file" name="dosya[]" required multiple>
    </div>
     
    <br>
    <div class="col-lg-12 p-1 text-white mt-1">
        <input type="file" name="dosya[]" required multiple>
    </div>
    <br>
    <div class="col-lg-12 p-1 text-white mt-1">
        <input type="number" name="icerikid[]" placeholder="İçerik Id" required>
    </div>
    <br>
    <input type="submit" value="Ürünü Kaydet">    
</form>

galeriformislem.php

<?php
    if(isset($_FILES['dosya'])) {
        $dosya_sayisi = count($_FILES['dosya']["name"]);
        for($i=0; $i<$dosya_sayisi; $i++) {
          $dosya_adi =  $_FILES['dosya']["name"][$i];
          $gecici_yol = $_FILES['dosya']["tmp_name"][$i];
          $icerikid = $_POST['icerikid'];
           
          foreach($icerikid as $index => $names) {
            $icerikid = $names;
            $filename = $icerikid.".json";
            $myObj->ss_dosya_adi = $dosya_adi;
            $dizijson = json_encode($myObj);
            file_put_contents($filename, $dizijson);
            if(move_uploaded_file($gecici_yol, "../../images/indexurunler/" . $dosya_adi)) {
                echo "Aktarıldı";
            }
        }
    }
}
?>

https://www.hizliresim.com/dst3azj
https://www.hizliresim.com/r0wv4pm

Cevap yaz
Cevaplar (3)
mubado
442 gün önce

$myObj->ss_dosya_adi[$index] bu şekilde kullanman senin açından faydalı olacaktır.

yazilimyolcusu
442 gün önce

Üç değişik hata verdi ve ".json" dosyası içine hiç bir aktarım yapılmadı.

Creating default object from empty value in
Undefined variable: icerikid in
Invalid argument supplied for foreach() in

devepdogukan
442 gün önce

En son resmi koymasının sebebi foreach ile dönerek ss_dosya_adi adlı fieldi güncelliyorsun. Burası bir array olmalı ve arrayin icine eskileride alıp yenisini pushlaman gerek.Böyle sadece x = 1 , x = 2 demiş gibi olursun

 $myObj->ss_dosya_adi = [];
 
    foreach($icerikid as $index => $names) {
            $icerikid = $names;
            $filename = $icerikid.".json";
            array_push($myObj->ss_dosya_adi,$dosya_adi);
            $dizijson = json_encode($myObj);
            file_put_contents($filename, $dizijson);
            if(move_uploaded_file($gecici_yol, "../../images/indexurunler/" . $dosya_adi)) {
                echo "Aktarıldı";
            }
    }