ドットインストール - 3分動画でマスターできるプログラミング学習サービス

  • レッスン一覧
  • 料金プラン
    • レッスン一覧
    • 料金プラン
  • ログイン
  • 運営からのお知らせ

    • 2025/11/13 NEW

      【週刊ドットインストール】 Figmaの実践編は年内のどこか、256timesの新クラスを計画中

    すべて見る
  • トップ /
  • マイページ /
  • Login.php

Login.php

<?php

namespace MyApp\Controller;

class Login extends \MyApp\Controller {

    public function run() {
        if ($this->isLoggedIn()) {
            header('Location: ' . SITE_URL);
            exit;
        }
        if ($_SERVER['REQUEST_METHOD'] === 'POST') {
            # code...
            $this->postProcess();
        }
    }

    protected function postProcess() {
        // validate
        try {
            $this->_validate();
        } catch (\MyApp\Exception\EmptyPost $e) {
            $this->setErrors('login', $e->getMessage());
        }
        $this->setValues('email', $_POST['email']);
        if ($this->hasError()) {
            # code...
            return;
        }else {
            try {
                $userModel = new \MyApp\Model\User();
                $user = $userModel->login([
                    'email' => $_POST['email'],
                    'password' => $_POST['password']
                ]);
            } catch (\MyApp\Exception\UnmatchEmailOrPassword $e) {
                $this->setErrors('login', $e->getMessage());
                return;
            }
            // login処理
            session_regenerate_id(true);
            $_SESSION['me'] = $user;
            // redirect to home
            header('Location: ' . SITE_URL);
            exit;
        }
    }

    private function _validate()  {
        if (!isset($_POST['token']) || $_POST['token'] !== $_SESSION['token']) {
            echo 'Invalid Token!!';
            exit;
        }
        if (!isset($_POST['email']) || !isset($_POST['password'])) {
            echo 'Invalid Form!';
            exit;
        }

        if ($_POST['email'] === '' || $_POST['password'] === '') {
            throw new \MyApp\Exception\EmptyPost();
        }
    }
}
dotinstall

3分動画でマスターできるプログラミング学習サービスです。あなたもプログラミングを始めてみませんか?

サービスメニュー

  • レッスン一覧
  • 料金プラン
  • 法人向けライセンス
  • 256times
  • 運営からのお知らせ
  • プログラミング学習ガイド
  • プログラミング学習相談室

ご利用にあたって

  • ヘルプ
  • 利用規約
  • プライバシーポリシー
  • 利用者情報の外部送信について
  • 運営企業情報
  • 採用情報
  • 教材利用について
  • お問い合わせ

ソーシャルメディア

  • note
  • X (@dotinstall)
  • Facebookページ

更新情報

  • 新着レッスンRSS
  • 新着補足情報RSS

Copyright © 2011-2025 dotinstall.com. All Rights Reserved.