blogを見たらわかるかも。
このプログラムはPHPで書かれています。index、input、judge、update、reset、success、showの7つのファイルからなります。
うまくいけば
1回目のアクセス時は index -> input -> judge -> index -> update -> success ( -> show) の順、
2回目以降のアクセス時は index -> update -> success ( -> show) の順で処理が進みます。
一般的な出席管理システムのような、 データベースのクライアントは固定された電子機器1つではなく 各々のスマホでどこでもアクセスでき、洗面所に電子機器を常設しなくてもいいようになっているというのは建前で、 本当はお金と場所を使いたくなかっただけです。
PHP
主な言語
セッション
「サーバ内に情報を保存し、複数ページ間で共有する」仕組みらしい
MySQL8
データベース
MySQLAdmin
データベースを見れるツール的な
Linux系のコマンド
cd、ls、sudo su - など...
ssh
リモートコンピュータと通信するためのなにか
Apache2
Webサーバソフトウェア
ネットワークのちょっとした知識
などなど...
Web-serverからMySQLに接続しようとしたら以下のエラーが出てくる。
確認したけど関係なかったこと
port確認
MySQLのユーザー設定
解決方法は以下の通り。
MySQLの設定ファイルを設定する。
「/etc/mysql/mysql.conf.d/mysqld.cnf」ファイルのbind-addressも確認しましょう。
デフォルトでは「127.0.0.1」(ループバックアドレスなので同じホスト内のみ接続可能)となっているので、
接続したいホストに応じてに変更、コメントアウトする。
例えば「0.0.0.0」に設定すれば全てのホストからの接続を許可できる。
$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
...
#bind-address = 127.0.0.1
bind-address = 0.0.0.0
...
エラー内容にそう書いてくれ!! ٩(๑`^´๑)۶
classを使ってコードを書いてみたかったが、いまいちよくわからなかったので、
動けばいいや精神でfunctionを使って書いてしまった。
classを使って書いた方がその後の拡張性が高いらしいので、classを使って書く。
環境変数を使ってデータベース名やユーザー名、パスワードを隠したかったが、うまくいかなかった。
Composerを使ってどうだこうだする方法をやりたかったけどエラーしか出なかったのであきらめて
conf.phpに関数を書いて.gitignoreで隠すといういい感じに代用した。はたしてこれでいいのかは分からない?
気が向いたらもう一度チャレンジしてみたい。
また、今回はCookieの一部である「セッション」を使ってログイン機能を実装したが、
iPhoneのSafariは防犯意識が非常に高くCookieがオフになっていることがあるらしい。
なんてこった!対処法は「Cookieを使わないログイン機能」を実装することらしい。気が向いたらやってみたい。