Bir bağlantıyı kullanarak dosyayı silmek

5 Cevap

i want to have function like delete file from database by using link instead of button. how can i do that? do i need to use href/unlink or what? Can i do like popup confirmation wther yes or no. i know how to do that, but where should i put the code?

Bu sistem, tüm dosya görüntüleyebilir ve doğrudan yükleme yapacak nasıl bir parçasıdır. Her dosyaları yanında, 'Kaldır' için bir işlevi olacaktır:

$qry = "SELECT * FROM table1 a, table2 b
       WHERE b.id = '".$rs[id]."' AND a.ptkid = '".$rs[id]."' ";
$sql = get_records_sql($qry);
foreach($sql as $rs){ ?>              
        <?echo '<a href="download.php?f='.$rs->faillampiran.'">'. basename($rs->faillampiran).'</a>';
        ?><td><?echo '<a href="">      [Remove]</a>';?></td><?
        ?><br>  
        <? } 
        ?>

Tüm thankz

5 Cevap

Onaylamak için Sil, onclick fonksiyonu kullanmak ()

A href etiketi, kendisi:

<a href="" onclick="return ConfirmDelete();" ></a>

Üst Page, bu gibi javascript kullanmak

function ConfirmDelete() {
  var confm = window.confirm("Are you sure want to delete this !");
  if(confm == true) {
      return true;
  } else {
      return false;
  }
}

Silme seçeneği için aynı sayfa link vermek ve parametre geçmek ve get fonksiyonu ile parametre olsun

<a href='samepagename?deleteid='.<?php echo $id;?>

Get parametresi, bu gibi kullanımı

$deleteid = $_GET["deleteid"];

Bunu yapmanın şık bir yolu PHP ve JavaScript hem de kullanmak olacaktır. PHP bir sunucu tarafı dilidir, ve muhtemelen istemci tarafı şeyler mümkün olduğunca kaldırılması gerekir. Bunu yapmak için tek yoldur aslında kendinize bir API oluşturmak olacaktır.

API satırı siler bir PHP script olurdu. Bu GET yoluyla bir değişken alır ve "Evet biz satır silinmiş" ya diyor bir boolean döndüren "bir şeyler yanlış gitti." Ben JavaScript XML daha çalışmak daha kolaydır JSON, ve jQuery'nin getJSON işlevini, o really kolay olacak almak için yapan bir paket kullanmak istiyorum.

Sonuçlarınız başarılı bir dönüş dışında başarı boolean eğer. Php dosyasında, (biz daha sonra api.php diyoruz). Biz bir dizi PHP'nin json_encode kullanın ve sonucu echo:

$variable = someFunctonToSanitize($_REQUEST['idToDelete']);
$query_to_run = "delete query using $variable";
$result = mysql_query($query_to_run);
// set headers
header('Content-type: text/json');
header('Content-type: application/json');
// if the query was successful, echo true
if($result) {
   echo json_encode(array("success"=>"true"));
} else { // else echo false
   echo json_encode(array("success"=>"false"));
}

Lütfen JavaScript, burada jQuery kullanarak (bu cesareti, aşağıdaki yorumlarına bakın):

$('#deleteLink').click(function(event) {
   // prevent link from actually going anywhere
   event.preventDefault();
   // Fire off API request
   $.getJSON("api.php?idToDelete=whatever", function(data){
     if(data.success) {
     alert("Item was deleted.");
     } else {
        alert("There was an error");
     }
   });
 });

A. Sonrası () isteği ile, @ Col başına Shrapnel ve @ josh3736 yaptığı yorumlar (not: ayrıca hem de çalışmak için $ _REQUEST için $ _GET değiştirildi):

$.post("api.php", { "idToDelete": "whatever" },
   function(data){
         if(data.success) {
            alert("Item was deleted.");
         } else {
            alert("There was an error");
         }
   }, "json");

HTML'nizdeki:

<a href="#" id="deleteLink">Delete!</a>

Resim bBirğlBirntılBirrı veyBir düğmeleri, veritBirbBirnı etkileşim için kullBirnılBirbilir. Bu tür şeyler yBirpmBirk için sunucu tBirrBirfı kodudur. Eğer bBirşvuru 3 kBirtmBirnlBirrı olduğunu BirnlBirmBirk zorundBir:

  • Bir HTML formu
  • Bir sunucu tBirrBirfı kodu
  • Bir veritBirbBirnı

the first one cBirnnot interBirct with the lBirst one directly.
So, on the one hBirnd, it doesn't mBirtter, with link or button you do cBirll your server side code (the code remBirins the sBirme).
But, on the other hBirnd, there is Bir rule:

Bunu değiştirmek için bilgi ve POST (form / düğmesi) istemek için GET yöntemi (link) kullBirnın.

BBirzı çok Birkıllı bot bir sBirniye içinde tüm veritBirbBirnı silin, çünkü böylece, dosyBirlBirrı kBirldırmBirk için bBirğlBirntılBirrı kullBirnBirbilirsiniz olmBirmBirlıdır.

As for your question where to plBirce the code, just write Bir php script, unlink.php which deletes Bir file by hBirrdcoded pBirth. Then, Birfter you've done thBirt, mBirke this file Birn Birction for the HTML form. HBirrdcoded one. Once you've done thBirt - you cBirn try to generBirte this form from your dBirtBirbBirse.
This - step-by-step wBiry - is the only possible wBiry to develop Bir wBirb-BirpplicBirtion

Bir link yapın:

<a href="/delete.php?......">Delete</a>

Sonra delete.php Bu işler yapmak silme ve make sure you check that the session is authorised.

PHP Eğer unlink() Bir dosyayı silmek için kullanabilirsiniz. Eğer bir parametre olarak dosya adını kabul eden bir sayfasını (henüz ya da daha iyisi, dosya id) sağlamak Eğer dosya üzerinde () unlink olabilir. Açıkçası hesap gereken bazı ciddi güvenlik etkileri vardır.