[제로] 수정된 정보를 제대로 보여주기

페이지 정보

루루아빠 2,225 1 2005.07.03 06:15

평점

  • 평점 : 0점 (0명 참여)

본문

. 우선, lib.php 파일에 다음과 같은 함수를 추가시켜 줍니다. 위치는 아무데나 상관이 없구요, 저는 편의상 게시판 관리자인지 체크하는 부분, 즉 function check_board_master($member, $board_num) 바로 위에 추가해 주었습니다.

// 시작
// 멤버 테이블의 email, homepage, name 체크
function get_email_homepage($data) {
   global $connect;

   // 데이터베이스 연결
   if (!$connect) $connect=dbconn();

   // 멤버인 경우, 멤버 테이블 정보로 대체
   if($data[ismember]) {
      // 쿼리. $email_homepage_temp[0]=이메일 공개여부,[1]=홈페이지 공개여부,[2]=이메일,[3]=홈페이지,[4]=이름
      $email_homepage_temp=mysql_fetch_row(mysql_query("select open_email,open_homepage,email,homepage,name from zetyx_member_table where no={$data[ismember]}"));

      // 이메일 공개면 show, 아니면 hide
      if ($email_homepage_temp[0]) {
         $email_homepage[0] = $email_homepage_temp[2];
      } else {
         $email_homepage[0] = "";
      }
      // 홈페이지 공개면 show, 아니면 hide
      if ($email_homepage_temp[1]) {
         $email_homepage[1] = $email_homepage_temp[3];
      } else {
         $email_homepage[1] = "";
      }
      // 이름 show
      $email_homepage[2] = $email_homepage_temp[4];
   }

   // 멤버가 아닌 경우 기존 게시판 테이블 정보로 유지
   else {
      $email_homepage[0] = $data[email];
      $email_homepage[1] = $data[homepage];
      $email_homepage[2] = $data[name];
   }

   return $email_homepage;
}
// 끝

간단하게 설명하자면, 회원인 경우 이메일, 홈페이지 공개 여부를 우선 알아보고 그에 따라서 멤버 테이블의 이메일, 홈페이지 정보를 가져오게 합니다. 비회원의 경우에는 게시판 테이블에 기록된 이메일, 홈페이지 정보를 그냥 사용합니다.

한가지 덧붙이자면, 여기서 회원/비회원의 구분은 순전히 작성자가 글을 올릴 당시 회원 가입, 로그인을 한 상태였는지 또는 로그아웃 상태였는지에 따릅니다. 따라서, 누군가 비회원/로그아웃 상태에서 글을 올린 이후에 회원가입/로그인을 하였더라도, 당연한 말이지만 그가 예전에 올린 글은 여전히 비회원의 글로 남습니다.

2. 이제 앞서 작성한 함수를 서브레이어 호출 직전에 사용해 주면 됩니다. 작성자의 정보를 불러오는 서브레이어 호출부분은 include/list_check.php 파일에 있는데, 거기서 $data[email] 과 $data[homepage] 그리고 $data[name] 부분을 위 함수를 이용해서 수정 후 출력해 주면 되는 거죠.

이건 아무데나 넣어주면 안되고, function list_check(&$data, $view_check=0) 안에 포함시켜 주어야 합니다. $_listCheckTimeStart = getmicrotime(); 바로 다음에 추가시켜 주시기 바랍니다. 저의 경우 20번쨰 라인에 해당하더군요.

// 시작
// 회원은 멤버 테이블의 정보로 대체
// 비회원은 게시판 테이블의 정보 유지
$email_homepage=get_email_homepage($data);
$data[email] = $email_homepage[0];
$data[homepage] = $email_homepage[1];
$data[name] = $email_homepage[2];
// 끝

다 되었습니다. 이제 게시판 내 작정자 정보 서브레이어를 클릭하면, 작성자가 회원인 경우 해당 멤버 테이블의 데이터로 보여질겁니다. 이 때 기존에 게시판 테이블에 작성된 회원정보는 무시됩니다. 비회원인 경우 종전처럼 게시판 테이블의 정보를 가져오겠죠?

3. 이건 옵션입니다. 간혹 이메일 링크, 홈페이지 링크를 서브레이어를 통하지 않고 게시판 내에서 바로 클릭할 수 있도록 만들어진 스킨이 있습니다. 이 때 홈페이지 링크는 잘 보이는데 이메일 링크만 안보이는 경우가 있습니다. 아무리 회원이 자기 이메일 정보를 공개로 설정해 놓아도, 또 비회원인 경우 글작성시 이메일 주소를 제대로 입력했어도 결과는 마찬가지인 경우, 다음과 같이 include/list_check.php 파일을 한 줄 더 수정해 줍니다. 그 파일 맨 아랫부분에 보면,

