Codeigniter用下划线替换输入名称中的点

时间:2014-08-14 16:34:27

标签: codeigniter validation codeigniter-2

当我提交表单时,Codigniter会将包含点(。)的输入名称替换为下划线(_)。这是一个简单的例子:

<form method="post">
    <input type="text" name="client.firstname" />
    <input type="text" name="client.lastname" />
    <input type="submit" />
</form>

$_POST现在包含:

Array
(
    [client_firstname] => xxxxx
    [client_lastname] => yyyyy
)

所以client.firstname没有理由成为client_firstname

你知道发生了什么吗?

1 个答案:

答案 0 :(得分:2)

这不是CI这样做,而是PHP本身 - 它是$ _POST / $ _ GET /等之前的“旧时代”的残余,当外部参数直接导入全局变量范围时;因为变量名在PHP中不能包含.,因为它也是连接运算符。

这也有记录,http://php.net/manual/en/language.variables.external.php

  

注意:
  变量名中的点和空格将转换为下划线。例如<input name="a.b" />变为$ _REQUEST [“a_b”]。