login.php
- 로그인 한 상태인지 로그인 하지 않은 상태인지 파악하기 위해 login-ok.php로 넘어가기 전에 세션을 시작합니다. 그리고 username을 $_SESSION[ 'username' ]에 담습니다.
<?php
$username = $_POST[ 'username' ];
$password = $_POST[ 'password' ];
if ( !is_null( $username ) ) {
$jb_conn = mysqli_connect( 'localhost', 'codingfactory', '1234qwer', 'codingfactory.net_example' );
$jb_sql = "SELECT password FROM member WHERE username = '" . $username . "';";
$jb_result = mysqli_query( $jb_conn, $jb_sql );
while ( $jb_row = mysqli_fetch_array( $jb_result ) ) {
$encrypted_password = $jb_row[ 'password' ];
}
if ( is_null( $encrypted_password ) ) {
$wu = 1;
} else {
if ( password_verify( $password, $encrypted_password ) ) {
session_start();
$_SESSION[ 'username' ] = $username;
header( 'Location: login-ok.php' );
} else {
$wp = 1;
}
}
}
?>
<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>로그인</title>
<style>
body { font-family: sans-serif; font-size: 14px; }
input, button { font-family: inherit; font-size: inherit; }
</style>
</head>
<body>
<h1>로그인</h1>
<form action="login.php" method="POST">
<p><input type="text" name="username" placeholder="사용자이름" required></p>
<p><input type="password" name="password" placeholder="비밀번호" required></p>
<p><input type="submit" value="로그인"></p>
<?php
if ( $wu == 1 ) {
echo "<p>사용자이름이 존재하지 않습니다.</p>";
}
if ( $wp == 1 ) {
echo "<p>비밀번호가 틀렸습니다.</p>";
}
?>
</form>
</body>
</html>
login-ok.php
- $_SESSION[ 'username' ]의 값을 $session_username에 저장합니다.
- $session_username에 값이 없으면 login.php로 이동합니다.
- 값이 있으면 사용자이름과 함께 '로그인 하셨습니다.'를 출력합니다.
- [로그아웃]을 클릭하면 logout.php로 이동합니다.
<?php
session_start();
$session_username = $_SESSION[ 'username' ];
if ( is_null( $session_username ) ) {
header( 'Location: login.php' );
}
?>
<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>로그인</title>
<style>
body { font-family: sans-serif; font-size: 14px; }
input, button { font-family: inherit; font-size: inherit; }
</style>
</head>
<body>
<h1><?php echo $session_username; ?>님, 로그인 하셨습니다.</h1>
<a href="logout.php">로그아웃</a>
</body>
</html>
logout.php
- 세션을 종료하고 login.php로 이동합니다.
<?php
session_start();
session_destroy();
header( 'Location: login.php' );
?>