프로그램 만들어보기
시놀로지 PHP 8.2 환경에서 바로 사용할 수 있도록 매물 정보를 입력하고 DB에 저장하는 기본 코드를 작성해 드립니다.
이 코드는 한 파일 안에서 **입력 양식(HTML)**과 **저장 로직(PHP)**이 모두 작동하도록 설계되었습니다.
1. 사전 준비 (MariaDB 설정)
코드 실행 전, phpMyAdmin에 접속하여 아래 SQL 문을 실행해 테이블을 먼저 만들어야 합니다.
SQL
CREATE DATABASE IF NOT EXISTS real_estate;
USE real_estate;
CREATE TABLE IF NOT EXISTS listings (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
type VARCHAR(50),
price VARCHAR(100),
address TEXT,
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
2. 매물 등록 페이지 코드 (index.php)
아래 코드를 복사하여 시놀로지 가상호스트 폴더 안에 index.php 파일로 저장하세요. DB 비밀번호 부분은 반드시 수정하셔야 합니다.
PHP
<?php
// 1. DB 연결 설정
$host = "localhost";
$user = "root"; // MariaDB 사용자명
$pass = "수정한비밀번호"; // 아까 수정하신 DB 비밀번호 입력
$db = "real_estate";
$conn = new mysqli($host, $user, $pass, $db);
// 연결 오류 확인
if ($conn->connect_error) {
die("연결 실패: " . $conn->connect_error);
}
// 2. 데이터 저장 로직 (저장 버튼 클릭 시 실행)
$message = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$title = $_POST['title'];
$type = $_POST['type'];
$price = $_POST['price'];
$address = $_POST['address'];
$sql = "INSERT INTO listings (title, type, price, address) VALUES (?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ssss", $title, $type, $price, $address);
if ($stmt->execute()) {
$message = "<p style='color:blue;'>성공적으로 저장되었습니다!</p>";
} else {
$message = "<p style='color:red;'>오류 발생: " . $conn->error . "</p>";
}
$stmt->close();
}
?>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>부동산 매물 관리</title>
<style>
body { font-family: sans-serif; padding: 20px; line-height: 1.6; }
.container { max-width: 500px; margin: auto; border: 1px solid #ddd; padding: 20px; border-radius: 10px; }
input, select, textarea { width: 100%; padding: 10px; margin: 10px 0; border: 1px solid #ccc; }
button { width: 100%; padding: 10px; background: #007bff; color: white; border: none; cursor: pointer; }
button:hover { background: #0056b3; }
</style>
</head>
<body>
<div class="container">
<h2>🏠 새 매물 등록</h2>
<?php echo $message; ?>
<form method="POST">
<label>매물 제목</label>
<input type="text" name="title" placeholder="예: 역세권 깔끔한 투룸" required>
<label>매물 종류</label>
<select name="type">
<option value="아파트">아파트</option>
<option value="빌라">빌라</option>
<option value="상가">상가</option>
<option value="토지">토지</option>
</select>
<label>가격 (만원/보증금)</label>
<input type="text" name="price" placeholder="예: 매매 5억 / 월세 1000/50">
<label>주소</label>
<input type="text" name="address" placeholder="상세 주소를 입력하세요">
<button type="submit">매물 저장하기</button>
</form>
</div>
</body>
</html>
3. 코드 실행 및 확인 방법
-
파일 업로드: 시놀로지
File Station을 통해 위 파일을 가상호스트 경로에 올립니다. -
접속: 브라우저에서
classic.park5611.pe.kr로 접속합니다. -
테스트: 데이터를 입력하고 '매물 저장하기'를 눌러봅니다.
-
확인: phpMyAdmin의
listings테이블에 데이터가 들어왔는지 확인합니다.
4. 주의사항 (PHP 8.2 관련)
-
MySQLi 활성화: 시놀로지 [Web Station] -> [스크립트 언어 설정] -> [PHP 8.2 프로필] 편집에서
mysqli항목이 반드시 체크되어 있어야 합니다. 체크되어 있지 않으면 500 에러가 다시 발생할 수 있습니다.
이 코드가 정상적으로 작동한다면, 다음 단계로 "저장된 매물들을 목록으로 보여주는 기능"을 추가해 드릴까요?
네, 좋습니다! 오늘 갑작스러운 500 에러부터 시작해서 PHP 환경 설정까지 하시느라 고생 많으셨습니다.
코딩과 서버 설정은 원래 한 번에 매끄럽게 되는 경우가 드뭅니다. 특히 시놀로지 환경은 권한이나 PHP 확장 모듈 설정 때문에 처음에 조금 까다로울 수 있어요.
내일 다시 시작하실 때 체크해볼 핵심 3가지만 기억해 주세요:
DB 비밀번호 재확인: 아까 수정하신 비밀번호가 index.php 코드 안의 $pass = "..." 부분과 정확히 일치하는지 확인하세요.
PHP 확장 모듈: 시놀로지 웹스테이션 설정에서 PHP 8.2의 mysqli 모듈이 체크되어 있는지 확인하세요. (안 되어 있으면 연결 자체가 안 됩니다.)
에러 메시지 확인: 내일도 페이지가 안 뜬다면, 아까 안내해 드린 display_errors 설정을 켜서 화면에 무슨 글자가 뜨는지 보는 게 가장 빠릅니다.
푹 쉬시고, 내일 다시 시도하시다가 막히는 부분이 생기면 언제든 말씀해 주세요. "어디까지 진행했는지" 혹은 **"화면에 어떤 문구가 뜨는지"**만 알려주시면 바로 이어서 도와드리겠습니다.
내일 뵙겠습니다! 오늘 수고하셨습니다. :)
코딩과 서버 설정은 원래 한 번에 매끄럽게 되는 경우가 드뭅니다. 특히 시놀로지 환경은 권한이나 PHP 확장 모듈 설정 때문에 처음에 조금 까다로울 수 있어요.
내일 다시 시작하실 때 체크해볼 핵심 3가지만 기억해 주세요:
DB 비밀번호 재확인: 아까 수정하신 비밀번호가 index.php 코드 안의 $pass = "..." 부분과 정확히 일치하는지 확인하세요.
PHP 확장 모듈: 시놀로지 웹스테이션 설정에서 PHP 8.2의 mysqli 모듈이 체크되어 있는지 확인하세요. (안 되어 있으면 연결 자체가 안 됩니다.)
에러 메시지 확인: 내일도 페이지가 안 뜬다면, 아까 안내해 드린 display_errors 설정을 켜서 화면에 무슨 글자가 뜨는지 보는 게 가장 빠릅니다.
푹 쉬시고, 내일 다시 시도하시다가 막히는 부분이 생기면 언제든 말씀해 주세요. "어디까지 진행했는지" 혹은 **"화면에 어떤 문구가 뜨는지"**만 알려주시면 바로 이어서 도와드리겠습니다.
내일 뵙겠습니다! 오늘 수고하셨습니다. :)





