Cake PHP传递参数与表单到控制器

时间:2013-02-16 17:37:26

标签: forms cakephp parameters

我不知道如何使用Cake通过表单安全地传递参数。 我现在使用的方法如下:

$this->Form->create('Post', array('label' => '', 'action' => '', 'url' => 'inseratAngenommen/'.$postId));

在控制器中有:

function inseratAngenommen($id = null, $bs = null){
    //stuff
}

问题是用户可以在浏览器中修改$ postId的输出编号:

action="/cakephp/posts/inseratAngenommen/149" 

对于这种情况,我想在HTML中传递不可见的参数。那可能吗? 我想到了一种像Form-> PostLink提供的方法。我找不到任何东西。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

当用户发送数据时,可以通过网站安全地发送参数

使用cakephp的验证方法确保数据正确无误。

答案 1 :(得分:0)

1]方法一:添加模糊:通过以下方式将$ id隐藏到已发布的字段中:

$this->Form->hidden('id');
$this->Form-field('id');  // even this one will do as cake hides ids by default

2]方法二:将id保存在服务器上,例如在会话中

$this->Session->write('current-edited-post-id', $id); // upon form display
$id = $this->Session->read('current-edited-post-id'); // upon form submission

但请注意,如果用户打开多个标签并从两个标签中操作一个会话,那么方法2表现不佳:(