crazhou 发表于 2013-3-18 14:24:58

CI 修改版,基于2.1.3 定名为ICI,欢迎下载

本帖最后由 crazhou 于 2013-3-18 14:27 编辑

以下是修改版的一些特性,持续更新中。。。谢谢大家

-- 增加了和Apache 下的 nginx 下的Rewrite 规则

-- 增加 input 类下的 is_post 和 is_get 方法

-- 增加 output 类下的 toJSON 和 ajaxError 方法

-- 建立了 static 及其子目录 js, css, images, captcha

-- system/core/Input.php 下的 Disallowed Key Characters 的问题

-- 增加了ranstr, static 注意ranstr 中包含ranstr 生产随机字符,和 create_valicode 生成验证码两个函数,并依赖 captcha 扩展


zip 包在此----下载吧

lowellddh 发表于 2013-3-18 14:27:12

{:soso_e113:}沙发,坐等下载地址

startbbs 发表于 2013-3-18 20:12:31

不错,支持

crazhou 发表于 2013-3-19 10:53:00

startbbs 发表于 2013-3-18 20:12 static/image/common/back.gif
不错,支持
谢谢转载,请保持正确性啊,:curse:
http://www.startbbs.com/forum/view/375

smallhe 发表于 2013-3-19 11:22:22

标记一下。

bob 发表于 2013-3-21 22:23:19

mark一下

Beyoung 发表于 2013-3-22 04:19:43

大半夜来发帖,就是这个问题。不知道此版本解决没有,完全是把“&”当键名


$post_data = array(
      "key"   => $this->submit_remote_key,
      "ipa_list" => json_encode($id_data)
);    // 这里数组如果是只有一个值,则没有问题

$context = array(
                                'http'        => array(
                                                'method'        => 'POST',    // GET方式,也不会有问题
                                                'header'        => 'Content-type:application/x-www-form-urlencoded',
                                                'content'        => http_build_query($post_data)
                                        )
                        );

运行出现了 Disallowed Key Characters.
我在input的_clean_input_keys下对$str输出后得到 "amp;ipa_list",也就是 &ipa_list 无法通过

而在POST方式下,post的数组$post_data是要被转换成如下格式的,
"keys=skljfdl8908sdfs0sfd0&ipa_list=%5B%7B%22item_id%22%3A..
它把“&”链接符号当键名处理,于是视为非法字符了。如果这不算是一个bug的话,那我只能GET或者只提交一个表单元素了

这个问题,我一般是不想去改动或重写方法的。如果处处我都要重写,我为何要用CI呢?
加上Hex老大对此问题有非凡的见解,我只好深更半夜来发发贴了~~

也不知道楼主解决这个没有

Hex 发表于 2013-3-22 10:04:41

Beyoung 发表于 2013-3-22 04:19 static/image/common/back.gif
大半夜来发帖,就是这个问题。不知道此版本解决没有,完全是把“&”当键名

运行出现了 Disallowed Key Cha ...
这是什么问题?不能POST提交内容?
另外,http_build_query($post_data) 这个函数默认是用 & 拼接字符串,如果你想用 & 拼接要这样写(PHP 5.1.2以后):
http_build_query($post_data, '', '&')

Beyoung 发表于 2013-3-23 01:30:41

Hex 发表于 2013-3-22 10:04 static/image/common/back.gif
这是什么问题?不能POST提交内容?
另外,http_build_query($post_data) 这个函数默认是用 & 拼接字符串, ...

我一直使用的手册中 http_build_query 只有2个参数, 官方最新的此函数都4个参数了!~~!,我太OUT了,换手册

因为我在网上看到人家也没有这样处理过就post了, 第一次知道有这样一个符号区别。

核实后果真如Hex老师所说,

原生PHP是不会提示的,并且会把这个&加到表单名中,CI对此给出了提示而已

是我浅薄了

感谢Hex老师

Hex 发表于 2013-3-25 10:55:11

Beyoung 发表于 2013-3-23 01:30 static/image/common/back.gif
我一直使用的手册中 http_build_query 只有2个参数, 官方最新的此函数都4个参数了!~~!,我太OUT了,换手 ...

呵呵,太客气了。
这个问题,我猜想可能有一定的历史和环境因素,在当初php5发布的时候,XHTML正如日中天,那时候PHP估计是为了兼容XHTML而使用&的,但为了灵活也保留了可定制性。
一般来说在XHTML里要使用&,而真正的URL规范里是必须用&组合的。
页: [1]
查看完整版本: CI 修改版,基于2.1.3 定名为ICI,欢迎下载