FuelPHP・ユーザー管理6:ログイン後のページ(現在、ログイン中か否か)

2014/07/27

FuelPHPでユーザー管理をやりたい6。現在、ログイン中なのか未ログインの状態なのか表示したい。

基本

今回は、トップページに「ログイン前」「ログイン済み」を表示させ、ログアウト・ログインページへのリンクを設置する。

コントローラーの修正

ログイン済みか未ログインかのチェックをするためにaction_index()の編集。

これで「http://○○○/」にアクセスした際にログイン済みか未ログインか判定が可能。今回は単純にテンプレートを切り替える。

fuel/app/classes/controller/home.php

<?php
class Controller_home extends Controller {
  public function action_index() {
    $view = View::forge(‘home/index’);
    
    if(!Auth::check()) {
      // 認証していない場合
      // リダイレクトさせる場合:ログインページへ移動
      // Response::redirect(‘sample1/login’);
      
      // 「ログイン前」のレイアウトを読み込む
      $view->htmlChkLogin = View::forge(“home/chk_login_no”);
    }
    else {
      // 「ログイン後」のレイアウトを読み込む
      $view->htmlChkLogin = View::forge(“home/chk_login”);
    }
    return $view;
  }
  
  public function action_404() {
    return Response::forge(View::forge(‘home/404’), 404);
  }
}

※ログイン前か済みか、ログイン前ならログインページへのリンク・ログイン済みならログアウトのリンクを記載。

ビューの編集(トップページ)

fuel/app/views/home/index.php

<!DOCTYPE HTML>
<html>
<head>
  <meta charset=”utf-8″>
  <title>FuelPhpのトップ</title>
</head>
<body>
  FuelPhpのトップ<br />
  <br />
  <div>
    ▼現在のログイン状況<br />
    <?php echo $htmlChkLogin; ?>
  </div>
</body>
</html>

ビューの編集(トップページ:ログイン済みのパーツ)

fuel/app/views/home/chk_login.php

<p>ログイン済み</p>
<p><a href=”logout”>ログアウト</a></p>

※「ログイン済み」なら「ログアウト」ページのリンクを付け加える。(※「http://○○○/logout」へのリンクになるので後でルーティングの設定が必要)

ビューの編集(トップページ:未ログインのパーツ)

fuel/app/views/home/chk_login_no.php

<p>ログイン前</p>
<p><a href=”sample1/login”>ログイン</a></p>

※「未ログイン」なら「ログイン」ページへのリンクを付け加える。

ログアウトページ(ルーティング)の修正

「http://○○○/logout」を設定する(コントローラーで「fuel/app/classes/controller/logout.php」を用意するってのもアリ)

fuel/app/config/routes.php

<?php
return array(
  ‘_root_’ => ‘home/index’, // The default route
  ‘_404_’ => ‘home/404’, // The main 404 route
  ‘index’ => ‘home/index’,
  ‘logout’ => ‘home/logout’,
  
  //’hello(/:name)?’ => array(‘welcome/hello’, ‘name’ => ‘hello’),
);

ログアウトページ(コントローラー)の修正

※「action_logout()」を追加

fuel/app/classes/controller/home.php

<?php
class Controller_home extends Controller {
  public function action_index() {
    $view = View::forge(‘home/index’);
    
    if(!Auth::check()) {
      // 認証していない場合
      // リダイレクトさせる場合:ログインページへ移動
      // Response::redirect(‘sample1/login’);
      
      // 「ログイン前」のレイアウトを読み込む
      $view->htmlChkLogin = View::forge(“home/chk_login_no”);
    }
    else {
      // 「ログイン後」のレイアウトを読み込む
      $view->htmlChkLogin = View::forge(“home/chk_login”);
    }
    return $view;
  }
  
  public function action_404() {
    return Response::forge(View::forge(‘home/404’), 404);
  }
  
  public function action_logout() {
    $view = View::forge(‘home/logout’);
    
    // ログアウト
    Auth::logout();
    
    //ログアウト画面の表示
    return $view;
  }
  
}

ビューの追加

fuel/app/views/home/logout.php

<!DOCTYPE HTML>
<html>
<head>
  <meta charset=”utf-8″>
  <title>FuelPhpのトップ:ログアウト</title>
</head>
<body>
  <p>ログアウトしました</p>
  <p><a href=”sample1/login”>ログインページへ</a></p>
</body>
</html>

「FuelPHPでユーザー管理」の一覧

新着(ニュース関連以外)

2018-07-26
年賀状で「新春」とか書くけど・・・何故なんだろうと8月を目前にした今、疑問に思った。
2018-05-16
PHPで画像のヘッダ情報(?)の「Orientation」を元に画像回転させたい。
2018-03-05
Android Studioをインストール。エミュレータを軽くするトコまで終わらせたかったけど、挫折した。
2018-02-23
プッシュ通知について調べてた時にでてきたServiceWorker。そのServiceWorkerについてのメモ。
2017-12-13
jqueryで取得したDOM要素をオブジェクトじゃなくて、配列で受け取りたい