学習日記52日目
どうも、enomotoです。
ようやく梅雨らしく雨が降ってきました。
結局、土曜日も遠出できなかったなーとか思いつつ
今日も日記をお送りしたいと思います。
先週までの簡単なまとめ
48日目から始めたカレンダー制作を始めました。仕様を決め実装し自らテストして
課題を完成させるものです。
本日までに
- 月ごとのカレンダーが表示できる(1ヶ月単位)
- 日ごとの詳細画面がありスケジュールを見ることができる
- 上記2のスケジュール詳細画面では、一覧表示とスケジュール登録・削除・編集ができる。
- ログイン機能を付ける。
まで、終わっています。
今日、やったこと
- 複数ユーザーで使えるようにした。
- 新規登録画面を作った。
- テストケースを書きながらテストを実行。
- 細々とした機能を追加。
現在出ている不都合
- 今のところ問題なし。
次回以降の課題
- 完成
現在のファイル構成
|-- calendar | |-- create_db_table.txt | |-- lib | | |-- DB.php | | |-- controller.php | | |-- library.php | | `-- multiuser_lib.php | |-- modules | | |-- admin | | | |-- logic | | | | `-- users_view.php | | | `-- view | | | `-- users_view.php | | `-- calendar | | |-- logic | | | |-- day_view.php | | | `-- month_view.php | | `-- view | | |-- day_view.php | | `-- month_view.php | |-- test_case_multi_mode.txt | |-- test_case_single_mode.txt | `-- web | |-- css | | `-- style.css | `-- index.php
/modules/admin/logic/users_view.php
<?php class Admin { public $cal_title; public $lib; public $account; public $pass; private $sql; public $result; public $list; public function render($get) { require_once($get); exit(); } public function execute() { // タイトル設定 $this->cal_title = '新規登録'; // AccountとPassがあったら登録処理 if (isset($_POST['entrymode']) && isset($_POST['account']) && isset($_POST['pass'])) { $this->lib = new Library(); $this->account = $this->lib->changeSpecialParameter($_POST['account']); $this->pass = $this->lib->changeSpecialParameter($_POST['pass']); // AccountとPassが半角英数字かチェックして、問題なければコミットする。 if (preg_match('/^[a-zA-Z0-9]{1,}$/',$this->account) && preg_match('/^[a-zA-Z0-9]{1,}$/',$this->pass)) { // IDにかぶりがないかチェック $this->lib->connectDB(); DB::selectdb(); $this->sql = 'SELECT account FROM users;'; $this->result = $this->lib->readDB($this->sql); while($this->list = $this->lib->readDBfetch($this->result)) { if ($this->list['account'] == $this->account) { // 被っていたらさようなら。 header("Location: ?mode=entry"); exit(); } } $this->commitUser($this->account,$this->pass); } } } // コミット public function commitUser($id,$pass) { $create_at = date('Y-m-d H:i:s'); $lib = new Library(); $lib->connectDB(); DB::selectdb(); $md5pass = MultiUser::passcreate($pass); $keyid = MultiUser::keycreate($id,$md5pass); $this->sql = sprintf('INSERT INTO users(account,pass,create_at,keyid) VALUE(\'%s\',\'%s\',\'%s\',\'%s\');' ,$id,$md5pass,$create_at,$keyid); $lib->commitDB($this->sql); DB::close(); header("Location: ?"); } }