hooks文件夹中redirect用法
hooks文件夹中写了一个类,类中使用redirect()函数,redirect()之前所有处理没问题,但是到了这个函数,就不能跳转到controller的函数中去,页面出现的错误提示是,找不到URL 贴出你的代码 class Auth
{
function check()
{
$ci =& get_instance();
var_dump($ci);
$class = $ci->uri->segment(1);
$method = $ci->uri->segment(2);
if (!$ci->session->userdata('logged_in')) {
if (!($class == 'auth' && in_array($method, array('login', 'do_login')))) {
redirect('checkbox/a_index');
}
}
} redirect(site_url('checkbox/a_index'));
用路径的时候都要用完整路径,谢谢 不是把redirect里面是加 (controller/方法名字)
刚才看了redirect函数的说明
function redirect($uri = '', $method = 'location')
{
switch($method)
{
case 'refresh' : header("Refresh:0;url=".site_url($uri));
break;
default : header("Location: ".site_url($uri));
break;
}
exit;
}
}
不用特意加site_url
说明一下,我用的1.6.3版本的 本帖最后由 jeongee 于 2010-11-10 15:01 编辑
我测试了一下是可以的,我想是你的判断逻辑有问题,导致无限跳转了
if (!($class == 'auth' && in_array($method, array('login', 'do_login')))) {
redirect('checkbox/a_index');
}
改成
if (!(($class == 'auth') && in_array($method, array('login', 'do_login')))) {
redirect('checkbox/a_index');
}
试试 哪个地方?? $class == 'auth' 用括号括起来 好像不是这个判断的地方,加不加括号,都能走到redirect('checkbox/a_index');之前
就是redirect('checkbox/a_index')跳转以后的事情,地址栏里面都出现了
http://192.168.1.173/main/check/a_index,就是不能访问controller中的函数
这个是不是哪里设置的问题 .htaccess
可能是用了这个文件的原因
页:
[1]
2