CodeIgniter を使用して isset() 関数を使用して Cookie が存在するかどうかを確認し、それに応じて他のコントローラーにリダイレクトします。今私の問題は、check_logged_in 関数が Cookie が存在しないと考えているため、リダイレクト ループが発生することです。
これが私のコードです:
この関数は にありlogin_helper
ます。
function check_logged_in()
{
if(!isset($_COOKIE['uid']))
{
redirect('users/login');
return FALSE;
}
else
{
return TRUE;
}
この次の関数はhome
コントローラにあり、前述の check_logged_in() 関数を呼び出します。
public function index()
{
$this->load->helper('url');
$this->load->helper('login');
$logged_in = check_logged_in();
if($logged_in === TRUE)
{
$this->load->view('templates/header');
$this->load->view('pages/home_view');
$this->load->view('pages/advanced_search_view');
$this->load->view('pages/contact_information_view');
$this->load->view('templates/footer');
}
}
次の関数はusers
コントローラにあります
public function login()
{
if(isset($_COOKIE['uid']))
{
redirect(home);
}
else
{
-some unrelated code-
}
Cookieが存在し、home/index
関数または関数のいずれかを実行するとusers/login
、リダイレクトループに陥ります。Cookie が存在しない場合、ログイン ページが表示されるため、users/login
Cookie チェックは正しく機能しているように見えますが、home/index
機能していません。
入れてみました
if(!isset($_COOKIE['uid']))
{
redirect('users/login');
}
関数に直接入れましたhome/index
が、同じ問題が発生しました。