PHP & MYSQL ログインページ

WEBページにユーザー名とパスワードを入力して認証するPHP/MYSQLアプリケーションのログインページを作る。パソコンにPHPとMySQLがインストールされたWebサーバーが必要です。Apache、PHP、MySQL(MariaDB) xamppのインストールが必要です。

PHPと接続するデータベースの準備をします。 loginというMySQLデータベースとadminというテーブルを作ります。

データーベース作成

db_image

テーブル作成

table_image

テーブル構造

id - int オートインクリメント(自動採番) username - varchar(255) password - varchar(255)

login-table_image

テーブル結果

logintables_image

login.php

phpファイルへhtml形式のフォームとログインできない場合にメッセージを表示を記述しています。

style.css

login.htmlのスタイルシート


* {
    box-sizing: border-box;
  }
  body{
    background: moccasin;
    margin: 100px 50px;
  }
  .container {
    padding:10px 46px;
    background-color: white;
    width: 700px;
    margin: 0 auto;
  }
  
  .container.signup {
    text-align: end;
  }
  
  input[type=text], input[type=password] {
    width: 100%;
    padding: 15px;
    margin: 5px 0 22px 0;
    display: inline-block;
    border: none;
    background: #f1f1f1;
    border: 1px solid black;
    border-radius: 7px;
  }
  
  input[type=text]:focus, input[type=password]:focus {
    background-color: #ddd;
    outline: none;
  }
  
  hr {
    border: 1px solid #f1f1f1;
    margin-bottom: 25px;
  }
  
 
  .registerbtn {
    background-color: #444;
    color: whitesmoke;
    padding: 16px 20px;
    margin: 8px;
    border: none;
    cursor: pointer;
    width: 200px;
    opacity: 0.8;
    border-radius: 5px;
    display: right;
    border: 2px solid darkgrey;
  }
  
  .registerbtn:hover {
    opacity: 1;
  }
  span {
    text-align: right;
    display: block;
  }
 
  a {
    color: dodgerblue;
  }
  
  .signin {
    background-color: #f1f1f1;
    text-align: center;
  }
  
  .error{
    background: #F2DEDE;
    color: #A94442;
    padding: 10px;
    width: 95%;
    border-radius: 5px;
  }

  .home{
    padding:10px 46px;
    background-color: white;
    width: 700px;
    margin: 0 auto;
    height: 500px;
    text-align: center;
  align-items: center;
  }

db_con.php

PHPとMySQLの接続

login-logiin.phpの最初にデータベースへ接続を確立します。login-logic.phpの上の行へinclude "db_con.php";を入力してファイルを読み込みます。 「db_con.php」として保存します。

login-logic.php

ユーザーにユーザー名とパスワードを入力するためのHTMLフォームが送信されると、バリデーション入力チェックを実行して正常ならばPHPはSELECTクエリを実行し、adminテーブルからユーザー名とパスコードがユーザー入力と一致する行を取得します。

行数が1の場合、入力されたユーザー名とパスワードが一致していることを示します。ユーザー名は$_SESSION変数に保存され、ブラウザはwelcome.phpスクリプトにリダイレクトされます。

入力フォームへ入力されていない時やユーザーが存在しない、パスワードが一致していないいない場合にlogin.phpへリダイレクトします

home.php

「home.php」は、ユーザーが認証されると呼び出されます。セッション変数を読み取ってウェルカムメッセージを表示します。またログインせずに表示できなくlogin.phpへリダイレクトします。

logout.php

セッションを削除

ユーザーをログインページにリダイレクトします。