닉네임 뒤에 숫자를 영구적으로 고정할수 있을까요? > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

닉네임 뒤에 숫자를 영구적으로 고정할수 있을까요? 정보

닉네임 뒤에 숫자를 영구적으로 고정할수 있을까요?

본문

http://sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=256198#c_256223

이 질문을 올린적이 있는데요
균이님 도움으로

닉네임 <?=$list[$i][wr_comment]?>

이렇게 닉네임 뒤에 숫자를 출력하게는 소스를 넣었습니다
<?=$list[$i][wr_comment]?>  이 소스를 추가하면

닉네임 1  처음뵙겠습니다~
닉네임 2  어서오세요
닉네임 3  반갑습니다~
닉네임 4  네 ^^ 다들 친절하시네요~

이런식으로 순차적으로 숫자가 출력되는데요


닉네임 1 코멘트를 달았던 사람이 코멘트를 달게 되면
다시 숫자가 순차적으로 새로 발급되어서

닉네임 4 ← 이렇게 나와버립니다..
이렇게 새로 숫자가 순차적으로 나오네요 ㅠ

닉네임 1 달았던 사람이 다시 코멘트를 달게 되면
닉네임 1로 계속 나오게 할순 없을까요?


지금 출력상황 )

닉네임 1  처음뵙겠습니다
닉네임 2  어서오세요
닉네임 3  반갑습니다
닉네임 4  네 ^^ 다들 친절하시네요~



바꿨으면 하는 예)


닉네임 1  처음뵙겠습니다
닉네임 2  어서오세요
닉네임 3  반갑습니다
닉네임 1  네 ^^ 다들 친절하시네요~

댓글 전체

기존에 댓글 단게 있다면 그값을 가져와서 붙여주고 그렇지 않다면 +1 을 해주셔야하는데 이 글을 적었던 사람이 로그인한 사람이 아닐때의 여러가지 변수를 생각해서 하셔야 할것 같네요
저희 사이트는 비회원 글작성이 불가능 하기 떄문에
그 부분은 크게 문제가 없을것 같은아요
그래도 혹시나 필요할 상황이 생기면
비로그인 회원이라면 아예 숫자표기를 안되게끔 하는 방법은 없을까요?
얼추 비슷한 코드를 찾았긴 했는데

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

// 익명 코드 by mahler83 ver 1.00 = = = = = = = = = = = = = = = = = = = =
// DB 테이블에서 mb_10의 데이터 형태를 "text"로 바꾸어줘야 합니다. 물론 다른 필드를 사용해도 됩니다.
// 글쓴이는 "글쓴이", 코멘트를 다는 순서로 "행인1", "행인2" 이렇게 이름이 자동으로 들어갑니다.
// 회원 중에 "anonymous"라는 아이디를 가진 분이 있으면 다른 문자열을 사용해주세요.
// 이 아래에 있는 crypt($member[mb_id],"**")에서 별표 대신에 원하는 숫자나 문자를 2개 넣으세요.
 

// 원글의 익명리스트 가져오기
$sql = "select wr_10 from $write_table where wr_id = '$wr_id'";
$query = sql_query($sql);
$result = sql_fetch_array($query);
$wr_10 = $result[wr_10];
$anonym[list_array] = explode("/=/", $wr_10);
 
// $anonym[mb_id_crypt]는 멤버 정보를 날리기 전에 생성
$anonym[mb_id_crypt] = crypt($member[mb_id],"**");
 
// 멤버 정보 날리기
unset($member);
 
// IP 정보 안 남기기
$_SERVER[REMOTE_ADDR] = "";
 
// 멤버 아이디 강제로 지정
$member[mb_id] = "anonymous";
 
// 글 쓸 권한 부여
$member[mb_level] = $board[bo_comment_level];
 
// 글을 쓴 적이 있는지 확인
if(in_array($anonym[mb_id_crypt], $anonym[list_array])) {
 // 글쓴이인 경우
 if($anonym[mb_id_crypt] == $anonym[list_array][0]) {
  $anonym[mb_name] = "글쓴이";
 }
 // 기존 행인인 경우
 else {
  for($i=1;$i<sizeof($anonym[list_array]);$i++) {
  if($anonym[list_array][$i] == $anonym[mb_id_crypt]) $anonym[mb_name] = "행인$i";
  }
 }
}
 
// 새 행인인 경우 번호를 매겨주고 원글의 익명 리스트 업데이트
if(!$anonym[mb_name]) {
 $anonym[mb_name] = "행인" . sizeof($anonym[list_array]);
 $wr_10 .= "/=/" . $anonym[mb_id_crypt];
 $sql = "update $write_table set wr_10 = '$wr_10' where wr_id = '$wr_id'";
 sql_query($sql);
 unset($wr_10); // $wr_10 사용 완료
}
 
// 이름이나 별명을 강제로 입력
$member[mb_name] = $anonym[mb_name];
$member[mb_nick] = $anonym[mb_name];
 
// 익명 코드 by mahler83 끝 = = = = = = = = = = = = = = = = = = = =
?>



http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=14360&sca=&sfl=wr_subject&stx=%EC%9D%B5%EB%AA%85

이 게시물을 보고 알았는데요

 // 기존 행인인 경우
 else {
  for($i=1;$i<sizeof($anonym[list_array]);$i++) {
  if($anonym[list_array][$i] == $anonym[mb_id_crypt]) $anonym[mb_name] = "행인$i";
  }
 }
}

이부분을 응용하면 될것 같은데
쉽게 적용이 안되네요
저 팁은 $member[mb_name] 이걸 행인으로 변환하는 팁인데
저희 사이트는 <?=$list[$i][name]?> 이 코드를 쓰지 않고
<?=$list[$i][name]?> 대신에 그냥 글자로 "익명 <?=$list[$i][wr_comment]?> "
이런식으로 뒤에 숫자를 표시하거든요
그리고 저 팁은 기존에 있던 댓글을 그대로이고
새로 등록된 코멘트만 변환 되는지라 어떻게 응용해야 될지 막막하네요



숫자 표기하는 함수는 세가지가 있는데요



-----------------------------------------

1. 코멘트 삭제해도 숫자 변동이 없는 코드 (현재 사용하고 있는 코드이기도 해요)

익명 <?=$list[$i][wr_comment]?>

예 )

익명 1
익명 3
익명 4

익명 2 코멘트가 삭제되어서 뒤에 숫자가 변동없이 고정되는 코드


------------------------------------------



------------------------------------


2. 코멘트 삭제하면 숫자가 재정렬되는 코드

코멘트가 삭제하게 되면 코멘트 뒤 숫자가 다시 순서대로 재정렬됨

익명1,익명2,익명3..



익명 <?=$i+1?>

---------------------------------------



--------------------------------------

2-1 코멘트 삭제하면 숫자가 재정렬되는 코드2

<?
if($comnum) $comnum;
$comnum++ ;
?>

익명 <?=$comnum?>


------------------------------


이렇게 숫자 표기하는 방법도 있는데
이 세가지 숫자 표기 코드중 한가지를 정해서

 // 기존 행인인 경우
 else {
  for($i=1;$i<sizeof($anonym[list_array]);$i++) {
  if($anonym[list_array][$i] == $anonym[mb_id_crypt]) $anonym[mb_name] = "행인$i";
  }
 }

이 코드를 응용해서 본문의 예시처럼 응용하고 싶은데 방법이 없을까요
그냥 회원일때는 $is_member하는 변수가 생깁니다.
그러니까 회원일때만 체크해서 해야지요
그리고 뒤에 변수값을 똑같이 지정하시려면 코멘트가 업데이트 되는 부분에서 현재 숫자를 넣어주고
다음에 글을 적을때는 글을 적은적이 있는지를 검사해야겟지요
글을 적은 적이 있으면 글에서 숫자를 불러오고 그렇지 않다면 새로운 숫자를 부여
의도를 얘기하면 좋은데 이렇게 하고싶다라고만 하니 확실한 답변을 얻을 수 없는 것입니다
등록자를 구분해서 표기하고 싶은 모양입니다만
하나의 게시물에서는 어떻게든 번호를 붙여서 표기할 수 있는데 다른 게시물에서
동일한 회원이 댓글을 달면 어떤 번호를 부여하는가요?

회원제라고 했으니 회원을 구분하는 방법으로 mb_no 라는 숫자를 사용할 수도 있긴한데
의도를 정확하게 알 수 없으니..
이렇게 바꾸는 의도는 제 사이트가 익명사이트인데
코멘트 단 사람들을 구분할수 없으니 애매한 상황이 자주 오게 되어서 그렇습니다.

지금은 동일인물이 코멘트를 달아도
뒤에 숫자가 다시 새로 부여가 되는지라
누가 어떤 댓글을 썼는지 정확한 구별을 못하고
또한 이를 악용해서 자작이나 분란조성을 하는 회원들이 간혹 있더라구요.

아이피 뒷자리도 같이 표시하여도 아이피 같은 경우는 프록시나 핸드폰으로 수시로 바꿀수 있는 부분인지라 확실하게 구분하기가 어렵고

그렇다고 닉네임이나 아이디를 노출하면 익명사이트의 성격이 완전히 벗어나게 되어서 난감하구요


하나의 게시물에서는 어떻게든 번호를 붙여서 표기할 수 있는데 다른 게시물에서
동일한 회원이 댓글을 달면 어떤 번호를 부여하는가요?
라고 질문 하셨는데.

뒤에 숫자가 영구적으로 고정되지 말고
각각 게시물에서만 동일한 회원이 코멘트를 등록할 경우 숫자가
바뀌지 않고 고정되었으면 좋겠습니다

다른 게시물에서는 숫자가 또 순서대로 부여했으면 좋겠구요


제 설명이 너무 어려운가요 ㅠㅠ
제 의도와 거의 근접한 코드가
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=14360&sca=&sfl=wr_subject&stx=%EC%9D%B5%EB%AA%85
이 코드입니다
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT