我的问题看起来很愚蠢,但我需要联系并做出决定。我想将参数传递给url而不在url中看到参数。这是为了保护我的服务器。因为网址看起来像这样
控制器/编辑/ 123
和'123'是数据库中的用户ID。 我可以简单地做到这一点
public function action_edit($id) {
get_db_info($id);
}
从视图重定向到此网址时是否可以隐藏参数?即在视图文件中
// Do something to set the ID
<?php Kohana_Request::post("user_id", $id); ?>
<a href="<?=URL::base()?>controller/edit">Click</a>
并获取此ID
public function action_edit() {
$id = $this->request->post("user_id");
get_db_info($id);
}
但问题是我无法访问KOhana_Request实例并收到此错误
*非静态方法Kohana_Request :: post()不应静态调用*
有人可以为此提供安全的方法吗?
答案 0 :(得分:0)
我认为我通过编码和解码参数找到了解决方案。
由于Kohana 3.3不允许控制器函数see中的参数。
我在我的观点中这样做
$user_id = Encrypt::instance()->encode($liste->user_id);
$encode_id = base64_encode($user_id);
$encode_ure_id = urlencode($encode_id);
来自控制器,
$encoded_id = urldecode($this->request->param('uri_id'));
$encode_base_url = base64_decode($encoded_id);
$user_id = Encrypt::instance()->decode($encode_base_url);
如果这可以帮助他人。