어떤 웹페이지라도 빼먹을 수 없는 시스템 중 하나가 로그인 시스템입니다.
회원 개인의 정보를 저장하고 확인하기 위해서는 로그인 시스템이 필수적입니다.
이번 포스팅에서는 간단한 로그인 시스템을 PHP로 구현하는 코드를 작성해 보겠습니다.
MySQL 데이터베이스
먼저, MySQL 데이터베이스에 users 테이블을 생성합니다. users 테이블은 다음과 같은 필드를 갖습니다.
id INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
그리고 users 테이블에 적절한 사용자 정보를 추가합니다.
예를 들어, username이 "철수"이고 password가 "1234"인 사용자를 추가할 수 있습니다.
로그인폼, 로그인 처리 PHP / HTML
다음으로, 로그인 폼과 로그인 처리를 담당하는 PHP 파일을 작성해 보겠습니다.
<!-- login.html -->
<!DOCTYPE html>
<html>
<head>
<title>로그인</title>
</head>
<body>
<h2>로그인</h2>
<form action="login.php" method="post">
<label for="username">아이디:</label>
<input type="text" id="username" name="username"><br><br><br>
<label for="password">비밀번호:</label>
<input type="password" id="password" name="password"><br><br><br>
<input type="submit" value="Login">
</form>
</body>
</html>
위 코드는 로그인 폼을 생성하는 HTML 코드입니다.
form 태그에서 action 속성에 "login.php"를 지정하고, method 속성을 "post"로 지정합니다.
label 태그와 input 태그를 사용하여 사용자 이름과 비밀번호를 입력받습니다.
이제 로그인 처리를 담당하는 "login.php" 파일을 작성해 보겠습니다.
<?php
$host = "localhost";
$user = "root";
$pass = "";
$db = "mydatabase";
$conn = new mysqli($host, $user, $pass, $db);
if ($conn->connect_error) {
die("연결실패: " . $conn->connect_error);
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST["username"];
$password = $_POST["password"];
$sql = "SELECT id FROM users WHERE username = '$username' and password = '$password'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
session_start();
$_SESSION["username"] = $username;
header("location: welcome.php");
} else {
$error = "아이디 또는 비밀번호가 잘못되었습니다.";
}
}
?>
위 코드는 MySQL 데이터베이스에 연결하고, POST 방식으로 전달된 사용자 이름과 비밀번호를 검증하는 코드입니다.
$_POST 변수를 사용하여 사용자 이름과 비밀번호를 가져옵니다.
그리고 SELECT 문을 사용하여 users 테이블에서 입력받은 사용자 이름과 비밀번호를 검사하여 일치하면,
세션을 시작하고 세션에 username를 저장합니다.
이후, welcome.php로 이동하고, 일치하지 않으면 에러 메시지를 보여줍니다.
결론
PHP와 MySQL을 활용하여 간단한 로그인 시스템 구현 예제에 대해 알아보았습니다.
웹 개발에서 로그인 기능은 기본 중의 기본입니다.
오늘 예제를 통해서 기본적인 MySQL의 사용방법과 php의 사용 방법을 알 수 있습니다.
웹 개발에서 데이터베이스는 중요한 역할을 합니다.
이 예제에서는 MySQL을 데이터베이스로 사용했습니다.
로그인 폼을 작성하고, 입력된 정보를 데이터베이스와 비교해 사용자 정보를 확인하는 방법을 보여주었습니다.
또한 이 예제에서는 웹 보안에 대한 이슈도 다루고 있습니다.
로그인 기능은 해커의 공격에 취약한 기능 중 하나입니다.
이를 방지하기 위해 PHP에서 제공하는 세션 기능을 활용하였고, 이 세션을 이용하면 사용자 정보를 안전하게 저장하고 유지할 수 있습니다.
이러한 기본적인 기능을 응용하여 다양한 웹 서비스를 개발할 수 있습니다.
'코딩' 카테고리의 다른 글
[jQuery] 정규식을 활용한 이메일과 비밀번호 유효성 검사 (57) | 2023.03.03 |
---|---|
[PHP/jQuery] 간단한 실시간 채팅 애플리케이션 예제 (51) | 2023.02.25 |
[jQuery] 파일 첨부 시 미리보기, 파일 확장자명 판별하기 (39) | 2023.02.14 |
[jQuery] confirm 확인과 취소, div 값 변경 (23) | 2023.02.13 |
[HTML/PHP] 간단한 게시판 만들기 #5 (상세페이지/수정/삭제) (29) | 2023.02.09 |
댓글