2015-03-03 33 views
0

我有一个删除按钮/链接挂钩将从数据库中删除条目。Codeigniter - 只允许用户从数据库中删除,如果用户在数据库中创建了条目

我的视图文件:

<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'); 

} 

所以,链接的作品。我可以从数据库中删除一个条目,没有任何问题。

但是,我也可以删除用户没有创建的条目。我可以简单地通过从url中取出条目的pid(在数据库中),然后输入其他一些pid,它会删除它,即使用户没有创建它。

如何确保只有创建pid的用户才能删除它?

我在我的表列在我的数据库:

pid, uid, time, entry 
+1

它如何知道用户?它是用户吗? – Mfoo 2015-03-03 00:28:28

+0

用户ID是我通过'$ this-> session-> userdata('uid')得到的uid' – 2015-03-03 00:39:15

+0

好吧,这一切都很好,但你没有在你的SQL中使用这个会话。 – Mfoo 2015-03-03 00:42:37

回答

1

假设“UID”是谁做的用户的ID,你需要添加另一个WHERE其中uid等于用户ID的会话。

+0

而且你可能会得到会话用户ID,如'$ this-> session-> userdata('uid')' – 2015-03-03 00:28:22

+0

我已经从会话中获得他们的用户id。忘了把它放在那里。编辑。谢谢:) – 2015-03-03 00:32:07

+0

对,所以... '$ whereConditions = array('pid'=> $ pid,'uid'=> $ uid); $ this-> db-> where($ whereConditions); ' – 2015-03-03 00:38:00

相关问题