yangyynn 发表于 2011-10-17 08:55:15

controllers参数如果为http://xxx模式就不能接收,怎么修改呢?

本帖最后由 yangyynn 于 2011-10-17 11:34 编辑

请教大家,
我需要在登录有返回登陆前的地址,所以在登录的controllers/login中接收一个参数。

class User extends CI_controllers{

public function login($backurl=''){
//codeing here
}

}


我在进入这个login的时候,
1、通过地址:http://xxx.xxx.xxx/index.php/user/login/http://codeigniter.org.cn
错误:
A PHP Error was encounteredSeverity: Warning
Message:parse_url(/home/login/http://codeigniter.org.cn/) : Unable to parse URL
Filename: core/URI.php
Line Number: 193

2、进行urlencode编码后:http://xxx.xxx.xxx/index.php/user/login/http%3A%2F%2Fcodeigniter.org.cn
错误:The requested URL /home/login/http://codeigniter.org.cn was not found on this server.

请问大家有什么解决办法吗?

baiyuxiong 发表于 2011-10-17 09:18:47

第一种方法显然不对,转向链接里的下划线跟URL本身的下划线冲突。

第二种方式:
http://xxx.xxx.xxx/index.php/user/login/http%3A%2F%2Fcodeigniter.org.cn
The requested URL /home/login/http://codeigniter.org.cn was not found on this server.

这个错误的链接都不对应的,怎么回事?

baiyuxiong 发表于 2011-10-17 09:19:41

跳转到登录前地址不是这么实现的。你可以搜索一下论坛。

yangyynn 发表于 2011-10-17 09:23:36

我不想用系统记录登陆传入地址,再登陆后再跳转。
我想用传入参数的方式。

传入参数不能是url地址的格式吗?

yangyynn 发表于 2011-10-17 09:26:19

baiyuxiong 发表于 2011-10-17 09:18 static/image/common/back.gif
第一种方法显然不对,转向链接里的下划线跟URL本身的下划线冲突。

第二种方式:


这个是这样的,可能是会自动解码。
echo anchor('user/login/'.urlencode('http://codeigniter.org.cn'), '登录');
我是这么做测试的。

yangyynn 发表于 2011-10-17 11:34:48

使用base64_encode编码搞定
echo anchor('user/login/'.base64_encode('http://codeigniter.org.cn'), '登录');

baiyuxiong 发表于 2011-10-17 11:50:04

yangyynn 发表于 2011-10-17 11:34 static/image/common/back.gif
使用base64_encode编码搞定
echo anchor('user/login/'.base64_encode('http://codeigniter.org.cn'), '登 ...

你这样做的话,只是让用户跳转到了固定的链接。
没办法让用户跳转到登录前链接,因为你没办法取到登录前的链接是什么。

yangyynn 发表于 2011-10-17 13:44:19

登录前地址我是让传入的应用自己添加的。

att555 发表于 2011-10-17 20:14:02

记得论坛里有详细解决办法的,找不到了
页: [1]
查看完整版本: controllers参数如果为http://xxx模式就不能接收,怎么修改呢?