• 09-01-2019, 20:23:57
    #1
    Selamlar,

    Sitemin Log'larına baktığımda şöyle bir hata veriyor.

    2019/01/09 19:45:45 [error] 4606#4606: *5294178 FastCGI sent in stderr: "ontent/themes/Newspaper/ahmet/template-parts/dual-table.php on line 1255

    1255. Satır buraya denk geliyor -> "$f4 = implode('<br>',unserialize($fields4['features_3'][0]));
    "

    Kodun tamamı ise şu şekilde.


    <?php
            $f1 = implode('<br>',unserialize($fields1['features_3'][0]));
            $f2 = implode('<br>',unserialize($fields2['features_3'][0]));
            $f3 = implode('<br>',unserialize($fields3['features_3'][0]));
            $f4 = implode('<br>',unserialize($fields4['features_3'][0]));
            if(trim($f1) !== "" || trim($f2) !== "" || trim($f3) !== "" || trim($f4) !== ""){
                ?>
                <tr>
                    <td><strong>3. Arka Kamera Özellikleri</strong></td>
                    <td class="telefon-renk"><?= ($f1 !== "")? $f1:""; ?></td>
                    <td class="telefon-renk"><?= ($f2 !== "")? $f2:""; ?></td>
                    <td class="telefon-renk hide-sm"><?= ($f3 !== "")? $f3:""; ?></td>
                    <td class="telefon-renk hide-sm"><?= ($f4 !== "")? $f4:""; ?></td>
                </tr> <?php } ?>




    Yardımcı olabilcek biri varmıdır?
  • 21-01-2019, 22:51:46
    #2
    Bilen birileri var mıdır ?
  • 22-01-2019, 11:54:30
    #3
    Hata mesajı tam olarak böyle mi? Yoksa kestiğiniz bir yer var mı?

    2019/01/09 19:45:45 [error] 4606#4606: *5294178 FastCGI sent in stderr: "ontent/themes/Newspaper/ahmet/template-parts/dual-table.php on line 1255

    Çok yüksek ihtimalle Undefined Index, Undefined Offset ya da Undefined Variable hatalarından biri ama bu hata mesajı kırpılmış o yüzden net bir şey söyleyemiyorum. Paylaşmış olduğunuz satırlarda bir hata yok, ki zaten syntax hatası olmadığı müddetçe hata başka satırlardan buraya taşınan bir hata olacaktır. Yani örnek veriyorum $abc diye bir değişken yoktur ama kullanmak istemişsinizdir. $abc diye bir değişkenin [0] indexi yoktur da kullanmak istemişsinizdir vs.
  • 22-01-2019, 23:04:34
    #4
    Kestiğim bi yer yok. Bu gibi 15-20 tane hata var. Aynı kod yapısı olduğu için ben 1 satırını koydum.

    Yorumların için teşekkür ederim ama bu hatayı nasıl giderebiliriz bi önerin olur mu?

    bayGaReZ adlı üyeden alıntı: mesajı görüntüle
    Hata mesajı tam olarak böyle mi? Yoksa kestiğiniz bir yer var mı?

    2019/01/09 19:45:45 [error] 4606#4606: *5294178 FastCGI sent in stderr: "ontent/themes/Newspaper/ahmet/template-parts/dual-table.php on line 1255

    Çok yüksek ihtimalle Undefined Index, Undefined Offset ya da Undefined Variable hatalarından biri ama bu hata mesajı kırpılmış o yüzden net bir şey söyleyemiyorum. Paylaşmış olduğunuz satırlarda bir hata yok, ki zaten syntax hatası olmadığı müddetçe hata başka satırlardan buraya taşınan bir hata olacaktır. Yani örnek veriyorum $abc diye bir değişken yoktur ama kullanmak istemişsinizdir. $abc diye bir değişkenin [0] indexi yoktur da kullanmak istemişsinizdir vs.
  • 23-01-2019, 00:22:52
    #5
    Kodunuzun başına şunu ekleyin:
    <?php
    function isSerialized($str) {
        return ($str == serialize(false) || @unserialize($str) !== false);
    }
    ?>
    Ardından kodunuzun şu kısmını bulun:
    $f4 = implode('<br>',unserialize($fields4['features_3'][0]));
    Şununla değiştirin:
    $f4 = isSerialized($fields4['features_3'][0]) ? implode('<br>',unserialize($fields4['features_3'][0])) : null;
    Bu işlemi tüm unserialize kullanılan yerlerde yapmanızı tavsiye ederim.

    PHP'nin unserialize fonksiyonu eğer içerisine serialize edilmemiş bir değer verilirse E_NOTICE seviyesinde hata fırlatarak sonucu false döndürür. Bu da log dosyanıza yukarıdaki gibi yansır.
  • 28-01-2019, 12:24:15
    #6
    Merhaba,

    Dediklerinizi uyguladım fakat hata verdi. (404)

    ilk verdiğiniz kodu php dosyasının en üstüne koydum.
    Sonrakileri de dediğiniz gibi yaptım.

    Neden hata verdi anlamadım.

    bayGaReZ adlı üyeden alıntı: mesajı görüntüle
    Kodunuzun başına şunu ekleyin:
    <?php
    function isSerialized($str) {
        return ($str == serialize(false) || @unserialize($str) !== false);
    }
    ?>
    Ardından kodunuzun şu kısmını bulun:
    $f4 = implode('<br>',unserialize($fields4['features_3'][0]));
    Şununla değiştirin:
    $f4 = isSerialized($fields4['features_3'][0]) ? implode('<br>',unserialize($fields4['features_3'][0])) : null;
    Bu işlemi tüm unserialize kullanılan yerlerde yapmanızı tavsiye ederim.

    PHP'nin unserialize fonksiyonu eğer içerisine serialize edilmemiş bir değer verilirse E_NOTICE seviyesinde hata fırlatarak sonucu false döndürür. Bu da log dosyanıza yukarıdaki gibi yansır.
  • 28-01-2019, 13:38:01
    #7
    ivanlar adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    Dediklerinizi uyguladım fakat hata verdi. (404)

    ilk verdiğiniz kodu php dosyasının en üstüne koydum.
    Sonrakileri de dediğiniz gibi yaptım.

    Neden hata verdi anlamadım.
    404? Dosya bulunamadı hatasıdır, hatanın gerçekten koddan olduğuna emin misiniz?
  • 28-01-2019, 20:14:36
    #8
    Evet evet eminim. Kodu dediğin gibi yaptım sonra sayfa açılmadı.

    bayGaReZ adlı üyeden alıntı: mesajı görüntüle
    404? Dosya bulunamadı hatasıdır, hatanın gerçekten koddan olduğuna emin misiniz?