Cakephp在会话ID中存储会话变量以在用户之间共享URL

时间:2011-04-19 21:58:36

标签: session url cakephp

我的脚本工作正常,但我一直在尝试解决在不同计算机上的两个浏览器之间传递会话值(以维护表单搜索条件值)的方法(用于共享查询结果)。

我正在研究两种方法:

1)从搜索字符串url路径中提取url参数,例如:... url / 50/1/4/5/98764,并在搜索表单的值中回显它们。

2)使用一个独立用户的会话(我现在用来维护这些值)。当然,这对于单个浏览器来说效果很好。

我的主要问题是,在表单字段中维护搜索值时,最好分享搜索结果的方法是什么?

YES。我知道分享这样的会话信息是一个坏主意,但它要求我别无选择!

1 个答案:

答案 0 :(得分:1)

最佳做法是#1,从网址中提取参数并将其显示在表单上。你可以通过保持url的参数和形式保持相当干净。我使用白名单提取并推送到视图:

function search() {
    if(isset($this->data)) {
        // redirect to search with named params
        ...
    } else {
        $whitelist = array('param1','param2','param3');
        foreach($whitelist as $param) {
            if(isset($this->params['named'][$param])) {
                $this->data['Model'][$param] = $this->params['named'][$param];
            }
        }
    }
}

假设您的表单类似于:

echo $form->input('param1'),
     $form->input('param2'),
     $form->input('param3')