R10.net

R10.net (https://www.r10.net/index.php)
-   PHP (https://www.r10.net/php/)
-   -   PHP'de kapak fotoğrafının silinmesi (https://www.r10.net/php/1930647-phpde-kapak-fotografinin-silinmesi.html)

FSahin 16-10-2018 20:16:30

PHP'de kapak fotoğrafının silinmesi
 
Merhaba arkadaşlar, bir CMS yapmaya çalışıyorum fakat takıldığım bir yer yine fotoğraf ile alakalı. Sayfa ekle kısmında kapak fotoğrafını ekleme işlemini yaptım ancak sayfa düzenle kısmında kapak fotoğrafını hiç bir şekilde güncelleme yapmama rağmen sadece yazı içini değiştirmeme rağmen güncellediğimde veritabanında boş dönüyor.

Şu şekilde bir şey istiyorum, ben kapak fotoğrafı eklersem güncelleme yapsın eklemezsem eski veri aynı şekilde kalsın. Bunu en basit nasıl yapabilirim acaba?

Creatingz 16-10-2018 20:27:55

if else ile yapıcaksınız mesela if resim varsa update resim işlemleri olacak else ise veritabanından aynı veriyi çekip aynı veriyi update yaptıracaksın veya güncelleme tablosuna o veriyi ekletmeyip güncelleme işlemi yaptırtmalısın .

Modexi 16-10-2018 20:29:23

Alıntı:

FSahin Nickli Üyeden Alıntı (Mesaj 1073983671)
Merhaba arkadaşlar, bir CMS yapmaya çalışıyorum fakat takıldığım bir yer yine fotoğraf ile alakalı. Sayfa ekle kısmında kapak fotoğrafını ekleme işlemini yaptım ancak sayfa düzenle kısmında kapak fotoğrafını hiç bir şekilde güncelleme yapmama rağmen sadece yazı içini değiştirmeme rağmen güncellediğimde veritabanında boş dönüyor.

Şu şekilde bir şey istiyorum, ben kapak fotoğrafı eklersem güncelleme yapsın eklemezsem eski veri aynı şekilde kalsın. Bunu en basit nasıl yapabilirim acaba?


bunun için düzenleme sayfasında iken gelen verilerin güncellendiği alanda öncelikle post alanından resim geliyor mu gelmiyorsa veritabnında su alanı kullan şeklinde bir if sorgusu yazmanız gerekir.

Örneğin:

if(empty($_POST["resimname"])){
$resim = "Veritabanında ilgili alandaki resim";
}else{
$resim = $_POST["resimname"];
}

gibi

FSahin 16-10-2018 20:36:20

Alıntı:

Modexi Nickli Üyeden Alıntı (Mesaj 1073983719)
bunun için düzenleme sayfasında iken gelen verilerin güncellendiği alanda öncelikle post alanından resim geliyor mu gelmiyorsa veritabnında su alanı kullan şeklinde bir if sorgusu yazmanız gerekir.

Örneğin:

if(empty($_POST["resimname"])){
$resim = "Veritabanında ilgili alandaki resim";
}else{
$resim = $_POST["resimname"];
}

gibi

Hocam şurada nasıl bir işlem yaptırabilirim acaba? Kafam çok karıştı içinden çıkamadım.

if(post('submit')){
    $dizin = PATH . '/public/upload/';
    $yuklenecek_dosya = $dizin . basename($_FILES['work_thumbnail']['name']); 

    $work_title = post('work_title');
    $work_url  = post('work_url');
    if(!post('work_url')){
        $work_url = permalink($work_title);
    }
    $work_content = post('work_content');
    $work_seo    = json_encode(post('work_seo'));

    if(!$work_url || !$work_content || !$work_title){
        $error = 'Lütfen tüm alanları doldurun!';
    }else{
        $query = $db->from('works')
            ->where('work_url', $work_url)
            ->where('work_id', $id, '!=')
            ->first();

        if($query){
            $error = '<strong>' . $work_title . '</strong> adında referans zaten mevcut.';
        }else{
            $query = $db->update('works')
                ->where('work_id', $id)
                ->set([
                    'work_title'    => $work_title,
                    'work_content'  => $work_content,
                    'work_url'      => $work_url,
                    'work_seo'      => $work_seo,
                    'work_thumbnail'=> $work_thumbnail
                ]);

                if($query){
                    header('Location:' . admin_url('works'));
                }else{
                    $error = 'Bir sorun oluştu!';
                }
        }
    }
}

Modexi 16-10-2018 21:30:34

Alıntı:

FSahin Nickli Üyeden Alıntı (Mesaj 1073983741)
Hocam şurada nasıl bir işlem yaptırabilirim acaba? Kafam çok karıştı içinden çıkamadım.

if(post('submit')){
    $dizin = PATH . '/public/upload/';
    $yuklenecek_dosya = $dizin . basename($_FILES['work_thumbnail']['name']); 

    $work_title = post('work_title');
    $work_url  = post('work_url');
    if(!post('work_url')){
        $work_url = permalink($work_title);
    }
    $work_content = post('work_content');
    $work_seo    = json_encode(post('work_seo'));

    if(!$work_url || !$work_content || !$work_title){
        $error = 'Lütfen tüm alanları doldurun!';
    }else{
        $query = $db->from('works')
            ->where('work_url', $work_url)
            ->where('work_id', $id, '!=')
            ->first();

        if($query){
            $error = '<strong>' . $work_title . '</strong> adında referans zaten mevcut.';
        }else{
            $query = $db->update('works')
                ->where('work_id', $id)
                ->set([
                    'work_title'    => $work_title,
                    'work_content'  => $work_content,
                    'work_url'      => $work_url,
                    'work_seo'      => $work_seo,
                    'work_thumbnail'=> $work_thumbnail
                ]);

                if($query){
                    header('Location:' . admin_url('works'));
                }else{
                    $error = 'Bir sorun oluştu!';
                }
        }
    }
}



Denermisin hocam, metin olarak belirttiğim yere select işlemini uygula ama önce.

if(post('submit')){
 
  //// modexi
              if(empty($_POST["work_thumbnail"])){
                $work_thumbnail = "Buraya select işlemi yaparak ilgili id nin resmini getiren sorguyu yazın";
              }else{
                $dizin = PATH . '/public/upload/';
                $work_thumbnail = $dizin . basename($_FILES['work_thumbnail']['name']); 
              }
  //// modexi
 
 
 
  // $dizin = PATH . '/public/upload/';
  //  $yuklenecek_dosya = $dizin . basename($_FILES['work_thumbnail']['name']); 
 
    $work_title = post('work_title');
    $work_url  = post('work_url');
    if(!post('work_url')){
        $work_url = permalink($work_title);
    }
    $work_content = post('work_content');
    $work_seo    = json_encode(post('work_seo'));
 
    if(!$work_url || !$work_content || !$work_title){
        $error = 'Lütfen tüm alanları doldurun!';
    }else{
        $query = $db->from('works')
            ->where('work_url', $work_url)
            ->where('work_id', $id, '!=')
            ->first();
 
        if($query){
            $error = '<strong>' . $work_title . '</strong> adında referans zaten mevcut.';
        }else{
            $query = $db->update('works')
                ->where('work_id', $id)
                ->set([
                    'work_title'    => $work_title,
                    'work_content'  => $work_content,
                    'work_url'      => $work_url,
                    'work_seo'      => $work_seo,
                    'work_thumbnail'=> $work_thumbnail
                ]);
 
                if($query){
                    header('Location:' . admin_url('works'));
                }else{
                    $error = 'Bir sorun oluştu!';
                }
        }
    }
}

FSahin 16-10-2018 21:50:02

Alıntı:

Modexi Nickli Üyeden Alıntı (Mesaj 1073983902)
Denermisin hocam, metin olarak belirttiğim yere select işlemini uygula ama önce.

if(post('submit')){
 
  //// modexi
              if(empty($_POST["work_thumbnail"])){
                $work_thumbnail = "Buraya select işlemi yaparak ilgili id nin resmini getiren sorguyu yazın";
              }else{
                $dizin = PATH . '/public/upload/';
                $work_thumbnail = $dizin . basename($_FILES['work_thumbnail']['name']); 
              }
  //// modexi
 
 
 
  // $dizin = PATH . '/public/upload/';
  //  $yuklenecek_dosya = $dizin . basename($_FILES['work_thumbnail']['name']); 
 
    $work_title = post('work_title');
    $work_url  = post('work_url');
    if(!post('work_url')){
        $work_url = permalink($work_title);
    }
    $work_content = post('work_content');
    $work_seo    = json_encode(post('work_seo'));
 
    if(!$work_url || !$work_content || !$work_title){
        $error = 'Lütfen tüm alanları doldurun!';
    }else{
        $query = $db->from('works')
            ->where('work_url', $work_url)
            ->where('work_id', $id, '!=')
            ->first();
 
        if($query){
            $error = '<strong>' . $work_title . '</strong> adında referans zaten mevcut.';
        }else{
            $query = $db->update('works')
                ->where('work_id', $id)
                ->set([
                    'work_title'    => $work_title,
                    'work_content'  => $work_content,
                    'work_url'      => $work_url,
                    'work_seo'      => $work_seo,
                    'work_thumbnail'=> $work_thumbnail
                ]);
 
                if($query){
                    header('Location:' . admin_url('works'));
                }else{
                    $error = 'Bir sorun oluştu!';
                }
        }
    }
}

Hocam ne yaparsam yapayım geriye array'i döndürüyor.

Array
(
    [work_thumbnail] => Array
        (
            [name] =>
            [type] =>
            [tmp_name] =>
            [error] => 4
            [size] => 0
        )

)Sanırım çözemeyeceğim bu sorunu.

Modexi 16-10-2018 22:15:42

Alıntı:

FSahin Nickli Üyeden Alıntı (Mesaj 1073983967)
Hocam ne yaparsam yapayım geriye array'i döndürüyor.

Array
(
    [work_thumbnail] => Array
        (
            [name] =>
            [type] =>
            [tmp_name] =>
            [error] => 4
            [size] => 0
        )

)Sanırım çözemeyeceğim bu sorunu.


formdan ne geliyor hocam en başa bir $_FILES['work_thumbnail']['name'] şeklinde bir değişkene atıp echo yaptırır mısın?

FSahin 16-10-2018 22:39:05

Alıntı:

Modexi Nickli Üyeden Alıntı (Mesaj 1073984028)
formdan ne geliyor hocam en başa bir $_FILES['work_thumbnail']['name'] şeklinde bir değişkene atıp echo yaptırır mısın?

Hocam resim yüklemeden çağırırsam boş dönüyor, yüklersem dosya adı geliyor.

digiklan 17-10-2018 12:07:49

Eğer bir dosya post edilmediyse sorguda thumbnail alanını güncellemeyeceksin, thumbnail post edildiyse tüm alanları güncelleyeceksin.
Yani
Eğer $_FILES['work_thumbnail'] değişkeni yoksa veritabanında 3 alanı güncelleyeceksin.
Yok Eğer $_FILES['work_thumbnail'] değişkeni varsa yani resim sumbit edildiyse resmi ilgili alana kaydedip veri tabanındaki tüm alanları güncelleyeceksin.

Şu anda resim gönderilmese de veritabanındaki resim alanını güncelleyen bir sorgu çalıştırıyorsun ve boş veri yazdığın için resmi silmiş oluyorsun.


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 18:47:14.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.