⊗ppPmAuSs 415 of 447 menu

PHPでのセッションによる認証

私たちの認証は次のように機能するはずです:サイトで認証したいユーザーは、 ページ login.php にアクセスし、正しいログイン名とパスワードを入力し、 その後は認証された状態でサイトのページ間を移動します

サイトの他のページがユーザーが認証されていることを認識するためには、 セッション内にそのマークを保存する必要があります。

セッションをまだ接続しておらず、サイトの他のページがユーザーが認証されているかどうかを判断できないため、 現在の認証は完全には機能していません。

認証のマークをセッション変数 $_SESSION['auth'] に保存します。 そこに true が記録されていればユーザーは認証されており、 null であれば認証されていません。

私たちのコードに適切な修正を加えましょう:

<?php session_start(); if (!empty($_POST['password']) and !empty($_POST['login'])) { $login = $_POST['login']; $password = $_POST['password']; $query = "SELECT * FROM users WHERE login='$login' AND password='$password'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { $_SESSION['auth'] = true; } else { // ログイン名またはパスワードが間違っています } } ?>

これで、サイトの任意のページで、ユーザーが認証されているかどうかを 次の方法で確認できるようになりました:

<?php if (!empty($_SESSION['auth'])) { } ?>

認証されていないユーザーに対して、あるページのテキスト全体を 完全に閉じることができます:

<?php if (!empty($_SESSION['auth'])): ?> <!DOCTYPE html> <html> <head> </head> <body> <p>認証されたユーザーのみのテキスト</p> </body> </html> <?php else: ?> <p>認証してください</p> <?php endif; ?>

ページの一部のみを閉じることもできます:

<!DOCTYPE html> <html> <head> </head> <body> <p>すべてのユーザー向けのテキスト</p> <?php if (!empty($_SESSION['auth'])) { echo '認証されたユーザーのみのテキスト'; } ?> <p>すべてのユーザー向けのテキスト</p> </body> </html>

私たちのサイトには、ページ login.php の他に、 1.php2.php3.php ページがあるとします。 認証されたユーザーのみがこれらのページにアクセスできるようにしてください。

私たちのサイトに index.php ページもあるとします。 このページの一部はすべてのユーザーに公開され、 一部は認証されたユーザーのみが利用できるようにしてください。

認証に成功した際に、ユーザーのログイン名もセッションに保存されるように コードを修正してください。

サイトのどのページにアクセスしても、認証されたユーザーは自分のログイン名を表示し、 認証されていないユーザーは認証ページへのリンクを表示するようにしてください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否