あなたの助けが必要なコードイグナイターで書かれたPHPプログラムがあります! 3週間がんばりました!
http://www.sampleurl.com/index.php/controllernameの代わりにhttp://www.sampleurl.com/controllernameを作成するために htaccess mod を書き直しました。
<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>
ダッシュボード用のコントローラーがあります (現在、セッションのテストに使用されています)。
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: あるコントローラーの関数から別のコントローラーにリダイレクトすると、ここでリダイレクトが失敗します。ダッシュボードに誘導する代わりに、firebug は 404 エラー、ページが見つからないことを表示します。応答では、/error ページのすべての HTML コードが表示されます。リダイレクトが機能するということですか?はいの場合、ブラウザに表示されないのはなぜですか?
問題 2: セッションは破棄されますが、更新 (F5) してもログインしたページが残ります。