안녕하세요! 오늘은 그누보드를 이용하여 간단한 친구 신청 시스템을 만드는 방법을 살펴보겠습니다. 그누보드는 한국에서 널리 사용되는 오픈소스 게시판 소프트웨어로, 다양한 기능을 손쉽게 추가할 수 있는 유연한 구조를 가지고 있습니다. 이 튜토리얼에서는 그누보드와 PHP를 활용하여 사용자 간의 친구 관계를 관리하는 시스템을 구축해 보겠습니다.
데이터베이스 설정
친구 요청 시스템을 구축하기 위해 MySQL 데이터베이스를 사용합니다. 다음 SQL 스크립트를 사용하여 데이터베이스와 테이블을 설정합니다.
USE your_gnuboard_database;
CREATE TABLE friend_requests (
id INT AUTO_INCREMENT PRIMARY KEY,
sender_id INT NOT NULL,
receiver_id INT NOT NULL,
status ENUM('pending', 'accepted', 'declined') DEFAULT 'pending',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (sender_id) REFERENCES g5_member(mb_no),
FOREIGN KEY (receiver_id) REFERENCES g5_member(mb_no)
);
친구 신청 기능 구현
각 기능을 구현하기 위해 필요한 PHP 파일을 작성합니다.
friend_functions.php - 친구 기능 함수
우선, 친구 신청과 수락을 처리하는 함수를 정의합니다.
<?php
// lib/friend_functions.php
function send_friend_request($sender_id, $receiver_id) {
global $g5;
$sql = "INSERT INTO friend_requests (sender_id, receiver_id) VALUES ('$sender_id', '$receiver_id')";
sql_query($sql);
}
function accept_friend_request($request_id) {
global $g5;
$sql = "UPDATE friend_requests SET status = 'accepted' WHERE id = '$request_id'";
sql_query($sql);
}
function get_friend_requests($user_id) {
global $g5;
$sql = "SELECT fr.id, m.mb_id AS sender_name
FROM friend_requests fr
JOIN g5_member m ON fr.sender_id = m.mb_no
WHERE fr.receiver_id = '$user_id' AND fr.status = 'pending'";
return sql_query($sql);
}
function get_friends_list($user_id) {
global $g5;
$sql = "SELECT m.mb_id AS friend_name
FROM friend_requests fr
JOIN g5_member m ON (fr.sender_id = m.mb_no OR fr.receiver_id = m.mb_no)
WHERE (fr.sender_id = '$user_id' OR fr.receiver_id = '$user_id')
AND fr.status = 'accepted' AND m.mb_no != '$user_id'";
return sql_query($sql);
}
?>
friend_request.php - 친구 요청 처리
<?php
// theme/basic/friend_request.php
include_once('./_common.php');
include_once(G5_LIB_PATH.'/friend_functions.php');
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$sender_id = $member['mb_no'];
$receiver_id = (int)$_POST['receiver_id'];
send_friend_request($sender_id, $receiver_id);
alert('친구 요청을 보냈습니다.', G5_URL);
}
include_once(G5_PATH.'/head.php');
?>
<h1>사용자 목록</h1>
<ul>
<?php
$result = sql_query("SELECT mb_no, mb_id FROM g5_member");
while ($row = sql_fetch_array($result)) {
echo "<li>".htmlspecialchars($row['mb_id'])."
<form action=\"friend_request.php\" method=\"POST\" style=\"display:inline;\">
<input type=\"hidden\" name=\"receiver_id\" value=\"{$row['mb_no']}\">
<button type=\"submit\">친구 요청</button>
</form>
</li>";
}
?>
</ul>
<?php
include_once(G5_PATH.'/tail.php');
?>
friends_list.php - 친구 목록 표시
<?php
// theme/basic/friends_list.php
include_once('./_common.php');
include_once(G5_LIB_PATH.'/friend_functions.php');
include_once(G5_PATH.'/head.php');
?>
<h1>친구 목록</h1>
<ul>
<?php
$result = get_friends_list($member['mb_no']);
while ($row = sql_fetch_array($result)) {
echo "<li>".htmlspecialchars($row['friend_name'])."</li>";
}
?>
</ul>
<?php
include_once(G5_PATH.'/tail.php');
?>
마무리
이로써 그누보드를 이용하여 간단한 친구 신청 시스템이 완성되었습니다! 이 튜토리얼을 통해 그누보드와 PHP를 사용하여 사용자 간의 친구 관계를 관리하는 시스템을 구축하는 방법을 배웠습니다. 더 복잡한 기능을 추가하려면, 예를 들어 친구 요청 거부, 알림 시스템, 사용자 인증 등을 구현해볼 수 있습니다. 즐거운 코딩 되세요!
'IT 정보' 카테고리의 다른 글
흑백 화면에 눈내리는 효과 css 만 이용하여 구현 (1) | 2024.09.30 |
---|---|
영카트 상품별 금액 변동 코드 (3) | 2024.09.26 |
토드(TOAD) 사용법 안내 (0) | 2024.06.11 |
SQL UNION을 활용한 데이터 통합 이해하기 (상세 설명) (0) | 2024.06.11 |
개발자들이 자주 사용하는 SQL 쿼리문 모음 (0) | 2024.06.11 |