회원 닉네임 이력보기 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

회원 닉네임 이력보기 정보

회원 닉네임 이력보기

본문

PHP 스쿨에 보니 회원 닉네임 변경에 대한 이력보기 기능이 있더군요.
SIR의 경우도 회원정보 변경이 잦은 회원들도 많은것 같아 불편했는데 괜찮은 기능같아 잠깐 만들어 봤습니다.
관리자 페이지에서의 작업은 참조하셔서 직접 하셔야 되겠습니다.

테이블 작업
$sql = " CREATE TABLE `g4_nick_career` (
  `gmc_id` int(11) NOT NULL auto_increment,
  `mb_id` varchar(255) NOT NULL default '',
  `gmc_nick` varchar(255) NOT NULL default '',
  `gmc_w_id` varchar(255) NOT NULL default '',
  `gmc_datetime` datetime NOT NULL default '0000-00-00 00:00:00',
  `gmc_ip` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`gmc_id`,`mb_id`)
) ";
sql_query($sql, false);

gmc_w_id
이 항목은 관리자 페이지에서 해당회원의 닉 변경시 수정한 관리자의 아이디를 저장하도록 했습니다.

./skin/member/register_update.skin.php
<?
if (!defined("_GNUBOARD_")) exit;

#닉네임 변경이력 출력을 위해서...
if ($w == "")
{
$sql = " insert into `g4_nick_career`
set mb_id       = '$_POST[mb_id]',
gmc_nick     = '$mb_nick',
gmc_w_id     = '$_POST[mb_id]',
gmc_datetime = '$g4[time_ymdhis]',
gmc_ip       = '$_SERVER[REMOTE_ADDR]' ";
sql_query($sql);
} else if ($w == "u") {
$sql = " update `g4_nick_career`
set mb_id       = '$_POST[mb_id]',
gmc_nick     = '$mb_nick',
gmc_w_id     = '$_POST[mb_id]',
gmc_datetime = '$g4[time_ymdhis]',
gmc_ip       = '$_SERVER[REMOTE_ADDR]' ";
sql_query($sql);
}
?>


./bbs/career.php
<?
include_once("./_common.php");

if (!$member[mb_id])
{
alert_close("회원만 이용하실 수 있습니다.");
}

if (!$member[mb_open] && $is_admin != "super" && $member[mb_id] != $mb_id)
{
alert_close("자신의 정보를 공개하지 않으면 다른분의 정보를 조회할 수 없습니다.\\n\\n정보공개 설정은 회원정보수정에서 하실 수 있습니다.");
}

$mb = get_member($mb_id);

if (!$mb[mb_id])
{
alert_close("회원정보가 존재하지 않습니다.\\n\\n탈퇴하였을 수 있습니다.");
}

if (!$mb[mb_open] && $is_admin != "super" && $member[mb_id] != $mb_id)
{
alert_close("정보공개를 하지 않았습니다.");
}

$g4[title] = $mb[mb_nick] . "님의 이력보기";
include_once("$g4[path]/head.sub.php");

$career = " select count(*) as cnt from g4_nick_career where mb_id = '$mb[mb_id]' ";
$cot = sql_fetch($career);
$total_count = number_format($cot[cnt]);
?>
<? if ($total_count > 0) { ?>
<div style="clear:both; text-align:right; padding:5 5 0 0;"><?=$total_count?>회 변경</div>
<? } ?>
<div style="clear:both; padding:5;">
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr height="28" bgcolor="#D1D1D1" align="center">
<td width="120"><strong>아이디</strong></td>
<td width="150"><strong>닉네임</strong></td>
<td><strong>변경일자</strong></td>
</tr>
<tr><td height="1" colspan="3" bgcolor="#FFFFFF"></td></tr>
<tr><td height="1" colspan="3" bgcolor="#858585"></td></tr>
<?
$sql = " select * from g4_nick_career where mb_id = '$mb[mb_id]' order by gmc_id desc ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
echo "<tr height=\"26\" align=\"center\">";
echo "<td width=\"120\">";
if ($i == 0) { echo "<span style=\"color:#FF3333;\">></span>  "; }
echo "$row[mb_id]</td>";
echo "<td width=\"150\">$row[gmc_nick]</td>";
echo "<td>$row[gmc_datetime]</td>";
echo "</tr>\n";
echo "<tr><td colspan=\"3\" height=\"1\" bgcolor=\"#e1e1e1\"></td></tr>\n";
}
if ($total_count == 0)
{
echo "<tr><td height=\"100\" colspan=\"3\" align=\"center\">닉을 변경한 내역이 없습니다.</td></tr>";
echo "<tr><td colspan=\"3\" height=\"1\" bgcolor=\"#e1e1e1\"></td></tr>";
}
?>
<tr><td height="30" colspan="3" align="center"><a href="javascript:window.close();">닫기</a></td></tr>
</table>
</div>
<?
include_once("$g4[path]/tail.sub.php");
?>


./js/sideview.js

// 닉이력 적당한 위치에 추가
if (mb_id) 
  this.insertTail("career", "<a href=\"javascript:win_career('"+mb_id+"');\">회원이력보기</a>");

48라인과 54라인 function 부분
, career 추가


./common.js

// 닉이력 적당한 위치에 추가
function win_career(mb_id)
{
  win_open(g4_path+"/" + g4_bbs + "/career.php?mb_id="+mb_id, 'winCareer', 'left=50,top=50,width=500,height=400,scrollbars=1');
}

잠깐 만져보니 잘되고 있는것 같은데 혹 에러가 있을지는...
IE6과 크롬 그리고 FIREFOX3에서 테스트 해봤습니다.
추천
2

댓글 5개

전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

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