2014-04-21 19 views
10

Temel olarak veritabanımdan bir kategori listesi dolduran bir kod yazdım ve sonra hangisini silmeyi seçebiliyorsunuz.Isset ifade hatası

ben hata nedeniyle çalışmak için görünmüyor silme kodu ile sorununuz var:

Fatal error: Cannot use isset() on the result of an expression (you can use "null !== expression" instead) in F:\xamppnew\htdocs\650032\admin\delete.php on line 6 

hat neden şudur:

if(isset($_POST['delete_id'] && !empty($_POST['delete_id']))) { 

deletecategory.php

<h3> 
    Delete Category 
    </h3> 

    <?php $result = mysql_query("SELECT * FROM category"); ?> 

<table> 
    <?php while($row = mysql_fetch_array($result)) : ?> 
    <tr id="<?php echo $row['category_id']; ?>"> 
    <td><?php echo $row['category_Name']; ?></td> 
    <td> 
     <button class="del_btn" rel="<?php echo $row['id']; ?>">Delete</button> 
    </td> 
    </tr> 
    <?php endwhile; ?> 
</table> 

<script> 
    $(document).ready(function(){ 
    $('.del_btn').click(function(){ 
     var del_id = $(this).attr('rel'); 
     $.post('delete.php', {delete_id:del_id}, function(data) { 
      if(data == 'true') { 
      $('#'+del_id).remove(); 
      } else { 
      alert('Could not delete!'); 
      } 
     }); 
    }); 
    }); 
</script> 

delete.php

<?php 
    if(isset($_POST['delete_id'] && !empty($_POST['delete_id']))) { 
     $delete_id = mysql_real_escape_string($_POST['delete_id']); 
     $result = mysql_query("DELETE FROM category WHERE `id`=".$delete_id); 
     if($result !== false) { 
     echo 'true'; 
     } 
    } 
    ?> 
+0

Kodunuz SQL yerleştirme karşı savunmasız olduğunu olmasıdır. ['mysql_real_escape_string' yalnızca değer bir MySQL dizgisinde kullanılırsa çalışır.] (http://security.stackexchange.com/a/35718/539) – Gumbo

+0

' isset() 've' işlevine gerek yoktur. ! boş() 'aynı zamanda. "boş", giriş tanımlanmamışsa da çalışır: https://stackoverflow.com/questions/4559925/why-check-both-isset-and-empty – Adam

cevap

30

Bu ) cevapsız:

if(isset($_POST['delete_id']) && !empty($_POST['delete_id'])) 
          ^--- 
3

sorunu bu

if(isset($_POST['delete_id'] && !empty($_POST['delete_id']))) 

Diğerleri ifadesinde eksik ) konusunu göstermiştir

if(isset($_POST['delete_id']) && !empty($_POST['delete_id'])) 
5

olmasıdır ancak empty(),kontrol edecektirbu yüzden gereksizdir. Sadece empty() kontrol edin:

if(!empty($_POST['delete_id'])) { 
0

sorunu bu

if(isset($_POST['delete_id'] && !empty($_POST['delete_id']))) 

if((isset($_POST['delete_id'])) && (!empty($_POST['delete_id']))) 
İlgili konular