닉네임 변경 이력 질문드려요~~
본문
https://sir.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=17568
izen 님이 쓰셨던 글을 보고 하고 있는데요
CREATE TABLE g5_nick_career (
gmc_id int(11) NOT NULL auto_increment,
mb_id varchar(20) NOT NULL default '',
gmc_nick varchar(100) NOT NULL default '',
gmc_w_id varchar(20) NOT NULL default '',
gmc_datetime datetime NOT NULL default '0001-10-01 00:00:00',
gmc_ip varchar(255) NOT NULL default '',
PRIMARY KEY (gmc_id`,`mb_id`)
);
길이 어쩌구랑 데이트타입의 디폴트 값이 잘못 되었다고 테이블이 안맹그러 지길래 위처럼 수정 해서
myadmin 에서 그냥 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("정보공개를 하지 않았습니다.");
}
$g5['title'] = $mb['mb_nick'] . "님의 이력보기";
include_once(G5_THEME_PATH."/head.sub.php");
$career = " select count(*) as cnt from g5_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 g5_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(G5_THEME_PATH."/tail.sub.php");
?>
member/basic/register_update.skin.php 만들고 아래의 내용을 추가
<?
if (!defined("_GNUBOARD_")) exit;
#닉네임 변경이력 출력을 위해서...
if ($w == "")
{
$sql = " insert into `g5_nick_career`
set mb_id = '$_POST[mb_id]',
gmc_nick = '$mb_nick',
gmc_w_id = '$_POST[mb_id]',
gmc_datetime = '$g5[time_ymdhis]',
gmc_ip = '$_SERVER[REMOTE_ADDR]' ";
sql_query($sql);
} else if ($w == "u") {
$sql = " update `g5_nick_career`
set mb_id = '$_POST[mb_id]',
gmc_nick = '$mb_nick',
gmc_w_id = '$_POST[mb_id]',
gmc_datetime = '$g5[time_ymdhis]',
gmc_ip = '$_SERVER[REMOTE_ADDR]' ";
sql_query($sql);
}
?>
outlogin.skin.2.php 요기에
이걸 추가해
<a href="<?php echo G5_BBS_URL ?>/career.php?mb_id='<?php echo $member['mb_id']?>' ">변경이력</a>
내역을 확인 해보려고 하는데 입력 자체가 안되더라구요
정보수정에서 닉네임을 변경을 해도 안되고 myadmin 에서 sql 로 넣어도 정보가 안들어가지던데
어디가 틀린지 말씀 해주실수 있나요??
답변 2
PRIMARY KEY (`gmc_id`,`mb_id`)
여기 백틱 하나 빠진 것 같네요.
두가지문제가 의심되네요
첫째로
insert 나 update 를 실행하는 입력 조건인 if ($w == "") 또는 if ($w == "u") 가
제대로 분기가 안되서 아예 sql_query($sql); 이쪽까지 도달 못했을 수도 있으니 확인해 보셔야 할듯 해요.
둘째로 쿼리문을 아래와 같은 형식으로 변경해 보세요.
$sql = " insert into `g5_nick_career`
set mb_id = '{$_POST[mb_id]}',
gmc_nick = '$mb_nick',
gmc_w_id = '{$_POST[mb_id]}',
gmc_datetime = '{$g5[time_ymdhis]}',
gmc_ip = '{$_SERVER[REMOTE_ADDR]}' ";