やる。
環境
お名前.com:RSサーバー
PHP7.4
やること
ユーザー登録とログイン・ログアウト機能の実装。
ログイン・非ログイン時の条件分岐も。
参考
ここで完結する。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9UEhQJUUzJTgzJUFEJUUzJTgyJUIwJUUzJTgyJUE0JUUzJTgzJUIzJUU2JUE5JTlGJUU4JTgzJUJEJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz03ZGNkZjE4ZjhiOTZlYWM4M2I5M2M1ZjYzYWY2NTc4NQ&mark-x=142&mark-y=112&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwcnlvLWZ1dGVib2wmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTcyMDljOTE0MTI2NzRjMTE4NWQyZDI3ODM2YTQ0Mzdh&blend-x=142&blend-y=491&blend-mode=normal&s=e8d3b0d2a1bc20f597498c390f3b8e60)
PHPログイン機能 - Qiita
PHPによる新規登録からログイン・ログアウトまで大まかな流れとして◆登録画面でユーザー登録 →すでに存在しているユーザーではないか◆ログイン処理 →入力された情報がDBと一致すればログイン…
DB接続について
しばらくぶりに見たらPDOで接続するのが当たり前になってた。以前のものは非推奨どころか非対応っぽい。とはいえ可不可はサーバー環境によるのでチェックすること。まあ現行のものを使う癖をつけてたほうが今後を考えたら便利ね。
<?php
$dsn = "mysql:host=【ホスト】; dbname=【DB名】; charset=【文字コード】";
$username = "【ユーザー名】";
$password = "【パスワード】";
try {
$dbh = new PDO($dsn, $username, $password,[ PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC ]);
} catch (PDOException $e) {
$msg = $e->getMessage();
}
文字コードを含めてDB情報はサーバー側にあるはずなのでチェックする。
管理について
当然ながらPDOはサーバーのアカウント情報がベタ打ちになる。作成したページごとに書くのはそもそもめんどいし、サーバーが変わった時の編集もだるい。そういう感じのアレで、使いまわしになるものは別途ファイルに分けてrequire_onceとかで読み込むのが良い。
今回で言えば以下の2つ。
- PDO接続
- ログインチェック
ファイルを読み込んだら発火するようにすればいいか、変数なり関数にしておいて読み込みと発火を切り分けるかは悩ましいところ。個人的には使わないときは読み込ませないし、いろんなあれこれを1つのファイルにまとめるのは好きじゃないし、後者に寄せ切るのはしんどい感じ。
次の課題
パスワード再発行
ログイン情報を忘れた際のパスワード再発行機能。
「php ログイン機能 再発行」「php パスワードリセット」とかで調べる。
![](https://blog.megefeps.info/wp-content/uploads/cocoon-resources/blog-card-cache/503b04836bc31244304a25ce1c19ad34.png)
【ハンズオン】PHPでシンプルなパスワードリセットを実装する
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgzJTkxJUUzJTgyJUI5JUUzJTgzJUFGJUUzJTgzJUJDJUUzJTgzJTg5JUUzJTgyJTkyJUU1JUJGJTk4JUUzJTgyJThDJUUzJTgxJTlGJUU2JTk2JUI5JUUzJTgxJUI4JUUzJTgyJTkyUEhQJUUzJTgxJUE3JUU1JUFFJTlGJUU4JUEzJTg1JUUzJTgxJTk3JUUzJTgxJUE2JUUzJTgxJUJGJUUzJTgxJTlGJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1lZmU4OWVkZDU4NGFkYWQ1NDRlN2FmMDNmYjIxN2VjOQ&mark-x=142&mark-y=112&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwby1taXRzdWtpJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0xZjkwZDJhMDE2NzVmOGIwYWI4YWI1MTRjMzRiOTVhNA&blend-x=142&blend-y=491&blend-mode=normal&s=c15d08c1fd6f8e2d4c8f7a518af48b2d)
パスワードを忘れた方へをPHPで実装してみた - Qiita
初めまして、新卒一年目で未経験からwebサービスを作っている小川と申します。今回は私が実際に書いたパスワードを忘れた方へについてアウトプットしたいと思います。#簡略化した手順1.パスワードを忘…
ログイン中の処理として組み込めばパスワード変更ギミックになる。
コメント