1

我不知道如何通过 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 提供的方法。我什么也找不到。提前致谢。

4

2 回答 2

0

由于数据是由用户发送的,因此无法通过网站安全地发送参数。

使用 cakephp 的验证方法来确保数据是正确的。

于 2013-02-16T17:43:32.107 回答
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 表现不佳:(

于 2013-02-16T17:48:56.703 回答