Php 代码点火器后变流器

Php 代码点火器后变流器,php,codeigniter,post,Php,Codeigniter,Post,我对CodeIgniter过滤掉包含重音字符的POST变量有问题 这是我的HTML页面: <!DOCTYPE html> <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head> <body> <form action="/test" method="post" accept-charset="utf-8"&

我对CodeIgniter过滤掉包含重音字符的POST变量有问题

这是我的HTML页面:

<!DOCTYPE html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head>
<body>    
    <form action="/test" method="post" accept-charset="utf-8">
        <input type="text" name="name" value=""  />
        <input type="submit" name="submit" value="Submit"  />    
<form>    
</body>
</html>
…但输入名称为“my namé”时,变量将作为空传递:

/*
|--------------------------------------------------------------------------
| Default Character Set
|--------------------------------------------------------------------------
|
| This determines which character set is used by default in various methods
| that require a character set to be provided.
|
| See http://php.net/htmlspecialchars for a list of supported charsets.
|
*/
$config['charset'] = 'UTF-8';

如果我将相同的表单发布到一个独立的PHP脚本中,它就可以正常工作。我在配置中看不到任何明显的原因。有人能帮忙吗?

在config.php中,更改此选项-


去别的地方。。。基本上,如果默认情况下设置为
UTF-8
CI,则会通过过滤器运行所有内容,以检查/转换应用程序是否需要UTF-8,而iconv()的实现是罪魁祸首。。。查看此线程以了解更多信息

这是一个MAMP特定的问题,实际上是此问题的重复,它提供了解决方案:

您是否检查了此问题?进一步,根据:“:”调用新控制器时会自动调用安全筛选函数。它[…]过滤POST/COOKIE数组键,只允许字母数字(和一些其他)字符。“”–那么我如何更改它?好的。。。感谢链接@Kobayakawa。这个问题与运行PHP5.3.X的MAMP无关。在运行PHP5.3.8的CentOS/Apache web服务器上没有这样的问题。将MAMP切换到PHP5.2修复了它(但不是很好,因为我正在生产中运行5.3)@Ade:检查PHP配置是否有差异,特别是对于mb_字符串默认配置/编码,PCRE版本。并确保在两个站点上都禁用了
xss\u clean
。@hakre在php.ini中,在两个环境中,对mbstring的所有引用都被注释掉。我在MAMP上本地运行的应用程序代码与在LAMP上远程运行的代码相同,只是有一个环境变量。
Array
(
    [name] => my name
    [submit] => Submit
)
Array
(
    [name] => 
    [submit] => Submit
)
/*
|--------------------------------------------------------------------------
| Default Character Set
|--------------------------------------------------------------------------
|
| This determines which character set is used by default in various methods
| that require a character set to be provided.
|
| See http://php.net/htmlspecialchars for a list of supported charsets.
|
*/
$config['charset'] = 'UTF-8';