私はこのコードをログインせずにページにアクセスできないユーザーに使用していますが、ユーザーを妨害するようには機能していません。コードネイターでユーザーのログインを確認する方法
if(! $this->session->userdata('id'))
return redirect('Login');
$this->load->view('public/dashboard');
私はこのコードをログインせずにページにアクセスできないユーザーに使用していますが、ユーザーを妨害するようには機能していません。コードネイターでユーザーのログインを確認する方法
if(! $this->session->userdata('id'))
return redirect('Login');
$this->load->view('public/dashboard');
これを試してみてください。しかし、一般的に私は別の戦略を使用して、私はビューでif文を作成します。 これはあなたのために動作しない場合は、私はさらに確認します。あなたは何ができるか
if(! $this->session->userdata('id')){
$this->load->view('Login'); }
else {
$this->load->view('public/dashboard'); }
あなたの答えをありがとうが、まだ完全には正しくありません。私は直接URLルートを書くときは、ダッシュボードページのアクセスを与える。 –
あなたは正しいですが、問題は構文にありません。申し訳ありませんが、私は正しい答えで戻ってきます –
はMY_Controller
class Example extends MY_Controller {
public function index() {
}
}
if($this->session->userdata('id') == "")
{
redirect('Login');
}
else
{
redirect('dashboard');
}
にコントローラ変更CI_Controllerでこの
アプリケーション/コア/ MY_Controller.php
<?php
class MY_Controller extends CI_Controller {
public function __construct() {
parent::__construct();
$route = $this->router->directory . $this->router->fetch_class();
// echo $route;
// Ignore any controllers not to be effected
$ignore = array(
'dirname/controllername',
);
// If the user has not logged in will redirect back to login
if (!$this->session->userdata('id') && !in_array($route, $ignore)) {
$this->session->unset_userdata('id');
redirect($this->config->item('base_url') . 'login');
}
}
}
のようなものですここL oginとdashboardはどちらもコントローラ名です。
セッションが保存されていないことを意味します。 –
は、 'id'セッション配列に情報を保存していますか?リターンを使って?セッションの値を保存する場所でコードを共有し、 'redirect()'を使用する必要はありません。 – devpro
私のセッションは保存されますが、ユーザーがダッシュボードページにアクセスすることはできません。 –