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

  • レッスン一覧
  • プレミアム会員
  • 法人でのご利用
    • レッスン一覧
    • プレミアム会員
    • 法人でのご利用
  • ログイン
  • 運営からのお知らせ

    • 2023/12/07 NEW

      【週刊ドットインストール】 レッスン制作の進捗、代表のひとりごと

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

Signup.php

<?php

namespace MyApp\Controller;

class Signup 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\InvalidEmail $e) {
            // echo $e->getMessage();
            // exit;
            $this->setErrors('email', $e->getMessage());
        } catch (\MyApp\Exception\InvalidPassword $e) {
            // echo $e->getMessage();
            // exit;
            $this->setErrors('password', $e->getMessage());
        }
        // echo 'success';
        // exit;
        $this->setValues('email', $_POST['email']);


        if ($this->hasError()) {
            # code...
            return;
        }else {
            // create user
            try {
                $userModel = new \MyApp\Model\User();
                $userModel->create([
                    'email' => $_POST['email'],
                    'password' => $_POST['password']
                ]);
            } catch (\MyApp\Exception\DuplicateEmail $e) {
                $this->setErrors('email', $e->getMessage());
                return;
            }
            // redirect to login
            header('Location: ' . SITE_URL . '/login.php');
            exit;
        }
    }

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

        if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
            throw new \MyApp\Exception\InvalidEmail();
        }
        if (!preg_match('/\A[a-zA-Z0-9]+\z/', $_POST['password'])) {
            throw new \MyApp\Exception\InvalidPassword();
        }
    }
}
dotinstall

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

サービスメニュー

  • レッスン一覧
  • プレミアム会員
  • 法人向けライセンス
  • 運営からのお知らせ
  • プログラミング学習ガイド
  • プログラミング学習相談室
  • ヘルプ

ご利用にあたって

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

プログラミング勉強会

  • 256times

ソーシャルメディア

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

更新情報

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

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