2014-04-21 3 views
10

मैं मूल रूप से एक कोड है जो मेरे डेटाबेस से श्रेणियों की एक सूची भरता कोड किया है तो आप जो चयन करने के लिए नष्ट करने के लिए सक्षम हैं।isset अभिव्यक्ति त्रुटि

मैं हटाना कोड के साथ इस मुद्दे जो त्रुटि के कारण काम करने के लिए प्रतीत नहीं होता है:

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 

लाइन के कारण यह है:

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

आपका कोड एसक्यूएल इंजेक्शन के लिए असुरक्षित है होना चाहिए। [ 'Mysql_real_escape_string' केवल तभी मूल्य एक MySQL स्ट्रिंग शाब्दिक में प्रयोग किया जाता है काम करता है।] (Http://security.stackexchange.com/a/35718/539) – Gumbo

+0

' isset() 'और' उपयोग करने के लिए कोई जरूरत नहीं है ! खाली() 'एक ही समय में। 'Empty' भी यदि इनपुट परिभाषित नहीं है काम करता है: https://stackoverflow.com/questions/4559925/why-check-both-isset-and-empty – Adam

उत्तर

30

आप इस ) याद किया:

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

मुद्दा यह है कि इस

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

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

होना चाहिए दूसरों अभिव्यक्ति में लापता ) के मुद्दे से पता चला है है , लेकिन empty()की जाँच करेगाताकि अनावश्यक है। बस की जाँच empty():

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

मुद्दा यह है कि इस

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

if((isset($_POST['delete_id'])) && (!empty($_POST['delete_id']))) 
संबंधित मुद्दे