获取URL Codeigniter中传递的参数



基本上,我有一个锚标记(update(,它可以获取表中请求的id,并加载更新视图,获取所有请求的详细信息

<a href="<?php echo base_url('dashboard/staff/request/update_request_view/'.$drafts['idx']);?>" class="btn waves-effect waves-light btn-info update-button <?php if($drafts['status']=='ONGOING'){echo 'disableClick';}?>"><i class="fa fa-eye"></i> Update</a>

然后在我的方法中收到

public function update_request_view($idx)
{
//some code here to load the view and get details
}

url随后变为http://localhost/dashboard/staff/request/update_request_view/48

现在,当我试图保存我使用另一种方法进行的更新时

public function update()
{
$idx = $this->uri->segment(5);
}

我的$idx变量为空。当我使用$this->uri->segment(4)时,我会得到update_request_view。

我不想使用隐藏字段,因为这会导致很多安全问题,而且当我能够解决这个问题时,我会加密id。为什么我的$this->uri->segment(5)是空的,我如何获得它?

如果我理解正确的话,很可能是因为update函数是一个独立于http://localhost/dashboard/staff/request/update_request_view/48的页面。因此CI看不到任何以前的url变量。您可以提交到update/{$id}(操作url(,也可以使用隐藏字段;它的安全性不亚于在url中使用id,因为通过更改表单操作可以很容易地操作id。

也就是说,如果你真的关心安全性,你应该使用某种ACL来限制特定用户对给定记录的访问。

相关内容

  • 没有找到相关文章

最新更新