• 13-08-2018, 20:12:32
    #1
    Merhabalar. Diğer konularım gibi bu konumda da sizden yardım talep edeceğim. Malumunuz yeni başlayan ben için bu problemleri çözmek çok zor gibi görünürken forumumuz daki üstadlar için iş bile değil Uzatmadan problemi anlatıyım. Biraz sonra kodlarını paylaşacağım yerde ekleme işlemi, düzenleme işlemi yapabiliyorum hatta silme işlemi de yapabiliyorum ama sadece veritabanından. Daha öncelerde unlink(); 'i denerken yüklenmiş dosyayı silebiliyordum fakat ne olduysa şuan silemiyorum. Hatırlatmakta fayda var; veritabanından silebiliyorum ama klasörden silemiyorum.

    Öncelikle HTML

    <div class="table-responsive">
                          <br>
                          <table class="table">
                            <thead class="text-center">
                              <tr>
                                <th>Slider Yazısı</th>
                                <th>Slider Resim Yolu</th>
                                <th>Slider Sırası</th>
                                <th>Slider Linki</th>
                                <th></th>
                                <th></th>
                              </tr>
                            </thead>
    
                            <tbody class="text-center">
                            <?php while($userfe = $userfunc -> fetch (PDO::FETCH_ASSOC)){ ?>
                              <tr>
                                <td><?php echo $userfe['slider_name'] ?></td>
                                <td><?php echo $userfe['slider_route'] ?></td>
                                <td><?php echo $userfe['slider_sira'] ?></td>
                                <td><?php echo $userfe['slider_link'] ?></td>
                                <td>
                                <a href="slider-duzenle.php?slider_id=<?php echo $userfe['slider_id'] ?>">
                                    <button class="btn btn-outline-success btn-xs">Düzenle</button>
    
                                </a>
                                </td>
                                <td>
                                <a href="../data/function.php?slider_id=<?php echo $userfe['slider_id'] ?>&sliderdel=success">
                                    <button class="btn btn-outline-danger btn-xs">Sil</button>
                                </a>
                                </td>
                              </tr>
                              <?php } ?>
                            </tbody>
                          </table>
                        </div>
    Function.php

    if($_GET['sliderdel'] == 'success'){
      $sliderdel = $db -> prepare('DELETE FROM ana_slider WHERE slider_id=:id');
      $controlthis = $sliderdel -> execute(array(
        'id' => $_GET['slider_id'] ));
      if($controlthis){
        $sliderdelete = $_GET['slider_route'];
        echo $sliderdelete;
        exit;
        header('Location:../html/sliderayarlari.php?current=success');
      }else{
        header('Location:../html/sliderayarlari.php?current=fail');
      }
    }
    Burda silinmediğini farkettim ve acaba resimi bulabiliyormu diye echo ile göstermeye çalıştım ama maalesef oraya kadar gitmiyor. Kanaatimce slider_route'ı çekemiyor.

    Veritabanı



    Dosyalar



    Function.php -> data'nın içinde.
    Silme işleminin yapıldığı dosya -> html'in içinde.
    Silinecek dosya -> uploads/slider'ın içinde.

    Yardımlarınızı bekliyorum şimdiden çok teşekkür ederim.
  • 13-08-2018, 20:21:41
    #2
    GET üzerinden slider_route parametresi geldiğine emin misin?

    //

    <a href="../data/function.php?slider_id=<?php echo $userfe['slider_id'] ?>&slider_route=/<?php echo $userfe['slider_route']; ?>&sliderdel=success">
                                    <button class="btn btn-outline-danger btn-xs">Sil</button>
    olarak değiştirirsen ve fonksiyon dosyanda

    unlink($_GET['slider_route']);
    eklemesini yaparsan çalışacaktır.


    Ve eğer çok fazla GET parametreleriyle çalışacaksan, daha rahat kullanabilmen açısından şuan senin için yazdığım bu fonksiyonu kullanabilirsin.

    <?php 
    function addGet($url,$parameters){
      if(is_array($parameters)){
        foreach($parameters as $key => $param){
          if(strstr($url,'?')){
            $url .= '&'.$key.'='.$param;
          }else{
            $url .= '?'.$key.'='.$param;
          }
        }
      }else{
        if(strstr($url,'?')){
          $url .= '&'.$parameters;
        }else{
          $url .= '?'.$parameters;
        }
      }
      return $url;
    }
    $params = array(
      'slider_id'=>1,
      'slider_route' => '/blablabla',
      'sliderdel'=>'success'
    );
    echo addGet('test.php?hello=1',$params);
    
    
    
    ?>
  • 13-08-2018, 20:50:52
    #3
    Canına minnet kardeşim. Hem problemimim çözüldü ona, hemde fonksiyon için çok teşekkür ederim.