회원가입시 회원정보 입력 시 다중 테이블에 db 값 페이지에서 회원정
본문
안녕하세요.
회원가입 페이지에서 그누보드에서 제공하는 회원 정보 이외에
추가적으로 회원 정보를 입력칸을 만들고,
추가적인 회원 정보는 새로운 테이블 g5_member_addinfo 라는 테이블을 만들어
그 테이블에 회원 정보를 insert 할려고 합니다.
그래서, 회원가입 페이지에서 회원 정보를 입력하면
g5_member 테이블과 새로 만든 테이블 g5_member_addinfo 테이블
동시에 회원 정보 db 값을 insert 되게 할려고 합니다.
그래서 밑에처럼 했는데 안되네요.
회원가입 페이지에서 정보를 입력하고 회원가입 완료 버튼을 누르면 회원 가입 완료 페이지로 이동안하고
index.php 페이지로 이동하면서 회원가입이 안되네요.
고수님들의 감사한 조언 부탁드립니다.
감사합니다.
Mysql 신규 테이블 g5_member_addinfo
CREATE TABLE `g5_member_addinfo` (
`mb_no` INT(11) NOT NULL AUTO_INCREMENT,
`mb_id` VARCHAR(20) NOT NULL DEFAULT '' COLLATE 'utf8_general_ci',
`mb_datetime` TIMESTAMP NOT NULL DEFAULT current_timestamp(),
`mb_update_ip` VARCHAR(255) NOT NULL DEFAULT '' COLLATE 'utf8_general_ci',
`mb_product_info` VARCHAR(255) NOT NULL DEFAULT '' COLLATE 'utf8_general_ci',
`mb_product_sn` VARCHAR(255) NOT NULL DEFAULT '' COLLATE 'utf8_general_ci',
`mb_using_time` VARCHAR(255) NOT NULL DEFAULT '' COLLATE 'utf8_general_ci',
PRIMARY KEY (`mb_no`) USING BTREE,
UNIQUE INDEX `mb_id` (`mb_id`) USING BTREE,
INDEX `mb_datetime` (`mb_datetime`) USING BTREE
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;
이 것은 HeidiSQL 에서 열 추가 버튼을 눌러서 만들었습니다.
theme/skin/member/basic/register_form.skin.php 파일에는
<form id="fregisterform" name="fregisterform" action="<?php echo $register_action_url ?>" onsubmit="return fregisterform_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off">
<input type="hidden" name="w" value="<?php echo $w ?>">
<input type="hidden" name="url" value="<?php echo $urlencode ?>">
중간 생략
회원정보 추가 부분
<table class="peinfo01">
<thead>
<tr>
<th class="peinfo01-a01">
<h3>상품 정보</h3>
</th>
</tr>
</thead>
</table>
<br>
<table class="peinfo01">
<thead>
<tr>
<th class="peinfo01-a01">
어떤 종류의 제품을 사용하고 계십니까?
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="peinfo01-a01">
<input type="radio" name="mb_product_info" value="product A"<?php echo ($member['mb_product_info'] == "product A") ? " checked" : "";?>> product A
<input type="radio" name="mb_product_info" value="product B"<?php echo ($member['mb_product_info'] == "product B") ? " checked" : "";?>> product B
<input type="radio" name="mb_product_info" value="product C"<?php echo ($member['mb_product_info'] == "product C") ? " checked" : "";?>> product C
</td>
</tr>
</tbody>
</table>
<br>
<table class="peinfo01">
<thead>
<tr>
<th class="peinfo01-a01">
제품 시리얼넘버
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="peinfo01-a01">
<input type="text" name="mb_product_sn" value="<?php echo $member['mb_product_sn'] ?>" id="mb_product_sn" class="frm_input" size="50">
</td>
</tr>
</tbody>
</table>
<br>
<table class="app_peinfo01">
<thead>
<tr>
<th class="app_peinfo01-a01">
제품을 사용하고 계신 기간은 어떻게 되십니까?
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="peinfo01-a01">
<input type="radio" name="mb_using_time" value="1개월 미만"<?php echo ($member['mb_using_time'] == "1개월 미만") ? " checked" : "";?>> 1개월 미만
<input type="radio" name="mb_using_time" value="3개월 미만"<?php echo ($member['mb_using_time'] == "3개월 미만") ? " checked" : "";?>> 3개월 미만
<input type="radio" name="mb_using_time" value="6개월 미만"<?php echo ($member['mb_using_time'] == "6개월 미만") ? " checked" : "";?>> 6개월 미만
<input type="radio" name="mb_using_time" value="1년 이상"<?php echo ($member['mb_using_time'] == "1년 이상") ? " checked" : "";?>> 1년 이상
</td>
</tr>
</tbody>
</table>
추가 회원정보 입력 끝
중간 생략
<div class="btn_confirm">
<a href="<?php echo G5_URL ?>" class="btn_cancel">취소</a>
<input type="submit" value="<?php echo $w==''?'회원가입':'정보수정'; ?>" id="btn_submit" class="btn_submit" accesskey="s">
</div>
</form>
이렇게 추가 했습니다.
그리고,
bbs/register_form_update,php 파일에는 3 부분을 추가했습니다.
추가부분 1
$mb_password = isset($_POST['mb_password']) ? trim($_POST['mb_password']) : '';
$mb_password_re = isset($_POST['mb_password_re']) ? trim($_POST['mb_password_re']) : '';
$mb_name = isset($_POST['mb_name']) ? trim($_POST['mb_name']) : '';
$mb_nick = isset($_POST['mb_name']) ? trim($_POST['mb_name']) : '';
중간생략
$mb_10 = isset($_POST['mb_10']) ? trim($_POST['mb_10']) : "";
//추가부분 시작
$mb_product_info = isset($_POST['mb_product_info']) ? trim($_POST['mb_product_info']) : "";
$mb_product_sn = isset($_POST['mb_product_sn']) ? trim($_POST['mb_product_sn']) : "";
$mb_using_time = isset($_POST['mb_using_time']) ? trim($_POST['mb_using_time']) : "";
//추가부분 끝
$mb_name = clean_xss_tags($mb_name);
$mb_email = get_email_address($mb_email);
추가부분 2
if ($w == '') {
$sql = " insert into {$g5['member_table']}
set mb_id = '{$mb_id}',
mb_password = '".get_encrypt_string($mb_password)."',
mb_name = '{$mb_name}',
중간생략
mb_10 = '{$mb_10}'
{$sql_certify} ";
//추가부분
$sql = " insert into {$g5['member_addinfo_table']}
set mb_id = '{$mb_id}',
mb_product_info = '{$mb_product_info}',
mb_product_sn = '{$mb_product_sn}',
mb_using_time = '{$mb_using_time}',
{$sql_certify} ";
//추가부분 끝
추가부분 3
$sql = " update {$g5['member_table']}
set mb_nick = '{$mb_nick}',
mb_mailling = '{$mb_mailling}',
mb_sms = '{$mb_sms}',
중간생략
mb_10 = '{$mb_10}'
{$sql_password}
{$sql_nick_date}
{$sql_open_date}
{$sql_email_certify}
{$sql_certify}
where mb_id = '$mb_id' ";
sql_query($sql);
//추가부분
$sql = " update {$g5['member_product_info_table']}
set mb_product_info = '{$mb_product_info}',
mb_product_sn = '{$mb_product_sn}',
mb_using_time = '{$mb_using_time}',
where mb_id = '$mb_id' ";
sql_query($sql);
//추가부분 끝
이렇게 했습니다.
조언 부탁드립니다.
감사합니다.
!-->!-->!-->!-->!-->답변 6
추가부분2 에서 $sql_certify 부분이 문제가 아닐까 생각되네요.
본인확인 사용안하면 빈값이 될거고 바로 위 using_time 뒤에 쉽표( , ) 가 들어가 있어서 오류난 듯 보입니다.
mb_using_time = '{$mb_using_time}',
{$sql_certify} ";
아래처럼 해서 쿼리문 확인해보세요.
echo $sql;
exit;
다른 부분은 문제가 없어보이고..
{$g5['member_addinfo_table']}
이 상수를 할당하지 않으신것 같은데요..
그냥
$sql = " insert into {$g5['member_addinfo_table']}
이걸
$sql = " insert into g5_member_addinfo
이걸로 바꿔보세요.
data 폴더에 dbconfig.php 파일 열어보시면 금방 아실거에요.
sql_query($sql,true); 이런식으로 쿼리 하셔서 에러는 체크해 보세요
근데 애초에 추가로 입력받을 정보가 몇개 안되면 여분필드 이용하면 될거 같은데, 굳이 테이블을 따로 만들어서 입력받아야 하는 이유가 있나요?