게시판 특정회원만 읽기 가능
본문
게시판에 게시물을 등록할때 여분필드에 특정회원 아이디를 기입하면
그 아이디로 로그인 한 경우에만 그 게시물이 열람되게 하려면 어떻게 해야할까요?
답변 3
@Min아빠 님이 설명하신 부분을 간단히 예제로 만들면 다음과 같이 되지 않을까 생각합니다.
참고하셔서 원하시는 로직으로 구현 하시면 되지 않을까 합니다.
<?php
session_start();
// 예시로 사용할 게시물과 그에 대한 접근 권한
$posts = array(
array('id' => 1, 'title' => '첫 번째 게시물', 'content' => '첫 번째 게시물 내용', 'allowed_users' => array('user1')),
array('id' => 2, 'title' => '두 번째 게시물', 'content' => '두 번째 게시물 내용', 'allowed_users' => array('user2', 'user3')),
array('id' => 3, 'title' => '세 번째 게시물', 'content' => '세 번째 게시물 내용', 'allowed_users' => array('user1', 'user3')),
);
// 현재 로그인한 사용자 아이디를 가져옵니다. 실제로는 로그인 과정에서 세션 등을 사용하여 얻어와야 합니다.
$current_user = isset($_SESSION['user_id']) ? $_SESSION['user_id'] : null;
// 게시물을 열람할 때의 로직
function view_post($post_id, $posts, $current_user) {
foreach ($posts as $post) {
if ($post['id'] == $post_id) {
// 현재 사용자가 해당 게시물을 열람할 수 있는지 확인
if ($current_user && in_array($current_user, $post['allowed_users'])) {
// 권한이 있을 경우 게시물 내용 출력
echo "<h2>{$post['title']}</h2>";
echo "<p>{$post['content']}</p>";
return;
} else {
// 권한이 없을 경우 접근 거부 메시지 출력
echo "<p>접근 권한이 없습니다.</p>";
return;
}
}
}
// 해당 아이디의 게시물을 찾지 못한 경우
echo "<p>게시물을 찾을 수 없습니다.</p>";
}
// 사용 예시: 게시물 1번 열람
view_post(1, $posts, $current_user);
?>
* [스킨 디렉토리]/view.skin.php
if ($bo_table == 'abc' && $view['wr_1']) {
if ($view['wr_1'] != $member['mb_id'])
alert('작성자 본인만 확인 가능합니다.');
}
여분 필드에 기록을 하시고
list.php
view.php
등에서 해당 필드와 $member 를 비교하시면 됩니다.