我知道如何在 CodeIgniter 的表单中启用 CSRF,但是我不确定如何在 CodeIgniter 经典链接中实现此功能(例如,用于在管理区域添加/删除私人消息、帖子等)
现在我正在使用这样的东西:
看法
<?php echo anchor('account/delete_private_message/'.$obj->pmID, 'delete mesage', array('onclick' => 'return confirm(\'Do you really want to delete this private message?\');', 'class' => 'delete-message-button')); ?>
控制器
function delete_private_message($pmID = '')
{
$deleted_pm = $this->account_model->delete_pm($pmID);
if($deleted_pm)
{
$this->session->set_flashdata('status', 'PM was deleted successfully');
}
else
{
$this->session->set_flashdata('status', 'Error');
}
redirect('account/private_messages');
}
模型
function delete_pm($pmID)
{
$return = 0;
if(!empty($pmID))
{
$this->db->where('pmID', $pmID);
$result = $this->db->delete('private_messages');
}
return $result;
}
如果用户在弹出窗口中单击“确定”,则该消息将被删除。
问题是如何将令牌添加到链接和用户会话并验证它等。我不知道如何实现这一点才能正常工作。
编辑:我只是想我必须在链接末尾添加生成的令牌,例如:
帐户/delete_private_message/1239/dfdf6e7re67a6e87r6e87r69876bn3
并且值 dfdf6e7re67a6e87r6e87r69876bn3 也在当前用户的会话中并在控制器中验证它们。但是,我不知道该怎么做。因此,任何帮助表示赞赏。