奇怪的$this->spArgs()

#1 jaykon

我的程序里面有个表单,提效后这样处理:

dump($this->spArgs());

本地测试正常,输出:

Array
(
    [c] => user
    [a] => edit_do
    [user_id] => 1
    [user_name] => xxx
    [user_account] => jaykon
    [user_pwd] =>
    [user_mail] => xxx
    [rode_id] => 3
    [user_birth] => 2010-12-12
    [user_power] => 0
    [input] => 提交
)

上传到服务器,出现怪现像了:输出:

Array
(
    [c] => user
    [a] => edit_do
    [user_id] => 1
    [user_name] => xxx
    [user_account] => jaykon
    [user_pwd] =>
    [user_mail] => xxx
    [rode_id] => cd9d2de1b1fe685646416f99ffe5de6f
    [user_birth] => 2010-12-12
    [user_power] => b1f68500097c4dccac7d99554087b1f9
    [input] => 提交
    [pma_lang] => zh-gbk
    [pma_charset] => utf-8
    [pma_collation_connection] => utf8_general_ci
    [pmaUser-1] => WqTmUWezwOQ=
    [pmaPass-1] => rqwgWRj1b9w=
    [PHPSESSID] => fcb48d753c03f30e14ca7bdfbd02f426
    [phpMyAdmin] => 56eca7df596f710fdfe742157b01f3820448445c
    [pma_navi_width] => 200
    [pma_fontsize] => 82%
    [pma_theme] => original
)

为什么附加了这么多参数?
而且重点是有几个值被覆盖了,比如rode_id,里面的值就居然是cookies["rode_id"]的值,也就是说,

上传服务器后,$this->spArgs()包含了所有cookies和session等信息,并且如果提交的参数和$this->spArgs()包含的信息命命相同的话,会被覆盖掉。

这个不知是框架的bug还是服务器设置问题,请指教下。

另外,我再做试验:

echo $_POST['rode_id'];

则在本地和服务器都正常显示 3;

2011-04-11 00:04:10

#2 jake

$this->spArgs()是包含了get,post,cookie三者的内容,所以如果是cookie值,最好设置个“前缀”,否则重名就读取不到了。

另外,上面那些都是cookie值,pma_前缀的cookie都是phpmyadmin产生的,以后可能还会遇到统计器产生的cookie。

2011-04-12 07:13:33

#3 jaykon

原来这样,谢谢!
不过也不知为啥本地机没有这种状况,
本地用windows+wmapserver
服务器是linux

2011-04-12 09:35:46

#4 jake

本地一般测试地址都是localhost等,cookie是按照域名来获取的,所以本地测试的cookie相对比较少。

2011-04-13 07:19:31