Codeigniter - 如果用户在数据库中创建条目,则只允许用户从数据库中删除
Codeigniter - Only allow the user to delete from database if the user created the entry in database
我连接了一个删除 button/link,它将从数据库中删除条目。
我的查看文件:
<a href="<?php echo base_url() . "profile/delete_entry/" . $data->pid; ?>">Delete</a>
我的控制器:
function delete_entry() {
$this->session->userdata('uid')
$this->load->model('model_entry');
$pid = $this->uri->segment(3);
$this->model_entry->entry_delete($pid);
$this->entries();
}
最后,我的模型:
public function entry_delete($pid) {
$this->db->where('pid', $pid);
$this->session->userdata('uid')
$this->db->delete('dayone_entries');
}
所以,link 有效。我可以从数据库中删除一个条目,没有任何问题。
不过,我也可以删除用户未创建的条目。我可以通过从 url 替换条目(在数据库中)的 pid
并输入一些其他 pid 来简单地做到这一点,它会删除它,即使用户没有创建它。
如何保证只有创建pid的用户才能删除?
我在我的数据库中 table 的专栏:
pid, uid, time, entry
假设"uid"是创建它的用户id,你需要添加另一个WHERE where where uid equals the user id in session.
我连接了一个删除 button/link,它将从数据库中删除条目。
我的查看文件:
<a href="<?php echo base_url() . "profile/delete_entry/" . $data->pid; ?>">Delete</a>
我的控制器:
function delete_entry() {
$this->session->userdata('uid')
$this->load->model('model_entry');
$pid = $this->uri->segment(3);
$this->model_entry->entry_delete($pid);
$this->entries();
}
最后,我的模型:
public function entry_delete($pid) {
$this->db->where('pid', $pid);
$this->session->userdata('uid')
$this->db->delete('dayone_entries');
}
所以,link 有效。我可以从数据库中删除一个条目,没有任何问题。
不过,我也可以删除用户未创建的条目。我可以通过从 url 替换条目(在数据库中)的 pid
并输入一些其他 pid 来简单地做到这一点,它会删除它,即使用户没有创建它。
如何保证只有创建pid的用户才能删除?
我在我的数据库中 table 的专栏:
pid, uid, time, entry
假设"uid"是创建它的用户id,你需要添加另一个WHERE where where uid equals the user id in session.