基本上我有一个锚标记(更新),该标记在表中获取请求的ID,并加载获取所有请求详细信息的更新视图
testID
然后在我的方法中收到
testID
该网址随后变为<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
}
我的http://localhost/dashboard/staff/request/update_request_view/48
变量为空。当我使用public function update()
{
$idx = $this->uri->segment(5);
}
时,会得到update_request_view。
我不想使用隐藏字段,因为它会引起很多安全问题,而且当我能够解决此问题时,我会加密ID。为什么我的$idx
是空的,我怎么得到它?
答案 0 :(得分:1)
很可能,如果我对您的理解正确,那是因为update
函数是与http://localhost/dashboard/staff/request/update_request_view/48
分开的页面。因此,CI没有看到任何以前的url变量。您可以提交到update/{$id}
(操作网址),也可以可以使用隐藏字段;它比在url中使用id更为安全,因为只需更改form动作就可以轻松地对其进行操作。
话虽如此,如果您真的担心安全性,则应使用某种ACL限制给定记录的特定用户访问。