codeigniter input post中文不能提交

hex1314 2012-04-23 02:18:26
通过$this->input->post('name')提交不了中文
如果name='en'则能提交
如果name='中文'则不能提交
...全文
313 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
改一下昵称 2012-04-23
  • 打赏
  • 举报
回复
的确是你说的问题,CI只支持英文的表单name属性。不然会报Disallowed Key Characters.
解决方法就是换成英文的,或者: http://www.kukaka.org/home/content/576
Input.php中的方法
function _clean_input_keys($str)
{
if ( ! preg_match("/^[a-z0-9:_/-]+$/i", $str))
{
exit('Disallowed Key Characters.');
}

// Clean UTF-8 if supported
if (UTF8_ENABLED === TRUE)
{
$str = $this->uni->clean_string($str);
}

return $str;
}

去掉上面那个正则判断就行
hex1314 2012-04-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 4 楼 的回复:

引用 2 楼 的回复:

可能是你的接收的php页面和发送数据的HTML页面编码不一致造成的。
var_dump($_POST); 看看乱没乱码

var_dump($_POST) name=> 没有数据

嗯你贴这个是什么意思?
CodeIgniter的编码全是utf-8的,你的程序也最好按utf-8编码
[/Quote]
意思是var_dump($_POST); 提交中文的$_POST['name']是没有数据的,是空的,程序是utf-8的,页面编码也是utf-8的。
改一下昵称 2012-04-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

引用 2 楼 的回复:

可能是你的接收的php页面和发送数据的HTML页面编码不一致造成的。
var_dump($_POST); 看看乱没乱码

var_dump($_POST) name=> 没有数据
[/Quote]
嗯你贴这个是什么意思?
CodeIgniter的编码全是utf-8的,你的程序也最好按utf-8编码
hex1314 2012-04-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

可能是你的接收的php页面和发送数据的HTML页面编码不一致造成的。
var_dump($_POST); 看看乱没乱码
[/Quote]
var_dump($_POST) name=> 没有数据
hex1314 2012-04-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
通过$this->input->post('name')提交不了中文
如果name='en'则能提交
如果name='中文'则不能提交
[/Quote]
是form表单里面的,通过post方法提交的
改一下昵称 2012-04-23
  • 打赏
  • 举报
回复
可能是你的接收的php页面和发送数据的HTML页面编码不一致造成的。
var_dump($_POST); 看看乱没乱码
andyxl 2012-04-23
  • 打赏
  • 举报
回复
是url里面的中文?

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