我有一个用代码点火器编写的PHP程序需要你的帮助!已经尝试了3个星期!
我有htaccess mod重写来制作http://www.sampleurl.com/controllername而不是http://www.sampleurl.com/index.php/controllername
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
</IfModule>
<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
ErrorDocument 404 /index.php
</IfModule>
我有一个Dashboard控制器(目前用于测试会话。)
public function index()
{
$is_logged_in = $this->session->userdata('fb_session');
$data = array(
'fb_data' => $is_logged_in,
);
if (!isset($is_logged_in) || $is_logged_in != true){
redirect('/error');
}
}
以下是假设杀死当前会话并重定向到仪表板页面的功能。
$('#logoutbtn').click(function(){
$.ajax({
type:"POST",
url: "/fbcontroller/killsession",
datatype: "json",
success: function(){
alert("Logout");
}
});
});
public function killsession(){
$this->session->sess_destroy();
redirect('/dashboard');
}
问题1:当我从1个控制器中的函数重定向到另一个控制器时,重定向在这里失败。萤火虫显示404错误,未找到页面,而不是直接指向仪表板。在响应中,它显示/错误页面的所有HTML代码。这是否意味着重定向有效?如果是,为什么不在浏览器上显示?
问题2:会话被破坏,但是当我刷新(F5)时,登录页面仍然停留。
答案 0 :(得分:3)
对于htaccess,我建议:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php/$1 [L,QSA]
并且知道当你杀死会话CI时会在你的下一个页面加载上创建一个新的1(在你的情况下重定向)。会话不只是用户登录。
不要忘记在app / config / config.php设置
$config["index_page"] = '';