|
楼主 |
发表于 2011-4-21 16:54:56
|
显示全部楼层
!!!!!奇怪的问题!!!!
本帖最后由 hyshzy 于 2011-4-21 17:26 编辑
我在本地输入:http://localhost/wlbs/index.php/
http://localhost/wlbs/index.php/defaults
可以登录系统,登录后的地址是:
http://localhost/wlbs/index.php/main
但是,如果我输入的是
http://localhost/wlbs/
http://localhost/wlbs/index.php
系统就无法登录,出现错误的地址为:
http://localhost/wlbs/defaults?ref=%2Fmain (明显没有了index.php)
这个问题岂不说,更郁闷的是以上可以正确登录系统的地址,只能在IE下登录(本机是IE8),在firefox,chrome下都登录不了,但是数据库有更新记录(就是登录成功后,要更新最后登录时间和登录次数的,这个是正常的。)。我通过firebug发现这样错误:
加载源代码失败: http://localhost/wlbs/index.php/main
也不知道是为什么会这样?? 初步判断和index.php是有关的,找了一天也没找到具体的问题所在。
以下是我的相关配置信息:
config.php文件:
PHP复制代码 $config['index_page'] = 'index.php'; 复制代码
defaults.htm里的form提交:
HTML复制代码 <form name="login" action="defaults?ref={myref_token}" method="post"> 复制代码
defaults.php 相关代码 (为defaults.htm所对应的控制器)
PHP复制代码 function __construct ()
{
parent ::__construct ();
$this->load->library('smarty');
$this->load->library('authcode'); //加载验证码类
$this->load->library('login_auth');
$this->load->library('form_validation');
$this->load->model('users_model', 'users');
[b ]
$this->_check_referrer ();[/b ]
}
private function _check_referrer ()
{
$ref = $this->input->get('ref', TRUE);
$this->referrer = (!empty($ref)) ? $ref : '/main';
$this->smarty->assign('ref_token',urlencode($this->referrer));
}
public function index ()
{
// 判断是否登录
if($this->login_auth->hasLogin())
{
redirect ($this->referrer);
}
…… ……
if(!empty($user))
{
if($this->login_auth->process_login($user)) //如果用户存在,更新相关操作,然后跳转到内页
{
redirect ($this->referrer); //登录成功跳到的页面:http://localhost/wlbs/index.php/main
}
}
复制代码
注:system/core/Config里的site_url(),最后一行 是:
return $this->slash_item('base_url').$this->item('index_page').'?'.$uri;
结果一直导致我的浏览登录后地址变成:
http://localhost/wlbs/index.php?/main, 结果导致:URL错误。
所有我改成了:
PHP复制代码
function site_url ($uri = '')
{
if (is_array($uri))
{
$uri = implode('/', $uri);
}
if ($uri == '')
{
return $this->slash_item('base_url').$this->item('index_page');
}
else
{
$suffix = ($this->item('url_suffix') == FALSE) ? '' : $this->item('url_suffix');
return $this->slash_item('base_url').$this->slash_item('index_page').trim($uri, '/').$suffix;
}
}
复制代码
(本人的系统结构采用的是CI 2.0.2 + smarty 3.0.7结合的。没有application文件夹,application文件夹里的所有目录和system同处于一个根目录里面,)
|
|