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.
请问大家有什么解决办法吗?
第一种方法显然不对,转向链接里的下划线跟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.
这个错误的链接都不对应的,怎么回事? 跳转到登录前地址不是这么实现的。你可以搜索一下论坛。 我不想用系统记录登陆传入地址,再登陆后再跳转。
我想用传入参数的方式。
传入参数不能是url地址的格式吗? baiyuxiong 发表于 2011-10-17 09:18 static/image/common/back.gif
第一种方法显然不对,转向链接里的下划线跟URL本身的下划线冲突。
第二种方式:
这个是这样的,可能是会自动解码。
echo anchor('user/login/'.urlencode('http://codeigniter.org.cn'), '登录');
我是这么做测试的。 使用base64_encode编码搞定
echo anchor('user/login/'.base64_encode('http://codeigniter.org.cn'), '登录'); yangyynn 发表于 2011-10-17 11:34 static/image/common/back.gif
使用base64_encode编码搞定
echo anchor('user/login/'.base64_encode('http://codeigniter.org.cn'), '登 ...
你这样做的话,只是让用户跳转到了固定的链接。
没办法让用户跳转到登录前链接,因为你没办法取到登录前的链接是什么。 登录前地址我是让传入的应用自己添加的。 记得论坛里有详细解决办法的,找不到了
页:
[1]