2014-10-05 3 views
1

사용자가 선택한 확인란을 클릭하고 삭제 버튼을 클릭하면 해당 행이 제거되므로 가져 오려고합니다.사용자 행이 삭제되지 않음

나는 선택한 사용자 행을 삭제할 수 없습니다.

사용자의 내 삭제 기능이 모델에서 작동하지 않습니다.

모델

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Users_model extends CI_Model { 

    public function deleteUser($user_id) { 
     $this->db->where('user_id', $user_id); 
     $this->db->delete('user'); 
    } 

    public function getUsers() { 
     $this->db->select('user_id'); 
     $this->db->select('username'); 
     $this->db->select('date_added'); 
     $this->db->select('status'); 
     $this->db->from('user'); 
     $this->db->limit(20); 
     $this->db->order_by('username', 'asc'); 
     $query_user = $this->db->get(); 
     if ($query_user->num_rows) { 
      return $query_user->result_array(); 
      return true; 
     } else { 
      return false; 
     } 
    } 
} 

컨트롤러

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Users extends MX_Controller { 
    public function __construct() { 
     parent::__construct(); 
     $this->lang->load('admin/user/users', 'english'); 
     $this->load->model('admin/user/users_model'); 
     if ($this->session->userdata('isLogged')) { 
      return true; 
     } else { 
      redirect('admin'); 
     } 
    } 

    public function index() { 
     $this->document->setTitle($this->lang->line('heading_title')); 
     $this->getList(); 
    } 

    public function add() { 

    } 

    public function edit() { 

    } 

    public function delete() { 

     if ($this->input->post('selected') == TRUE) { 

      $this->users_model->deleteUser($user_id); 

      redirect('users/users'); 

     } else { 

      $this->getList(); 

     } 
    } 

    private function getList() { 

     $data['heading_title'] = $this->lang->line('heading_title'); 

     // Get Bread Crumbs 

     $data['breadcrumbs'] = array(); 

     $data['breadcrumbs'][] = array(
      'text' => '<i class="fa fa-home"></i>' .' '. $this->lang->line('text_home'), 
      'href' => site_url('admin/dashboard') 
     ); 

     $data['breadcrumbs'][] = array(
      'text'  => $this->lang->line('heading_title'), 
      'href'  => site_url('admin/users') 
     ); 

     // Get DB Results 

     $data['users'] = array(); 

     $results = $this->users_model->getUsers(); 

     foreach ($results as $result) { 
      $data['users'][] = array(
       'user_id' => $result['user_id'], 
       'username' => $result['username'], 
       'date_added' => $result['date_added'], 
       'status' => ($result['status'] ? $this->lang->line('text_enabled') : $this->lang->line('text_disabled')), 
       'edit' => site_url('admin/users/edit/' . $result['user_id']), 
       'delete' => site_url('admin/users/delete/' . $result['user_id']) 
      ); 
     } 

     // Set Data 

     $data['text_confirm'] = $this->lang->line('text_confirm'); 

     $data['column_username'] = $this->lang->line('column_username'); 
     $data['column_status'] = $this->lang->line('column_status'); 
     $data['column_date_added'] = $this->lang->line('column_date_added'); 
     $data['column_action'] = $this->lang->line('column_action'); 

     if (trim($this->input->post('selected'))) { 
      $data['selected'] = (array)$this->input->post('selected'); 
     } else { 
      $data['selected'] = array(); 
     } 

     return $this->load->view('user/users', $data); 

    } 

} 

당신은 012의 매개 변수를 보내지 않았다

<?php echo Modules::run('admin/common/header/index');?><?php echo Modules::run('admin/common/column_left/index');?> 

<div id="content"> 
<div class="container-fluid"> 
<div class="row"> 
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> 
<h1><?php echo $heading_title;?></h1> 
<ol class="breadcrumb"> 
<?php foreach ($breadcrumbs as $breadcrumb) { ?> 
<li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li> 
<?php } ?> 
</ol> 
</div> 
</div> 

<div class="row"> 
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> 
<div class="panel panel-default"> 
<div class="panel-heading"><h3 class="panel-title"><?php echo $heading_title; ?></h3></div> 
<div class="panel-body"> 
<div class="table-responsive"> 
<table class="table table-bordered table-hover"> 
<thead> 
    <tr> 
     <td class="text-center"><input type="checkbox" onclick="$('input[name*=\'selected\']').prop('checked', this.checked);" /></td> 
     <td><b><a>User ID<a></b></td> 
     <td><b><a><?php echo $column_username;?><a></b></td> 
     <td><b><a><?php echo $column_status;?><a></b></td> 
     <td><b><a><?php echo $column_date_added;?></a></b></td> 
     <td class="text-right"><b><?php echo $column_action;?></b></td> 
    </tr> 
</thead> 
<tbody> 
<?php if ($users) { ?> 
<?php foreach ($users as $user) { ?> 
<tr> 
<td class="text-center"><?php if (in_array($user['user_id'], $selected)) { ?> 
<input type="checkbox" name="selected[]" value="<?php echo $user['user_id']; ?>" checked="checked" /> 
<?php } else { ?> 
<input type="checkbox" name="selected[]" value="<?php echo $user['user_id']; ?>" /> 
<?php } ?></td> 
<td class="text-left"><?php echo $user['user_id'];?></td> 
<td class="text-left"><?php echo $user['username']; ?></td> 
<td class="text-left"><?php echo $user['status']; ?></td> 
<td class="text-left"><?php echo $user['date_added']; ?></td> 
<td class="text-right"> 
<a href="<?php echo $user['edit']; ?>" class="btn btn-primary"><i class="fa fa-pencil"></i></a> 
<a href="<?php echo $user['delete']; ?>" class="btn btn-danger" onclick="confirm('Are You Sure You Wish To Delete This User?') ? $('#form-user').submit() : false;"><i class="fa fa-trash-o"></i></a> 
</td> 
</tr> 
<?php } ?> 
<?php } ?> 
</tbody> 
</table> 
</div><!-- . Table Responsive --> 
</div><!-- . Panel Panel-Body --> 
</div><!-- . Panel Panel-Default --> 
</div><!-- . Columns --> 
</div><!-- . Row --> 
</div><!-- . Container-fluid--> 
</div><!-- #Content --> 

<?php echo Modules::run('admin/common/footer/index');?> 
+1

값을 확인하기 위해 model에 $ user_id를 반향 시키십시오 (내 추측 : 그것은 비어 있음/정의되지 않음). 게시물 값 (삭제할 사용자 ID)을 링크를 통해 전달하는 경우 - URL 세그먼트가 필요합니다. https://ellislab.com/codeigniter/user-guide/libraries/uri.html – sinisake

+0

URI 세그먼트를 사용하는 것이 안전합니까? 그렇게 잘 제거하거나 변수를 사용하는 것이 가장 좋습니다. –

+0

보안 포인트와의 차이점은 없습니다 -> 모든 POST 데이터는 URL에서 사용자가 볼 수 없더라도 매우 쉽게 볼 수 있고 쉽게 액세스 할 수 있습니다. 따라서 admin 기능에 대한 관리자 권한을 확인해야합니다. 사용자가 주소 표시 줄에 http://yoursiteurl.com/admin/delete/some_user_id를 입력하고 사용자를 삭제할 수 없습니다. – sinisake

답변

0

보기

관련 문제