์จ๋ผ์ธ ๊ฐ์
>PHP - ์ค๊ธ
๐ PHP ์ค๊ธ - 3์ฃผ์ฐจ: ๊ฒ์ํ CRUD ๊ตฌํ (๊ธฐ๋ณธ) - 02 ๊ธ ๋ชฉ๋ก, ๊ธ ์์ฑ, ๊ธ ๋ณด๊ธฐ, ๊ธ ์์ , ๊ธ ์ญ์ 
				์ฃผ์ ํ๋ก๊ทธ๋จ ์คํ
- ํ์ : 10.0
 - ๋ผ์ด์ ์ค: free
 - ์ด์์ฒด์ :
 - ํ์ผ ํฌ๊ธฐ: 0
 
ํผ๋๋ฐฑ ๋ฐ ๋ค์ด๋ก๋
- ์ฌ์ฉ์ ํ์ : 10.0
 - ๋ค์ด๋ก๋ ์: 1
 - ์กฐํ์: 97
 
์ ์กฐ์ฌ ๋ฐ ๋ฑ๋ก ์ ๋ณด
- ์ ์์ฌ: LUZENSOFT
 - ๋ฑ๋ก์ผ: 2025-07-22 10:28:44
 
- ์ค๋ช
๐ PHP ์ค๊ธ - 3์ฃผ์ฐจ: ๊ฒ์ํ CRUD ๊ตฌํ (๊ธฐ๋ณธ) - 02 ๊ธ ๋ชฉ๋ก, ๊ธ ์์ฑ, ๊ธ ๋ณด๊ธฐ, ๊ธ ์์ , ๊ธ ์ญ์ 
์๋ ํ์ธ์! ์ง๋์ฃผ์ ์ด์ด ์ด๋ฒ ์ฃผ์๋ #PHP #๊ฒ์ํ ๊ตฌํ์ ํต์ฌ์ธ #CRUD ๊ธฐ๋ฅ์ ํจ๊ป ๋ง๋ค์ด ๋ณผ ๊ฑฐ์์. #CRUD๋ Create(์์ฑ), Read(์ฝ๊ธฐ), Update(์์ ), Delete(์ญ์ )์ ์ฝ์๋ก, ๋๋ถ๋ถ์ #๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ฐ ์๋น์ค์์ ๊ธฐ๋ณธ์ด ๋๋ ๊ธฐ๋ฅ์ด์ฃ .
1. ๊ฐ์ ๋ฐ ๋ชฉํ
์ด๋ฒ ์ฃผ์ฐจ์์๋ ๊ฐ๋จํ #๊ฒ์ํ์ ๋ง๋ค์ด์ #๋ฐ์ดํฐ๋ฒ ์ด์ค์ #๊ธ์ ์ ์ฅํ๊ณ , ์ฝ๊ณ , ์์ ํ๊ณ , ์ญ์ ํ๋ ๊ณผ์ ์ #PHP ์ฝ๋๋ก ์ง์  ๊ตฌํํด ๋ณผ ๊ฑฐ์์. #ํ๋ก ํธ์๋ ๋์์ธ๋ณด๋ค๋ #๋ฐฑ์๋ #๋ก์ง ๊ตฌํ์ ์ด์ ์ ๋ง์ถฅ๋๋ค.
์ฃผ์ ๋ชฉํ:
#๊ธ ๋ชฉ๋ก(#Read ๊ธฐ๋ฅ์ ์ผ๋ถ) ํ์
#๊ธ ์์ฑ(#Create ๊ธฐ๋ฅ) ํผ ๋ฐ ์ฒ๋ฆฌ
#๊ธ ๋ณด๊ธฐ(#Read ๊ธฐ๋ฅ) ์์ธ ํ์ด์ง
#๊ธ ์์ (#Update ๊ธฐ๋ฅ) ํผ ๋ฐ ์ฒ๋ฆฌ
#๊ธ ์ญ์ (#Delete ๊ธฐ๋ฅ) ์ฒ๋ฆฌ
2. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๋น
๊ฐ์ฅ ๋จผ์  #๊ฒ์ํ #๊ธ์ ์ ์ฅํ  #๋ฐ์ดํฐ๋ฒ ์ด์ค #ํ
์ด๋ธ์ด ํ์ํด์. #MySQL์ ๊ธฐ์ค์ผ๋ก ์ค๋ช
ํ ๊ฒ์. board๋ผ๋ ์ด๋ฆ์ #ํ
์ด๋ธ์ ๋ง๋ค๊ณ  ๋ค์์ฒ๋ผ ํ๋๋ฅผ ๊ตฌ์ฑํด ๋ณด์ธ์.
SQL
CREATE TABLE board (
    id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    content TEXT NOT NULL,
    author VARCHAR(100) NOT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
id: ๊ฐ #๊ธ์ ๊ณ ์ ๋ฒํธ (๊ธฐ๋ณธ ํค, ์๋ ์ฆ๊ฐ)title: #๊ธ์ ์ ๋ชฉcontent: #๊ธ์ ๋ด์ฉauthor: #์์ฑ์created_at: #๊ธ์ด ์์ฑ๋ ์๊ฐupdated_at: #๊ธ์ด ๋ง์ง๋ง์ผ๋ก ์์ ๋ ์๊ฐ
3. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ค์ 
#PHP ์คํฌ๋ฆฝํธ์์ #๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ํ๊ธฐ ์ํ ์ค์  ํ์ผ(db_config.php ๋ฑ์ผ๋ก ์ ์ฅ)์ ๋ง๋ค์ด ์ฃผ์ธ์.
PHP
<?php
// db_config.php
$servername = "localhost"; // ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ์คํธ
$username = "your_db_username"; // ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์ ์ด๋ฆ
$password = "your_db_password"; // ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋น๋ฐ๋ฒํธ
$dbname = "your_database_name"; // ์ฌ์ฉํ  ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ
try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8", $username, $password);
    // PDO ์ค๋ฅ ๋ชจ๋๋ฅผ ์์ธ ์ฒ๋ฆฌ๋ก ์ค์ 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    // ์ ํ์ : PDO ๊ธฐ๋ณธ ํ์น ๋ชจ๋ ์ค์  (์ฐ๊ด ๋ฐฐ์ด)
    $conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    // echo "๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ฑ๊ณต!"; // ํ
์คํธ์ฉ
} catch(PDOException $e) {
    die("๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์คํจ: " . $e->getMessage());
}
?>
4. ๊ธ ๋ชฉ๋ก ๋ณด๊ธฐ (list.php)
์ด์  #๊ฒ์ํ์ #๊ธ ๋ชฉ๋ก์ ๋ณด์ฌ์ฃผ๋ ํ์ด์ง๋ฅผ ๋ง๋ค ๊ฑฐ์์.
PHP
<?php
// list.php
include 'db_config.php'; // ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ค์  ํฌํจ
// ํ์ด์ง๋ค์ด์
์ ์ํ ์ค์ 
$posts_per_page = 10; // ํ์ด์ง๋น ๋ณด์ฌ์ค ๊ธ ์
$current_page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$offset = ($current_page - 1) * $posts_per_page;
try {
    // ์ด ๊ธ ์ ๊ฐ์ ธ์ค๊ธฐ
    $total_posts_stmt = $conn->query("SELECT COUNT(*) FROM board");
    $total_posts = $total_posts_stmt->fetchColumn();
    $total_pages = ceil($total_posts / $posts_per_page);
    // ๊ฒ์๊ธ ๋ชฉ๋ก ๊ฐ์ ธ์ค๊ธฐ (์ต์  ๊ธ๋ถํฐ, ํ์ด์ง๋ค์ด์
 ์ ์ฉ)
    $stmt = $conn->prepare("SELECT id, title, author, created_at FROM board ORDER BY created_at DESC LIMIT :offset, :limit");
    $stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
    $stmt->bindParam(':limit', $posts_per_page, PDO::PARAM_INT);
    $stmt->execute();
    $posts = $stmt->fetchAll();
} catch(PDOException $e) {
    echo "์ค๋ฅ: " . $e->getMessage();
    $posts = []; // ์ค๋ฅ ์ ๋น ๋ฐฐ์ด๋ก ์ด๊ธฐํ
}
?>
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>๊ฒ์ํ ๊ธ ๋ชฉ๋ก</title>
    <style>
        body { font-family: Arial, sans-serif; margin: 20px; }
        table { width: 80%; border-collapse: collapse; margin: 20px 0; }
        th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
        th { background-color: #f2f2f2; }
        .pagination a { margin: 0 5px; text-decoration: none; }
    </style>
</head>
<body>
    <h1>๊ฒ์ํ ๊ธ ๋ชฉ๋ก</h1>
    <p><a href="write.php">์ ๊ธ ์์ฑ</a></p>
    <table>
        <thead>
            <tr>
                <th>ID</th>
                <th>์ ๋ชฉ</th>
                <th>์์ฑ์</th>
                <th>์์ฑ์ผ</th>
            </tr>
        </thead>
        <tbody>
            <?php if (count($posts) > 0): ?>
                <?php foreach ($posts as $post): ?>
                    <tr>
                        <td><?php echo htmlspecialchars($post['id']); ?></td>
                        <td><a href="view.php?id=<?php echo htmlspecialchars($post['id']); ?>"><?php echo htmlspecialchars($post['title']); ?></a></td>
                        <td><?php echo htmlspecialchars($post['author']); ?></td>
                        <td><?php echo htmlspecialchars($post['created_at']); ?></td>
                    </tr>
                <?php endforeach; ?>
            <?php else: ?>
                <tr>
                    <td colspan="4">์์ง ์์ฑ๋ ๊ธ์ด ์์ต๋๋ค.</td>
                </tr>
            <?php endif; ?>
        </tbody>
    </table>
    <div class="pagination">
        <?php for ($i = 1; $i <= $total_pages; $i++): ?>
            <a href="?page=<?php echo $i; ?>" <?php echo ($i == $current_page) ? 'style="font-weight: bold;"' : ''; ?>><?php echo $i; ?></a>
        <?php endfor; ?>
    </div>
</body>
</html>
5. ๊ธ ์์ฑ (write.php)
#์๋ก์ด #๊ธ์ ์์ฑํ ์ ์๋ ํผ๊ณผ ์ ์ถ ์ #๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๋ #๋ก์ง์ด์์.
PHP
<?php
// write.php
include 'db_config.php';
$message = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $title = trim($_POST['title'] ?? '');
    $content = trim($_POST['content'] ?? '');
    $author = trim($_POST['author'] ?? '');
    if (empty($title) || empty($content) || empty($author)) {
        $message = "๋ชจ๋  ํ๋๋ฅผ ์ฑ์์ฃผ์ธ์.";
    } else {
        try {
            $stmt = $conn->prepare("INSERT INTO board (title, content, author) VALUES (:title, :content, :author)");
            $stmt->bindParam(':title', $title);
            $stmt->bindParam(':content', $content);
            $stmt->bindParam(':author', $author);
            $stmt->execute();
            $message = "๊ธ์ด ์ฑ๊ณต์ ์ผ๋ก ์์ฑ๋์์ต๋๋ค!";
            header('Location: list.php'); // ๊ธ ๋ชฉ๋ก์ผ๋ก ๋ฆฌ๋ค์ด๋ ํธ
            exit();
        } catch(PDOException $e) {
            $message = "๊ธ ์์ฑ ์ค๋ฅ: " . $e->getMessage();
        }
    }
}
?>
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>์ ๊ธ ์์ฑ</title>
    <style>
        body { font-family: Arial, sans-serif; margin: 20px; }
        form div { margin-bottom: 10px; }
        label { display: block; margin-bottom: 5px; }
        input[type="text"], textarea { width: 50%; padding: 8px; border: 1px solid #ddd; }
        textarea { height: 150px; resize: vertical; }
        button { padding: 10px 15px; background-color: #007bff; color: white; border: none; cursor: pointer; }
        button:hover { background-color: #0056b3; }
        .message { color: red; margin-bottom: 10px; }
    </style>
</head>
<body>
    <h1>์ ๊ธ ์์ฑ</h1>
    <?php if ($message): ?>
        <p class="message"><?php echo $message; ?></p>
    <?php endif; ?>
    <form action="write.php" method="POST">
        <div>
            <label for="title">์ ๋ชฉ:</label>
            <input type="text" id="title" name="title" required>
        </div>
        <div>
            <label for="author">์์ฑ์:</label>
            <input type="text" id="author" name="author" required>
        </div>
        <div>
            <label for="content">๋ด์ฉ:</label>
            <textarea id="content" name="content" required></textarea>
        </div>
        <button type="submit">์์ฑ ์๋ฃ</button>
        <button type="button" onclick="location.href='list.php'">๋ชฉ๋ก์ผ๋ก</button>
    </form>
</body>
</html>
6. ๊ธ ๋ณด๊ธฐ (view.php)
ํน์  #๊ธ์ ๋ด์ฉ์ ์์ธํ๊ฒ ๋ณด์ฌ์ฃผ๋ ํ์ด์ง์ ๋๋ค.
PHP
<?php
// view.php
include 'db_config.php';
$post = null;
$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
if ($id > 0) {
    try {
        $stmt = $conn->prepare("SELECT id, title, content, author, created_at, updated_at FROM board WHERE id = :id");
        $stmt->bindParam(':id', $id, PDO::PARAM_INT);
        $stmt->execute();
        $post = $stmt->fetch();
        if (!$post) {
            echo "ํด๋น ๊ธ์ ์ฐพ์ ์ ์์ต๋๋ค.";
            exit();
        }
    } catch(PDOException $e) {
        echo "์ค๋ฅ: " . $e->getMessage();
        exit();
    }
} else {
    echo "์๋ชป๋ ์ ๊ทผ์
๋๋ค.";
    exit();
}
?>
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>๊ธ ๋ณด๊ธฐ: <?php echo htmlspecialchars($post['title'] ?? '์ ๋ชฉ ์์'); ?></title>
    <style>
        body { font-family: Arial, sans-serif; margin: 20px; }
        .post-info { margin-bottom: 15px; color: #555; font-size: 0.9em; }
        .post-content { border: 1px solid #eee; padding: 15px; min-height: 150px; line-height: 1.8; }
        .actions { margin-top: 20px; }
        .actions a, .actions button { margin-right: 10px; padding: 8px 12px; text-decoration: none; color: white; border: none; cursor: pointer; }
        .actions .edit { background-color: #28a745; }
        .actions .delete { background-color: #dc3545; }
        .actions .list { background-color: #6c757d; }
    </style>
</head>
<body>
    <h1><?php echo htmlspecialchars($post['title']); ?></h1>
    <div class="post-info">
        ์์ฑ์: <?php echo htmlspecialchars($post['author']); ?> | 
        ์์ฑ์ผ: <?php echo htmlspecialchars($post['created_at']); ?> | 
        ์์ ์ผ: <?php echo htmlspecialchars($post['updated_at']); ?>
    </div>
    <div class="post-content">
        <?php echo nl2br(htmlspecialchars($post['content'])); // ์ค ๋ฐ๊ฟ ์ ์ฉ ?>
    </div>
    <div class="actions">
        <a href="edit.php?id=<?php echo htmlspecialchars($post['id']); ?>" class="edit">์์ </a>
        <form action="delete.php" method="POST" style="display:inline;" onsubmit="return confirm('์ ๋ง๋ก ์ด ๊ธ์ ์ญ์ ํ์๊ฒ ์ต๋๊น?');">
            <input type="hidden" name="id" value="<?php echo htmlspecialchars($post['id']); ?>">
            <button type="submit" class="delete">์ญ์ </button>
        </form>
        <a href="list.php" class="list">๋ชฉ๋ก</a>
    </div>
</body>
</html>
7. ๊ธ ์์  (edit.php)
๊ธฐ์กด #๊ธ์ ๋ด์ฉ์ ๊ฐ์ ธ์์ ์์ ํ๊ณ , #๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ฐ์ดํธํ๋ #๋ก์ง์ด์์.
PHP
<?php
// edit.php
include 'db_config.php';
$message = '';
$post = null;
$id = isset($_REQUEST['id']) ? (int)$_REQUEST['id'] : 0; // GET ๋๋ POST ๋ชจ๋ ์ฒ๋ฆฌ
if ($id > 0) {
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        // POST ์์ฒญ (์์  ์๋ฃ)
        $title = trim($_POST['title'] ?? '');
        $content = trim($_POST['content'] ?? '');
        $author = trim($_POST['author'] ?? ''); // ์์ฑ์๋ ๋ณดํต ์์ ํ์ง ์์ง๋ง, ์์๋ก ํฌํจ
        if (empty($title) || empty($content) || empty($author)) {
            $message = "๋ชจ๋  ํ๋๋ฅผ ์ฑ์์ฃผ์ธ์.";
        } else {
            try {
                $stmt = $conn->prepare("UPDATE board SET title = :title, content = :content, author = :author, updated_at = NOW() WHERE id = :id");
                $stmt->bindParam(':title', $title);
                $stmt->bindParam(':content', $content);
                $stmt->bindParam(':author', $author);
                $stmt->bindParam(':id', $id, PDO::PARAM_INT);
                $stmt->execute();
                $message = "๊ธ์ด ์ฑ๊ณต์ ์ผ๋ก ์์ ๋์์ต๋๋ค!";
                header('Location: view.php?id=' . $id); // ์์ ๋ ๊ธ ๋ณด๊ธฐ ํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ํธ
                exit();
            } catch(PDOException $e) {
                $message = "๊ธ ์์  ์ค๋ฅ: " . $e->getMessage();
            }
        }
    }
    // GET ์์ฒญ ๋๋ POST ์์ฒญ ์คํจ ์ ๊ธฐ์กด ๊ธ ๋ด์ฉ ๋ถ๋ฌ์ค๊ธฐ
    try {
        $stmt = $conn->prepare("SELECT id, title, content, author FROM board WHERE id = :id");
        $stmt->bindParam(':id', $id, PDO::PARAM_INT);
        $stmt->execute();
        $post = $stmt->fetch();
        if (!$post) {
            echo "ํด๋น ๊ธ์ ์ฐพ์ ์ ์์ต๋๋ค.";
            exit();
        }
    } catch(PDOException $e) {
        echo "์ค๋ฅ: " . $e->getMessage();
        exit();
    }
} else {
    echo "์๋ชป๋ ์ ๊ทผ์
๋๋ค.";
    exit();
}
?>
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>๊ธ ์์ : <?php echo htmlspecialchars($post['title'] ?? '์ ๋ชฉ ์์'); ?></title>
    <style>
        body { font-family: Arial, sans-serif; margin: 20px; }
        form div { margin-bottom: 10px; }
        label { display: block; margin-bottom: 5px; }
        input[type="text"], textarea { width: 50%; padding: 8px; border: 1px solid #ddd; }
        textarea { height: 150px; resize: vertical; }
        button { padding: 10px 15px; background-color: #007bff; color: white; border: none; cursor: pointer; }
        button:hover { background-color: #0056b3; }
        .message { color: red; margin-bottom: 10px; }
    </style>
</head>
<body>
    <h1>๊ธ ์์ </h1>
    <?php if ($message): ?>
        <p class="message"><?php echo $message; ?></p>
    <?php endif; ?>
    <form action="edit.php" method="POST">
        <input type="hidden" name="id" value="<?php echo htmlspecialchars($post['id']); ?>">
        <div>
            <label for="title">์ ๋ชฉ:</label>
            <input type="text" id="title" name="title" value="<?php echo htmlspecialchars($post['title']); ?>" required>
        </div>
        <div>
            <label for="author">์์ฑ์:</label>
            <input type="text" id="author" name="author" value="<?php echo htmlspecialchars($post['author']); ?>" required>
        </div>
        <div>
            <label for="content">๋ด์ฉ:</label>
            <textarea id="content" name="content" required><?php echo htmlspecialchars($post['content']); ?></textarea>
        </div>
        <button type="submit">์์  ์๋ฃ</button>
        <button type="button" onclick="location.href='view.php?id=<?php echo htmlspecialchars($post['id']); ?>'">์ทจ์</button>
    </form>
</body>
</html>
8. ๊ธ ์ญ์  (delete.php)
#ํน์  #๊ธ์ #๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ๊ฑฐํ๋ #๋ก์ง์ด์์. ๋ณด์์ ์ํด #POST ๋ฐฉ์์ผ๋ก ์์ฒญ์ ๋ฐ๋๋ก ํ๋ ๊ฒ์ด ์ข์์.
PHP
<?php
// delete.php
include 'db_config.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $id = isset($_POST['id']) ? (int)$_POST['id'] : 0;
    if ($id > 0) {
        try {
            $stmt = $conn->prepare("DELETE FROM board WHERE id = :id");
            $stmt->bindParam(':id', $id, PDO::PARAM_INT);
            $stmt->execute();
            echo "๊ธ์ด ์ฑ๊ณต์ ์ผ๋ก ์ญ์ ๋์์ต๋๋ค.";
            header('Location: list.php'); // ๊ธ ๋ชฉ๋ก์ผ๋ก ๋ฆฌ๋ค์ด๋ ํธ
            exit();
        } catch(PDOException $e) {
            echo "๊ธ ์ญ์  ์ค๋ฅ: " . $e->getMessage();
            // ์ค๋ฅ ์์๋ ์ฌ์ฉ์์๊ฒ ๋ฉ์์ง๋ฅผ ๋ณด์ฌ์ฃผ๊ณ  ์ ์ ํ ํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ํธ
            echo "<p><a href='list.php'>๋ชฉ๋ก์ผ๋ก ๋์๊ฐ๊ธฐ</a></p>";
            exit();
        }
    } else {
        echo "์๋ชป๋ ์ ๊ทผ์
๋๋ค.";
        echo "<p><a href='list.php'>๋ชฉ๋ก์ผ๋ก ๋์๊ฐ๊ธฐ</a></p>";
        exit();
    }
} else {
    echo "์๋ชป๋ ์์ฒญ ๋ฐฉ์์
๋๋ค."; // POST๊ฐ ์๋ ๋ฐฉ์์ผ๋ก ์ ๊ทผ ์
    echo "<p><a href='list.php'>๋ชฉ๋ก์ผ๋ก ๋์๊ฐ๊ธฐ</a></p>";
    exit();
}
?>
9. ๋ง์น๋ฉฐ
์ด๋ฒ ์ฃผ์๋ #PHP๋ฅผ ์ฌ์ฉํ์ฌ #๊ฒ์ํ์ ๊ธฐ๋ณธ์ ์ธ #CRUD ๊ธฐ๋ฅ์ ๋ชจ๋ ๊ตฌํํด ๋ณด์์ด์. #๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ๋ถํฐ #๊ธ ์์ฑ, ์ฝ๊ธฐ, ์์ , ์ญ์ ๊น์ง์ ์ ์ฒด #๋ก์ง ํ๋ฆ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋์ จ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ค์ ์ฃผ์ฐจ์๋ ์ด ๊ธฐ๋ณธ #๊ฒ์ํ์ ์ข ๋ ๊ฐ์ ํ๊ณ ํ์ด์ง ์ ์ฉ ๋ฐฉ๋ฒ์ ๋ํด ๋ค๋ฃฐ ์์ ์ด๋ ๊ธฐ๋ํด ์ฃผ์ธ์!
๊ฐ์ฑ๋น VPN ๋ฃจ์ VPN
VPN์ด ํ์ ํ๋ค๋ฉด
LuzenVPN(๋ฃจ์ VPN) #์ฐฉํ๊ฐ๊ฒฉ, #๋น ๋ฅธ์๋น์ค, #์์ ์ฑ ๊น์ง ๊ฐ์ถ, #ํด๋ฆฐ์์ดํผ ์ ๊ณต ์ผ๋ก #๋ง์ผํ ๋ถํฐ #๊ฒ์ ๊น์ง! ํ๋ฒ์ ํด๊ฒฐ