用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3461|回复: 8
收起左侧

[HELP] BUG? POST提交错误

[复制链接]
发表于 2010-6-13 20:43:51 | 显示全部楼层 |阅读模式
CI版本1.7.2 Apache/2.2.14 (Win32) PHP/5.3.1
如下代码,用CI框架的情况下
VIEW
HTML复制代码
<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复制代码
<?php
  echo "<pre>";
  print_r($_POST);
  echo "<pre>";
?>
复制代码


如果我输入的是“%AC”
则最后输出的是
PHP复制代码
Array
(
    [desc] =>
)
复制代码


如果是不使用CI框架的话,则输出为
PHP复制代码
Array
(
    [desc] => %AC
)
复制代码


测试了下发现只要是“%XC”,都显示为空,但是要插入到数据库时则变为\xXCr(插入错误,提示非法字符)
 楼主| 发表于 2010-6-13 20:57:04 | 显示全部楼层
%AE   %10 等也会变成无法显示(INPUT.php  lib文件中列出的特殊字符),但插入数据库时提示错误...那如果真的提交的的数据包含这些文字怎么办??
我现在是叫他们先在%号后面加个空格,但是这不是办法啊...难道要在提交之前用JS处理这些字符??
发表于 2010-6-14 00:02:16 | 显示全部楼层
CI 有过滤机制。
提示什么错误?
 楼主| 发表于 2010-6-14 12:44:12 | 显示全部楼层
CI 有过滤机制。
提示什么错误?
Hex 发表于 2010-6-14 00:02

CI什么提示也没有,就只是把这些字符串变成空白(至少IE上显示的是空白)
但是插入数据库的时候,%ACR 就变成了 \xACr

A Database Error Occurred
Error Number: 1366
Incorrect string value: '\xACr' for column 'style' at row 1
发表于 2010-6-14 14:30:04 | 显示全部楼层
我试了一下,确实被 CI 过滤了。。。。
 楼主| 发表于 2010-6-15 14:50:26 | 显示全部楼层
我试了一下,确实被 CI 过滤了。。。。
Hex 发表于 2010-6-14 14:30

那现在怎么办??
修改那个INPUT.php的话又不知道会不会导致其他地方出错...难道真的要在前台用JS将那些特殊字符串的%后面加个空格?
发表于 2010-6-15 14:52:28 | 显示全部楼层
当然是要扩展 input.php 了,不是修改,是扩展。。。。
没其他方法了。
 楼主| 发表于 2010-6-17 15:56:45 | 显示全部楼层
当然是要扩展 input.php 了,不是修改,是扩展。。。。
没其他方法了。
Hex 发表于 2010-6-15 14:52

还没试着拓展过CI...
能否提供下思路??
发表于 2010-6-17 16:58:13 | 显示全部楼层

本版积分规则