PHP ログイン・ログアウト機能
フルスクラッチPHPでのログイン機能のやり方
DBとの連携でのシンプルなログイン、ログアウト
事前にMySQLにユーザー名とログイン用のメールアドレスとパスワードは登録済み
セキュリティー対策は無し
login_form.php
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<LINK rel="stylesheet" href="index.css">
<title>ログイン入力</title>
</head>
<body>
<h1>
<font size='5'>ログインページ</font>
</h1>
<?php if (isset($_SESSION['id'])) : ?>
<p>
<font size='5'>ようこそ</font>
</p>
<p><?php echo $_SESSION['name']; ?>さん</p>
<p><a href='logout.php'>ログアウト</a></p>
<?php else : ?>
<form action='login.php' method='post'>
<p>メールアドレス</p>
<input type='text' name='mail'>
<p>パスワード</p>
<input type='text' name='pass'>
</br>
<input class="btn" type='submit' value='ログイン'>
</form>
<?php endif; ?>
</body>
</html>
index.css
input {
width: 200px;
padding: 5px;
font-size: 18px;
border: 2px solid #a9a9a9;
}
.btn{
background-color: #a9a9a9;
margin-top: 30px;
width: 210px;
padding: 5px;
border-radius: 3px;
transition: .3s ease-out;
}
シンプルなログインフォームの完成
login.php
<?php
session_start();
$mysql = 'mysql:host=localhost;dbname=データベース名;charset=utf8';
$user = 'ユーザー名';
$passwoad = 'パスワード';
$mail = $_POST['mail'];
$pass = $_POST['pass'];
if (empty($mail) || empty($pass)) {
$output = '入力してください';
} else {
try {
$db = new PDO($mysql, $user, $passwoad);
$select = "SELECT * FROM members WHERE mail = '$mail' AND pass = '$pass'";
$res = $db->query($select);
$res->execute();
} catch (PDOException $e) {
echo '接続エラー: ' . $e->getMessage();
}
if ($res->rowCount() < 1) {
$output = 'ログインできませんでした';
} else {
$row = $res->fetch();
$_SESSION['id'] = $row['id'];
$_SESSION['name'] = $row['name'];
$_SESSION['mail'] = $row['mail'];
$output = 'ログインできました';
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>ログイン</title>
</head>
<body>
<h1>
<font size='5'>ログイン情報確認</font>
</h1>
<p><?php echo $output; ?></p>
<?php if (!isset($_SESSION['name'])) : ?>
<p><a href='login_form.php'>ログインページへ戻る</a></p>
<?php endif; ?>
</body>
</html>
入力に不備があると
データベースに登録しているメールアドレス、パスワードが一致した場合
ログインページに再び戻ると
logout.php
<?php
session_start();
$_SESSION = array();
session_destroy();
?>
<!DOCTYPE html>
<html>
<head>
<title>ログアウト</title>
</head>
<body>
<h1>
<font size='5'>ログアウトしました</font>
</h1>
<p><a href='login_form.php'>ログインページに戻る</a></p>
</body>
</html>
ログアウトを押すと
Author And Source
この問題について(PHP ログイン・ログアウト機能), 我々は、より多くの情報をここで見つけました https://qiita.com/syatiking2Z/items/67a69b1c5ecaba6a9aff著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .