테스트 사이트 - 개발 중인 베타 버전입니다

한 게시물당 한사람이 댓글 1번씩만 달게하려면? 채택완료

ManLee 1년 전 조회 3,744

특정 게시판에 게시물에 한사람이 댓글 1번씩만 등록하고 수정만 할수있고 다른사람이 남의 댓글에 댓글도 못달고 자기가 단 댓글 1게만 수정할수 있도록 하려면 어떻게 해야 하나요?

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
e
1년 전

스킨폴더에 write_comment_update.head.skin.php 파일을 만들어서 아래 소스를 저장해보세요

</p>

<p>if ($w == 'c' && $mb_id)</p>

<p>{</p>

<p>    $sql = "SELECT wr_id from $write_table where wr_parent = '$wr_id', wr_is_comment = 1, mb_id = '$mb_id' ";</p>

<p>    $cm = sql_fetch($sql);</p>

<p>    if($cm['wr_id']) {</p>

<p>        alert("댓글은 게시물당 1번만 가능합니다.");</p>

<p>    }</p>

<p> </p>

<p>    if($comment_id) {</p>

<p>        $sql = "SELECT mb_id from $write_table where wr_id = '$comment_id' ";</p>

<p>        $cm = sql_fetch($sql);</p>

<p>        if($cm['mb_id'] != $mb_id) {</p>

<p>            alert("다른 사람 댓글에 댓글을 작성할 수 없습니다.");</p>

<p>        }</p>

<p>    }</p>

<p>}</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

하루열갑
1년 전
스킨폴더에 이미 write_comment_update.head.skin.php 가 있고
[code]<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

if(!$is_admin && IS_DEMO) {
alert("데모 화면에서는 하실(보실) 수 없는 작업입니다.");
}[/code]

처럼 되어 있어요.



[code]<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

if(!$is_admin && IS_DEMO) {
alert("데모 화면에서는 하실(보실) 수 없는 작업입니다.");
}

if ($w == 'c' && $mb_id)
{
$sql = "SELECT wr_id from $write_table where wr_parent = '$wr_id', wr_is_comment = 1, mb_id = '$mb_id' ";
$cm = sql_fetch($sql);
if($cm['wr_id']) {
alert("댓글은 게시물당 1번만 가능합니다.");
}

if($comment_id) {
$sql = "SELECT mb_id from $write_table where wr_id = '$comment_id' ";
$cm = sql_fetch($sql);
if($cm['mb_id'] != $mb_id) {
alert("다른 사람 댓글에 댓글을 작성할 수 없습니다.");
}
}
}[/code]

로 해봤는데 같은 아이디로 댓글 등록은 계속 되고 있습니다. 흐음...
e
eyekiss
1년 전
$sql = "SELECT wr_id from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 and mb_id = '$mb_id' ";
코드에 실수가 있었네요. 수정해보세요.

댓글을 작성하려면 로그인이 필요합니다.

toqurk
1년 전

댓글 처리해주는 쿼리가 있는 페이지에서 (write_comment_update.php) 63번째 줄쯤?
세션의 시간 검사 란이 존재 합니다.
그 영역 밑으로 하셔서 comment DB select count 하셔서 
1차 조건을 특정 게시판일때
2차 조건을 카운트가 0보다 크면
해서 잡아버리세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인