フレームワークを使用すれば簡単に実装できるが...
現在、有名なフレームワークというとLaravelやFuelPHPなどがあります。もしフレームワークを使ってログイン機能を実装する場合、大抵は「(フレームワーク名) ログイン機能」などで検索すればヒットすることでしょう。
フレームワークのみでは応用が効かない場合がある
実は、フレームワークはあまりにも簡単に機能が実装できるため、いざバグが起きたとしても原因がわからず詰まってしまったり、細かな応用が効かない場合が多いです。内部でどのような処理が行われているのかを把握しないまま簡単に実装ができてしまう、というのが逆にデメリットになります。
phpのログイン機能実装の流れ
ユーザーに情報を入力してもらう
ユーザーに情報を入力してもらう為に、htmlで入力フォームを作成し、送信できるようにページを作成する必要があります。
入力された情報に対してバリデーションを行う
ここで言うバリデーションというのは、「入力チェック」「書式チェック」のことを指します。例えば、Eメールアドレスであれば、
・アルファベット・数字・記号のみで入力されているか?
・文頭や文末に@がなく、かつ文中に@が含まれているか?
・データベースに保存できる文字数を超過していないか?
・その他、悪意のある文字列ではないか?
これをデータベースに接続する前に確認する必要があります。
データベースからユーザーの情報を取り出し、間違いがないかチェックする
バリデーションチェックを行い、問題がなかった場合は、データベースに接続し、入力された情報をもとにデータベースからユーザーの情報を取得します。その後、入力されたデータとデータベースのデータをチェックし、問題ない場合は次のステップに進みます。
ログイン状態を付与し、ログイン画面から別のページにリダイレクトする
ログイン状態をユーザーに付与し、マイページなどに遷移させます。ログイン状態を付与するにはセッションを使うのが一般的です。
ログイン処理はこの4ステップで行います。
参考文献: