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

使用CI开发manyou等社交网站平台应用的问题

[复制链接]
发表于 2009-4-16 22:18:30 | 显示全部楼层 |阅读模式
本帖最后由 jejwe 于 2009-4-20 15:06 编辑

初学CI,想用来开发社交网站应用,但发布应用遇到了问题
一般应用发布时都有一个Callback URL 服务器上的应用所在目录的网址,必须以斜线结尾

但如果是CI发布时默认的应用目录的话,就会显示到
Welcome to CodeIgniter!这个页面,但加上xxx.php/这样又会报错,不知道怎么解决好
发表于 2009-4-17 08:07:48 | 显示全部楼层
不太清楚你所说的问题是什么,Welcome 页面你是可以随便修改的,直接访问 index.php 所看到的页面,是由默认控制器这个设置来配置的。
 楼主| 发表于 2009-4-17 09:47:35 | 显示全部楼层
比如说吧:
应用发布时要求一个"Callback URL 服务器上的应用所在目录的网址,必须以斜线结尾"
我的应用访问地址是http://www.kefuu.com/maze/index.php/blog
因为Callback URL地址必须是目录的网址,必须以斜线结尾,所以我添写的是
http://www.kefuu.com/maze/
但在应用安装时会检测,并且自动转到
http://www.kefuu.com/maze/cp.php?ac=userapp&appid=
“cp.php?ac=userapp&appid=”这段是平台自己加的,这时候页面显示不了。

另外就是即使安装好之后。平台会自动在你的应用上加参数。类似这样
http://www.kefuu.com/maze/?my_si ... 8da6ca9a6ef88fbe890

所以就不知道具体怎么解决了。我用YII和纯PHP时没问题
发表于 2009-4-17 10:25:31 | 显示全部楼层
CI 可以支持 ? 的方式传参数,并且可以和 URL 分段的方式混合使用,这个请参考 FAQ 置顶帖,就是以 GET 方式传参数。
至于 cp.php 的问题,我想不难解决吧?可以做一个 cp.php,或者都 rewrite 到 index.php 再处理,CI 是可以处理 ? 参数的
 楼主| 发表于 2009-4-17 10:36:13 | 显示全部楼层
本帖最后由 jejwe 于 2009-4-17 10:56 编辑

另外还有一个问题想请教下HEX,就是我在处理静态页面时,在css里有一个background:rl(xx/bg.gif) repeat-x left top;这样的背景,我在跟踪时发现xx/bg.gif地址会变成http://www.youname.com/index.php/index/xx/bg.gif。这样不知道怎么解决,在页面里的静态文件按照置顶的方法解决了,但这种不知道怎么办
发表于 2009-4-17 11:04:50 | 显示全部楼层
在 css 中的路径不应该受到 CI URL 的影响吧?我一般使用 url(../images/xx.gif) 来处理,我的 css 文件在 index.php 平级的 css 目录中。
 楼主| 发表于 2009-4-17 15:57:39 | 显示全部楼层
cp.php这段实际上是调用manyou api生成的。具体地址应该是
http://uchome.developer.manyou.c ... =userapp&appid=
而不是http://www.kefuu.com/maze/cp.php?ac=userapp&appid=
但使用ci就会转到这里来,在manyou api里有一段是$this->get_site_url() ,从rest地址里取manyou的地址,但使用CI的话,这个值是空,不使用框架普通PHP模式就会转到http://uchome.developer.manyou.com/uchome/cp.php
发表于 2009-4-17 16:16:15 | 显示全部楼层
这个肯定和 CI 本身是没什么关系的,CI 也是 PHP 程序。
你应该跟踪一下程序,看看到底是哪里导致的问题,楼主可以贴出代码,我再给你看看。
 楼主| 发表于 2009-4-17 16:39:10 | 显示全部楼层
我想应该是manyou api和CI的冲突,manyou是一个REST API,我想应该是GET或POST的时候可能和 CI冲突。

manyou就是这一个PHP,比较短,里面有个方法

// 用户是否已经添加应用
function added() {
  if (isset($this->params['added']) && $this->params['added'] == '1') {
   return true;
  } else if(isset($_COOKIE['added']) && $_COOKIE['added'] == '1') {
   return true;
  } else {
   return false;
  }
}

这个params就是根据manyou rest api里的参数来判断是否是第一次添加应用。从目前来看,应该是没取到,我在manyou api里加了
parse_str($_SERVER['QUERY_STRING'], $_GET);
但不起作用

Manyou.rar

3.88 KB, 下载次数: 5

发表于 2009-4-17 17:16:41 | 显示全部楼层
CI 默认是取不到 $_GET 参数的,请根据 http://codeigniter.org.cn/forums/thread-692-1-1.html 来取 GET 参数

本版积分规则