naffan 发表于 2010-5-29 13:41:28

URI类怎么用

用index.php/user/login/name/jean形式 怎么才能让接受的页面得到name=jean呢
用这个:$this->uri->uri_to_assoc(n)

zhouli520 发表于 2010-5-29 14:08:05

要拿到view层传过来的值用$this->uri->segment(参数的位置)
   位置的算法是从index.php后的第一个值算起的比如你要拿到jean这个值,segment的参数是4就可以拿到了,还有,传值的时候,你不应该把变量名也传过来,没这个必要的
index.php/控制器/方法/要传的参数拿值就是$name = $this->uri->segment(3);这样就可以了
多看帮助文档吧

naffan 发表于 2010-5-29 14:14:03

看了。我看文档了……
就是看了所不明白………………

naffan 发表于 2010-5-29 14:14:47

等等我试一试

naffan 发表于 2010-5-29 14:17:34

我来详细的说一下吧。

naffan 发表于 2010-5-29 14:19:53

比如
<a href='./index.php/user/login/name/jean'>Jean</a>
当我在页面点这个的时候 CI跳转到./index.php/user/login中。然后通过$name = $this->uri->segment(3);取得Jean。
这个时候测试一下:echo $name;
结果: Jean


对么?

naffan 发表于 2010-5-29 15:49:49

上面的 答案应该改成 $name = $this->uri->segment(2); 是2 不是 3

好了,问题还有一个
UC里面登入的时候有个$auth = rawurlencode(uc_authcode("$username\t".time(), 'ENCODE'));的过程 其中uc_authcode是uc自己的方法。当我把这个值通过<a href>传的时候 。他最终会说:
The requested URL /video/index.php/user/showregister/activation/d49b5Sw6rbI6/iqeVfGkk/6kjxLY8kBLUBwUFpi0UaCpCZ8gOuYaLcba+Q was not found on this server.
红色字体为一个变量。仔细观察里面的有/ 这岂不乱套了!!!!正在解决中 有人看过有建议没

Hex 发表于 2010-5-29 21:30:19

URL 分段传参只适合传递简单内容,比如 ID 等,复杂内容建议用 GET 传参。

naffan 发表于 2010-5-30 00:39:49

回复 8# Hex


    只有这样了,我选择了get方法。没办法~~~~编码一下 就是了~

visvoy 发表于 2010-6-1 01:34:51

你可以把斜杠替换成下划线,接收的时候再把下划线换回斜杠
页: [1]
查看完整版本: URI类怎么用