2015-03-03 34 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

相關問題