본문 바로가기
PHP로 웹사이트 만들기

8. PHP와 MySQL로 게시판 만들기: 게시판에 사용자 등록 기능 추가하기

by blogfine 2025. 1. 29.

게시판에 사용자 등록 기능 추가하기: MySQL로 사용자 정보 관리하기

게시판 시스템에서 사용자는 중요한 요소입니다. 게시글을 작성하거나 댓글을 달 때 사용자 정보가 필요합니다. 이 글에서는 게시판에 사용자 등록 기능을 추가하는 방법을 다루고, MySQL을 사용하여 사용자 정보를 관리하는 방법을 설명하겠습니다. 이를 통해 게시판을 더 확장된 기능으로 발전시킬 수 있습니다.

1. 사용자 등록 기능 구현을 위한 준비

게시판에 사용자 등록 기능을 추가하려면, 먼저 사용자 정보를 저장할 수 있는 데이터베이스 테이블을 만들어야 합니다. 이를 위해 MySQL에서 `users` 테이블을 생성하고, 사용자 정보를 저장할 수 있는 필드를 설정합니다.

아래는 사용자 정보를 저장할 테이블을 생성하는 SQL 쿼리입니다:


-- users 테이블 생성
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    email VARCHAR(100) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

위 SQL 쿼리에서는 `users`라는 테이블을 생성하고, `username`, `password`, `email`, `created_at` 필드를 설정합니다. 사용자 등록 시 이 정보를 데이터베이스에 저장할 수 있습니다.

2. 사용자 등록 폼 만들기

이제 사용자가 웹사이트에서 회원가입을 할 수 있도록 HTML 폼을 만들어야 합니다. 사용자로부터 입력받을 정보는 아이디, 비밀번호, 이메일 등입니다. 이를 위해 HTML 폼을 작성하고, 사용자가 입력한 데이터를 PHP로 전송하여 처리합니다.

<!-- 사용자 등록 폼 -->
<form action="register.php" method="POST">
    <label for="username">아이디:</label>
    <input type="text" id="username" name="username" required><br><br>

    <label for="password">비밀번호:</label>
    <input type="password" id="password" name="password" required><br><br>

    <label for="email">이메일:</label>
    <input type="email" id="email" name="email" required><br><br>

    <button type="submit">회원가입</button>
</form>

위 HTML 코드는 사용자로부터 아이디, 비밀번호, 이메일을 입력받는 폼을 생성합니다. 사용자가 폼을 제출하면 `register.php` 파일로 데이터가 전송되어, 해당 데이터를 처리하고 사용자 정보를 데이터베이스에 저장하는 작업을 진행합니다.

3. 사용자 등록 기능 구현하기

이제 PHP에서 `register.php` 파일을 만들어 사용자 등록을 처리합니다. 사용자가 입력한 아이디, 비밀번호, 이메일 정보를 받아 MySQL 데이터베이스에 저장하는 기능을 구현합니다. 비밀번호는 보안을 위해 해시(hash)로 저장하는 것이 좋습니다.

PHP에서는 `password_hash()` 함수를 사용하여 비밀번호를 안전하게 해시할 수 있습니다. 아래는 사용자 등록을 처리하는 코드입니다:

<?php
// register.php
include('config.php');

// 폼 데이터 받기
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];

// 비밀번호 해시화
$hashed_password = password_hash($password, PASSWORD_DEFAULT);

// SQL 쿼리 작성
$sql = "INSERT INTO users (username, password, email) VALUES ('$username', '$hashed_password', '$email')";

// 쿼리 실행
if ($conn->query($sql) === TRUE) {
    echo "사용자 등록이 완료되었습니다.";
} else {
    echo "오류: " . $sql . "<br>" . $conn->error;
}

// 연결 종료
$conn->close();
?>

위 코드는 사용자가 입력한 아이디, 비밀번호, 이메일 정보를 받아 `users` 테이블에 삽입하는 기능을 구현합니다. 비밀번호는 `password_hash()` 함수를 이용해 안전하게 암호화하여 저장합니다. 사용자가 정상적으로 등록되면 "사용자 등록이 완료되었습니다."라는 메시지가 출력됩니다.

4. 사용자 정보 조회하기

게시판에서 사용자의 정보를 조회해야 할 때도 있습니다. 예를 들어, 게시글 작성자 정보를 확인하거나, 사용자 프로필을 보여줄 때 필요한 기능입니다. MySQL에서 사용자 정보를 조회하는 SQL 쿼리와 PHP 코드를 살펴보겠습니다.

먼저, 사용자의 정보를 조회하는 SQL 쿼리를 작성합니다:


-- 사용자 정보 조회
SELECT * FROM users WHERE id = 1;

위 쿼리는 `id`가 1인 사용자의 정보를 조회합니다. PHP 코드로 이를 처리하려면 아래와 같은 방법으로 작성할 수 있습니다:

<?php
// user_info.php
include('config.php');

// 사용자 ID 받아오기
$user_id = 1; // 예시로 ID 1번 사용자의 정보 조회

// SQL 쿼리 작성
$sql = "SELECT * FROM users WHERE id = $user_id";
$result = $conn->query($sql);

// 사용자 정보 출력
if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    echo "아이디: " . $row['username'] . "<br>";
    echo "이메일: " . $row['email'] . "<br>";
    echo "가입일: " . $row['created_at'] . "<br>";
} else {
    echo "사용자를 찾을 수 없습니다.";
}

// 연결 종료
$conn->close();
?>

위 코드는 `id`가 1인 사용자의 정보를 조회하여 출력하는 예제입니다. 사용자 정보가 데이터베이스에 존재하면, 해당 정보를 화면에 출력합니다. 사용자가 없으면 "사용자를 찾을 수 없습니다."라는 메시지를 출력합니다.

5. 마무리

이번 글에서는 게시판에 사용자 등록 기능을 추가하고, MySQL을 사용하여 사용자 정보를 관리하는 방법을 알아보았습니다. 사용자 정보는 게시판 시스템에서 중요한 역할을 하므로, 이를 안전하고 효율적으로 관리하는 방법을 이해하는 것이 중요합니다. 사용자 등록과 조회 기능을 구현하고 나면, 로그인 기능, 회원 정보 수정 등의 추가 기능도 쉽게 구현할 수 있습니다.

게시판 시스템을 더욱 확장하고, 사용자의 편의성을 높이기 위해 다양한 기능을 추가해보세요. 이제 PHP와 MySQL을 활용한 게시판 개발의 첫걸음이 완료되었습니다!