BUG? POST提交错误
CI版本1.7.2 Apache/2.2.14 (Win32) PHP/5.3.1如下代码,用CI框架的情况下
VIEW
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form action="test.php" method="POST">
<input type="text" id="desc" name="desc" value="" />
<input type="submit" value="提交">
</form>
</body>
</html>
CONTROLLER
<?php
echo "<pre>";
print_r($_POST);
echo "<pre>";
?>
如果我输入的是“%AC”
则最后输出的是
Array
(
=>
)
如果是不使用CI框架的话,则输出为
Array
(
=> %AC
)
测试了下发现只要是“%XC”,都显示为空,但是要插入到数据库时则变为\xXCr(插入错误,提示非法字符) %AE %10 等也会变成无法显示(INPUT.phplib文件中列出的特殊字符),但插入数据库时提示错误...那如果真的提交的的数据包含这些文字怎么办??
我现在是叫他们先在%号后面加个空格,但是这不是办法啊...难道要在提交之前用JS处理这些字符?? CI 有过滤机制。
提示什么错误? CI 有过滤机制。
提示什么错误?
Hex 发表于 2010-6-14 00:02 http://codeigniter.org.cn/forums/images/common/back.gif
CI什么提示也没有,就只是把这些字符串变成空白(至少IE上显示的是空白)
但是插入数据库的时候,%ACR 就变成了 \xACr
A Database Error Occurred
Error Number: 1366
Incorrect string value: '\xACr' for column 'style' at row 1 我试了一下,确实被 CI 过滤了。。。。 我试了一下,确实被 CI 过滤了。。。。
Hex 发表于 2010-6-14 14:30 http://codeigniter.org.cn/forums/images/common/back.gif
那现在怎么办??
修改那个INPUT.php的话又不知道会不会导致其他地方出错...难道真的要在前台用JS将那些特殊字符串的%后面加个空格? 当然是要扩展 input.php 了,不是修改,是扩展。。。。
没其他方法了。 当然是要扩展 input.php 了,不是修改,是扩展。。。。
没其他方法了。
Hex 发表于 2010-6-15 14:52 http://codeigniter.org.cn/forums/images/common/back.gif
还没试着拓展过CI...
能否提供下思路?? 参考 http://codeigniter.org.cn/user_guide/general/core_classes.html
或者代码区的例子。
页:
[1]