2016-04-08 5 views
1

мое условие if не работает с условием $ _GET ['delete']. Как это решить? Я хочу удалить строку из таблицы, читая URL-адрес. если url содержит работу, удалите эту строку mysql, которую нужно удалить. что я здесь делаю?

   <?php 

         $query = "SELECT * FROM category"; 
         $select_category_id_and_title = mysqli_query($connection, $query); 
         while($row = mysqli_fetch_assoc($select_category_id_and_title)) 
         { 
          $cat_id = $row['id']; 
          $cat_title = $row['cat_title']; 
          echo "<tr>"; 
          echo "<td>$cat_id</td>"; 
          echo "<td>$cat_title</td>"; 
          echo "<td><a href='admin_category_dashboard_new.php?delete = {$cat_id}'>DELETE</a></td>"; 
          echo "<td><a href='admin_category_dashboard_new.php?edit = {$cat_title}'>EDIT</a></td>"; 
          echo "</tr>"; 
          //echo $_GET['delete']; 
         } 
       ?>    
       <?php 
        if(isset($_GET['delete'])) // doesn't work 
        { 
         $delete_cat_id = $_GET['delete']; 
         echo '<h1>' . $delete_cat_id . '</h1>'; 
         $query = "DELETE FROM category WHERE id = $delete_cat_id "; 
         $Cat_id_delete_query = mysqli_query($connection, $query); 
         if(!$Cat_id_delete_query) 
         { 
          die("error" . mysqli_error($connection)); 
         } 
         header("Location: admin_category_dashboard_new.php "); 
        } 
       ?> 
+0

удалить пробел после? Delete = {$ cat_id} ' –

+0

спасибо. : 0 работает. –

+0

Вы широко открыты для [** SQL injection **] (https://www.owasp.org/index.php/SQL_Injection). –

ответ

1

Вы включили пробел после «удаления» в своем URL-адресе.

Таким образом $_GET индекс вам нужно будет искать это 'delete_'

попробовать следующее в файле

var_dump($_GET); 

затем перейти к yourfile.php? Удалить = любой

затем повторите с yourfile.php? delete = any

см. разницу

+0

Большое спасибо BLE. Можете ли вы мне помочь в написании кода: var_dump ($ _ GET); –

+0

работает BLE. Большое спасибо. Но не могли бы вы помочь мне в решении другой проблемы. Проблема в том, что опция удаления работает нормально, но ... проблема теперь в URL. до исправления .............. когда я нажал delete, url содержит что-то вроде http: //localhost/cms/admin/admin_category_dashboard_new.php? delete = 10, но теперь он не отображается на , очень важно сохранить url как http: //localhost/cms/admin/admin_category_dashboard_new.php? delete = 10 ?? –

+0

Не уверен, что вы имеете в виду, это не отображается. Что он делает, когда вы нажимаете на ссылку? – BLE

0

Если условие не стрелять вообще, то это, вероятно, потому что:

  1. опечатку удалить в вашей URL.
  2. delete имеет нулевое значение.

Функция isset() возвращает false, даже если значение равно null; не только, если ключ не существует.

Смежные вопросы