// 스팸메일러 금지
$mail=$data[email]="";

과 같이 되어 있는 부분이 보일겁니다. 이 부분을 주석처리 해 줍니다. 즉,

// 스팸메일러 금지
//$mail=$data[email]="";
추천인
  • 추천해 주세요
6
루루아빠 - 회원등급 : 최고관리자 - 포인트 : 1,291,261
레벨 96
경험치 1,390,416

Progress Bar 78%

- 가입일 : 2015-03-04 03:24:54
- 서명 : KNOW YOUR LIMITS BUT NEVER STOP TRYING TO EXCEED THEM !!
- 자기소개 : 루루의 자랑 루루아빠랍니다~~

댓글1

야돌이님의 댓글

야돌이 글쓴이 2005.07.03 06:15
예를 들어 길동 이라는 사용자가 글을 올린 후에, 자기 이름을 갑돌 이라고 회원정보수정을 하게 되면, 위 방법대로면 그 회원이 예전에 쓴 글도 모두 갑돌 이라고 출력되지만, 사실 게시판 정보에는 여전히 길동 이라고 남아 있습니다. 따라서, 이름으로 찾기를 하게 되면, 갑돌 이라는 이름으로 검색하면 예전의 글들은 검색이 안됩니다. 여전히 길동 이라는 이름으로 검색을 해야 하지만, 출력되는 이름은 갑돌 이니... 저의 경우 아예 이름으로 검색 기능을 사용하지 않습니다. 혹자에 따라서는 이름만은 예전 이름으로 남겨두고자 하시는 분이 계실 것 같군요. 해당하시는 분들은 위 소스에서, $email_homepage[2] 가 포함된 라인들을 주석처리해 주시기 바랍니다 (모두 3라인).
Total 7473638 페이지
제목 글쓴이 날짜 조회 추천
그누•영카트  댓글+2 그누보드(영카트) 5.5.8.2.3 shadow2fox 2022.10.19 474 2
이윰  댓글+2 date 시간 형식으로 출력(~전) 올바르게 해결하기 shadow2fox 2023.03.10 463 2
그누•영카트  댓글+1 그누보드(영카트) 5.5.5 shadow2fox 2022.04.08 462 2
그누•영카트  댓글+1 그누보드(영카트) 5.5.8.2.4 shadow2fox 2022.11.22 460 1
그누•영카트  그누보드(영카트) 5.5.8.2.1 shadow2fox 2022.09.25 445 1
그누•영카트  댓글+2 그누보드(영카트) 5.5.8.1 shadow2fox 2022.06.21 444 2
그누•영카트  댓글+2 그누보드(영카트) 5.5.8.2.5 shadow2fox 2022.12.08 441 1
그누•영카트  댓글+2 그누보드(영카트) 5.5.8.2.8 shadow2fox 2023.03.24 438 2
그누•영카트  그누보드(영카트) 5.5.3.1 (아이핀 사용시 오류 수정) shadow2fox 2022.03.08 427 0
그누•영카트  댓글+2 그누보드(영카트) 5.5.8.3.2 shadow2fox 2023.07.18 426 3
그누•영카트  댓글+1 그누보드(영카트) 5.5.7.5 shadow2fox 2022.05.27 419 1
그누•영카트  댓글+2 그누보드(영카트) 5.5.8.3.1 shadow2fox 2023.06.19 408 2
그누•영카트  댓글+2 그누보드(영카트) 5.5.8 shadow2fox 2022.06.14 407 2
그누•영카트  댓글+1 그누보드(영카트) 5.5.8.3 shadow2fox 2023.04.20 406 2
그누•영카트  댓글+2 그누보드(영카트) 5.5.8.2.6 shadow2fox 2023.01.14 392 2
그누•영카트  그누보드(영카트) 5.5.8.2.7 shadow2fox 2023.01.27 392 0
그누•영카트  댓글+1 그누보드(영카트) 5.5.8.1.1 shadow2fox 2022.06.24 388 1
그누•영카트  그누보드(영카트) 5.5.8.3.3 shadow2fox 2023.08.20 386 2
그누•영카트  댓글+1 그누보드(영카트) 5.5.8.3.4 (★ 5.5.8.3.3 버전 사용자님은 필독해 주세요) shadow2fox 2023.08.20 371 1
그누•영카트  그누보드(영카트) 5.5.8.2.2 shadow2fox 2022.10.05 357 0