質問: パスワードを要求するWebページを作っているのですが、PHPを使って、簡易なパスワード認証のサーバーサイドプログラムを作ろうと思っています。 しかし、PHPのパスワード認証プログラムの記述方法がわかりません。 まず、ログインページのHTMLです。 ``` ログイン画面 //サーバーに置いてあるパスワード認証プログラムに、 //フォームデータを送信し、 //連想配列$_POST[]に、パスワード入力フォームのnameのkeyとvalueを格納。 PassWord://パスワード入力フォーム log in//ボタンを押すと、送信される ``` これに対して、送信先のプログラムlogin.phpを書こうと思ったのですが、よくわかりません。 基本的には、if文で、 「パスワードが"hogehoge"と一致すれば、目的のWebページのhtmlファイルをブラウザに開かせる。一致しなければ、ブラウザに『パスワードが違います』と表示させる」 と条件分岐させると思うのですが、 「目的のWebページのhtmlファイルをブラウザに開かせる」と、 「ブラウザに『パスワードが違います』と表示させる」 のPHPでの書き方が分かりません。 ``` ``` 自分の予想では、おそらく、 「ブラウザのURLを指定して、HTTPレスポンスを返す」という作業をすることになるため、単純ではないと思います。 どうすればいいでしょうか? ご教示宜しくお願いします。 ### 備考 今回このパスワード認証Webページを作成するに至った経緯は、 Web通信やデータ保存機能を備えたアプリケーションを作るにあたっての予備演習です。 気軽に作れる簡単なアプリだと思ったのですが、 色々な人に、ハードルが高すぎだと言われ、 「まずは、ただWebページにログインするだけの凄く単純なシステムを作ってみて、Web通信の基本を理解するところから始めてみては?」 といわれたので、それなら、 「データベースもユーザー登録も何も使わない、ただ、管理人が決めたパスワードを要求するだけの、パスワード制Webページを作ってみよう」 と思い、作成に至りました。 非常に単純で素朴なアイデアなので、ネットで調べればすぐに出ると思ったのですが、 全然ヒットしませんでした。 初心者向けのログインプログラム作成に関する話題はそこそこあるのですが、 本当に初心者向け説明はほとんどないし、 あったとしてもDBやらcookie、セッション、SQL...などの予備知識を前提としていたりして、 今の目的をはるかに超える複雑さのため、とりつく島もありません。 こんなに簡単なパスワード付きWebサイトのバックエンドプログラム作成について解説したサイトや入門書が存在しない、 というのが不思議でなりません。 何かおすすめのものはないでしょうか?
回答: PHPによる簡単なログイン認証いろいろ - Qiita CSRF対策も書いてあるので参考になるのではないでしょうか。 なお、備考部分ですが。 「Web通信やデータ保存機能」だけなら、ログイン実装の勉強する必要はないと思います。 そのアドバイスは、JavaScript - JavaScriptでログインが必要なページに自動でログインしたい|teratail だと思いますが、その質問内容は「Web通信やデータ保存機能」だけでは実現できないと思います。 そのようなことをするには、正に『DBやらcookie、セッション、SQL...などの予備知識』が必要になります。とりつく島がないなら、まずひとつづつ予備知識を仕入れるしかないでしょうね。 ひとまずは、DB系の知識はなくても大丈夫だと思いますが、cookie、セッション、について知識がないのは色々と厳しいでしょう。 まずは cookie の扱いについてミニマムなコードを書いてみてはいかがですか?