v2.5.2
Giriş yap

Textarea Bazı Yazılarda Hata Verdiriyor

yazilimyolcusu
256 defa görüntülendi

Merhabalar. Bir form var. Formda da textarea var. Bir yerden kopyaladığım yazıyı veritabanına kaydederken bazı yazılarda hata verdiriyor textarea. Veritabanına kayıt yapamıyorum. Form başarılı bir şekilde kaydedildiyse şu, kaydedilmediyse de şu uyarıyı ver diyorum. Kayıt yapılamadı uyarısı veriyor. Bazı yazılarda ise sıkıntı çıkarmıyor. Bana bu sorun, yazının içindeki boşluklardan vs. olduğu gibime geliyor. Eğer boşluk vs gibi şeylerden ise, aşağıdaki kodları nasıl düzenleyebilirim, yardımcı olabilir misiniz? Form'dan çoklu veri aldığım için, ona göre ayarlama yapmak gerekiyor galiba. Sebebi ne olabilir?

if($_POST) {

$ad = $_POST['ad'];
$ozellik = $_POST['ozellik'];

foreach($ad as $index => $names) {
      $s_ad = $names;
      $s_ozellik = $ozellik[$index];
      
      $sorgualani = "INSERT INTO indexsayfaurun (urun_ad, urun_ozellik) values ('$s_ad', '$s_ozellik');
      if($sorgu) {
      ... 
      } else {
      ...
      }
      
}



Cevap yaz
Cevaplar (8)
yazilimyolcusu
473 gün önce

Kodları bu şekilde çalıştırdım. Ben, öncesiyle aradaki farkı anlamadım ama kodlar üzerinde oynamadan evvel yani çalışırken kaydettiydim. Tekrar çalıştı. Kodlar aşağıda. ckeditor le de çalışıyor şu an.

<?php
if(isset($_FILES['dosya'])) {
 
  $ad = $_POST['ad'];
  $ozellik = $_POST['ozellik'];
  $kategori = $_POST['kategori'];
  $eskifiyat = $_POST['eskifiyat'];
  $yenifiyat = $_POST['yenifiyat'];
  $indirimlifiyat = $_POST['indirimlifiyat'];
  $urunsayisi = $_POST['urunsayisi'];
  $urunalani = $_POST['urunalani'];


    foreach($ad as $index => $names) {
      $s_ad = $names;
      $s_ozellik = $ozellik[$index];
      $s_kategori = $kategori[$index];
      $s_eskifiyat = $eskifiyat[$index];
      $s_yenifiyat = $yenifiyat[$index];
      $s_indirimlifiyat = $indirimlifiyat[$index];
      $s_urunsayisi = $urunsayisi[$index];
      $s_urunalani = $urunalani[$index];

      
      $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];
        $dosya_tipi = $_FILES['dosya']["type"][$i];
        $dosya_boyutu = $_FILES['dosya']["size"][$i];

        if($dosya_boyutu > (1024*1024*3)) { ?>
          <div style="margin-top:25px; text-align:center; font-size:30px;">
            <?php
            echo "Dosya Boyutu 3 MB'dan Büyük Olamaz <br>";
            echo "Form Sayfasına Gitmek İçin";
            ?>
            <a href="urunekle.php" style="color:blue;">Tıklayınız</a>
          </div>
            <?php
            exit;
        }
      
        if(!($dosya_tipi=="image/jpeg" || $dosya_tipi=="image/jpg" || $dosya_tipi=="image/png")) { ?>
          <div style="margin-top:25px; text-align:center; font-size:30px;">
            <?php
            echo "Sadece Jpeg, Jpg ve Png Yükleyebilirsiniz <br>";
            echo "Form Sayfasına Gitmek İçin";
            ?>
            <a href="urunekle.php" style="color:blue;">Tıklayınız</a>
          </div>
            <?php
            exit;
        }

        if(move_uploaded_file($gecici_yol,"../../images/indexurunler/" . $dosya_adi)) {

          $sorgualani = "INSERT INTO indexsayfaurun (urun_resim, urun_ad, urun_ozellik, urun_kategori, 
                                                    urun_eskifiyat, urun_yenifiyat, urun_indirimlifiyat, 
                                                    urun_sayisi, urun_alani) 
                                                    VALUES ('$dosya_adi', '$s_ad', '$s_ozellik', '$s_kategori', '$s_eskifiyat', '$s_yenifiyat', '$s_indirimlifiyat', '$s_urunsayisi', '$s_urunalani')";
          $sorgu = mysqli_query($db, $sorgualani);
        }
      }
    }

  if($sorgu) { ?>
    <div style="margin-top:25px; text-align:center; font-size:30px;">
    <?php
    echo "Ürün Kaydedildi";
    // header("Refresh:3; url=urunekle.php");
    ?>
    </div>
    <?php
    // header("Refresh:3; url=urunekle.php");
  } else { ?>

    <div style="margin-top:25px; text-align:center; font-size:30px;">
      <?php
      echo "Ürün Eklenemedi <br>";
      header("Refresh:3; url=urunekle.php");
      ?>
    </div>

  <?php
  } 
}
?>
yazilimyolcusu
474 gün önce

Ckeditor yükledim onda da çalışmadı. Kodlar biraz uzun ama paylaşayım bir bakın.

<?php
if(isset($_FILES['dosya'])) {
 
  $ad = $_POST['ad'];
  $ozellik = $_POST['ozellik'];
  $kategori = $_POST['kategori'];
  $eskifiyat = $_POST['eskifiyat'];
  $yenifiyat = $_POST['yenifiyat'];
  $indirimlifiyat = $_POST['indirimlifiyat'];
  $urunsayisi = $_POST['urunsayisi'];
  $urunalani = $_POST['urunalani'];



    foreach($ad as $index => $names) {
      $s_ad = $names;
      $s_ozellik = $ozellik[$index];
      $s_kategori = $kategori[$index];
      $s_eskifiyat = $eskifiyat[$index];
      $s_yenifiyat = $yenifiyat[$index];
      $s_indirimlifiyat = $indirimlifiyat[$index];
      $s_urunsayisi = $urunsayisi[$index];
      $s_urunalani = $urunalani[$index];

      
      $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];
        $dosya_tipi = $_FILES['dosya']["type"][$i];
        $dosya_boyutu = $_FILES['dosya']["size"][$i];

        if($dosya_boyutu > (1024*1024*3)) { ?>
          <div style="margin-top:25px; text-align:center; font-size:30px;">
            <?php
            echo "Dosya Boyutu 3 MB'dan Büyük Olamaz <br>";
            echo "Form Sayfasına Gitmek İçin";
            ?>
            <a href="urunekle.php" style="color:blue;">Tıklayınız</a>
          </div>
            <?php
            exit;
        }
      
        if(!($dosya_tipi=="image/jpeg" || $dosya_tipi=="image/jpg" || $dosya_tipi=="image/png")) { ?>
          <div style="margin-top:25px; text-align:center; font-size:30px;">
            <?php
            echo "Sadece Jpeg, Jpg ve Png Yükleyebilirsiniz <br>";
            echo "Form Sayfasına Gitmek İçin";
            ?>
            <a href="urunekle.php" style="color:blue;">Tıklayınız</a>
          </div>
            <?php
            exit;
        }

        if(move_uploaded_file($gecici_yol,"../../images/indexurunler/" . $dosya_adi)) {

          $sorgualani = "INSERT INTO indexsayfaurun (urun_resim, urun_ad, urun_ozellik, urun_kategori, 
                                                    urun_eskifiyat, urun_yenifiyat, urun_indirimlifiyat, 
                                                    urun_sayisi, urun_alani) 
                                                    VALUES ('$dosya_adi', '$s_ad', '$s_ozellik' '$s_kategori', '$s_eskifiyat', '$s_yenifiyat', '$s_indirimlifiyat', '$s_urunsayisi', '$s_urunalani')";
          $sorgu = mysqli_query($db, $sorgualani);
        }
      }
    }

  if($sorgu) { ?>
    <div style="margin-top:25px; text-align:center; font-size:30px;">
    <?php
    echo "Ürün Kaydedildi";
    header("Refresh:3; url=urunekle.php");
    ?>
    </div>

    <?php
  } else { ?>
    <div style="margin-top:25px; text-align:center; font-size:30px;">
      <?php
      echo "Ürün Eklenemedi <br>";
      header("Refresh:3; url=urunekle.php");
      ?>
    </div>
  <?php
  } 
}
?>
yazilimyolcusu
475 gün önce

Sorun güncel arkadaşlar.

yazilimyolcusu
475 gün önce

Bu sorun galiba "trim" ve "strip_tags" kullanmadığım için oluyor. Aşağıdaki kodlara şu şekilde

$ozellik = trim(strip_tags($_POST['ozellik']));

trim ve strip_tags eklediğimde de bana şöyle bir hata veriyor

Warning: strip_tags() expects parameter 1 to be string, array given in
Notice: Trying to access array offset on value of type null in

internetten baktığımda da bu hatayı nasıl düzeltebileceğime dair, "implode" kullanımını öneriyor. "strip_tags, trim ve implode" u bir arada aşağıdaki kodlarla nasıl kullanabilirim acaba?

if(isset($_FILES['dosya'])) {
 
  $ad = $_POST['ad'];
  $ozellik = $_POST['ozellik'];


    foreach($ad as $index => $names) {
      $s_ad = $names;
      $s_ozellik = $ozellik[$index];


      $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];       
      
        

        if(move_uploaded_file($gecici_yol,"../../images/indexurunler/" . $dosya_adi)) {

          $sorgualani = "INSERT INTO indexsayfaurun (urun_resim, urun_ad, urun_ozellik) 
                                                    VALUES ('$dosya_adi', '$s_ad', '$s_ozellik')";
          $sorgu = mysqli_query($db, $sorgualani);
        }
      }
    }

  if($sorgu) { 
    echo "Ürün Kaydedildi";
  } else {
      echo "Ürün Eklenemedi";
  } 
}
yazilimyolcusu
476 gün önce

text olarak belirledim ve herhangi bir sayı vermedim. Sayı verdiğimde de düzelmedi. Yazıyı klavyeden el ile girdiğimde kayıt yapıyor ama kopyaladığım bazı yazıları kabul etmiyor. Yazıdaki boşluklar, kalın yazılması gibi şeyler etkiliyor olabilir mi acaba?

emmir2
476 gün önce

Veritabanın da karakter sınırlamasını kontrol ettiniz mi ?

yazilimyolcusu
476 gün önce

Burada çoklu veri kaydetmenin yöntemini gösteriyorsunuz değil mi? Eğer öyleyse benim sorunum bu değil. Ben çoklu veriyi kaydedebiliyorum. Bir siteden kopyaladığım bir yazıyı textarea nın içine yapıştırıp gönder butonuna bastığımda veriyi kaydetmiyor. Ama yine aynı siteden başka bir yazı giriyorum textarea ya onu kaydediyor. Yani textarea nın içine girdiğim bir yazıyı kaydedebiliyorken başka bir yazıyı kaydedemiyorum. Textarea bu yazıları neye göre seçiyor, sorun bu.

cihann
476 gün önce

Bu şekilde dene

$insert = $db->prepare("INSERT INTO indexsayfaurun SET urun_ad=?,urun_ozellik=?);
$insert->execute(array($s_ad,$grup_adi,$s_ozellik));