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');?>
값을 확인하기 위해 model에 $ user_id를 반향 시키십시오 (내 추측 : 그것은 비어 있음/정의되지 않음). 게시물 값 (삭제할 사용자 ID)을 링크를 통해 전달하는 경우 - URL 세그먼트가 필요합니다. https://ellislab.com/codeigniter/user-guide/libraries/uri.html – sinisake
URI 세그먼트를 사용하는 것이 안전합니까? 그렇게 잘 제거하거나 변수를 사용하는 것이 가장 좋습니다. –
보안 포인트와의 차이점은 없습니다 -> 모든 POST 데이터는 URL에서 사용자가 볼 수 없더라도 매우 쉽게 볼 수 있고 쉽게 액세스 할 수 있습니다. 따라서 admin 기능에 대한 관리자 권한을 확인해야합니다. 사용자가 주소 표시 줄에 http://yoursiteurl.com/admin/delete/some_user_id를 입력하고 사용자를 삭제할 수 없습니다. – sinisake