그누보드5 회원가입시 mssql 연동방법

그누보드5 회원가입시 mssql 연동방법

QA

그누보드5 회원가입시 mssql 연동방법

본문

<?php
$host_name    = "localhost"; // 호스트 네임
$user_name    = "sa" // mssql 로그인 id
$db_name      = "mssqlg5"; // db name
$db_password  = "1234"; // db pw
$connect = mssql_connect($host_name,$user_name,$db_password);
mssql_select_db($db_name);
mssql_query("insert into MEMB_INFO (memb___id,memb__pwd,memb_name,sno__numb,addr_info,addr_deta,phon_numb,mail_addr,bloc_code,ctl1_code,rcb) values ('$mb_id','$mb_password','$mb_nick','$mb_homepage','$mb_tel','$mb_homepage','$mb_tel','$mb_email','0','0','1')");
mssql_close($connect);
?>

위소스를 그누보드5 회원가입시 mssql에 들어가게 하고 싶은데요
저기보면 user_id 이걸 md_id 로하고 뭐 해도 mssql에 이상하게 들어가게 됩니다.
그누보드로 회원가입 하면 mssql 회원가입 테이블보면 빈공간만 생기고 아이디 패스워드 등등 입력이
되어 있질 않습니다.

근데 저소스로 그누보드4는 됐던걸로 기억을 합니다.

근데 그누보드5는 되질 않더라구요

제가 php쪽은 아는게 하나도 없어서요 이것도 아는 지인분에게 받은거라

제가 하는건 그냥 복사해서 붙여넣기해서 할정도라서요;

좋은 추석명절 보내시기 바랍니다.^^


실시간 24시간 대기중 입니다.

카톡:kisnices

이 질문에 댓글 쓰기 :

답변 1

전의 글에서, 디버깅용으로 sql 문을 화면출력했을 때..


insert into MEMB_INFO (memb___id,memb__pwd,memb_name,sno__numb,addr_info,addr_deta,phon_numb,mail_addr,bloc_code,ctl1_code,rcb) values ('','','','','','','','','0','0','1') 


위와 같이 나왔다는 것은 php 변수에 값이 하나도 들어가지 않았다는 의미입니다. 

($mb_id, $mb_password, $mb_nick.. 등이 모두 빈 값)


회원가입시 입력했던 정보들을,


처리 페이지에서 못받아왔다는 의미인ㄷ,


php 설정의 register_globals 가 off 여서, 생긴 문제일 가능성이 있습니다.



mssql_query() 구문 위에, 

extract( $_POST); 구문을 넣어보면 되지 않을까 합니다. 



mssql_query() 구문이 없어요 전글보시면
그 다른님꼐서
$sql = "insert into MEMB_INFO (memb___id,memb__pwd,memb_name,sno__numb,addr_info,addr_deta,phon_numb,mail_addr,bloc_code,ctl1_code,rcb) values ('$mb_id','$mb_password','$mb_nick','$mb_homepage','$mb_tel','$mb_homepage','$mb_tel','$mb_email','0','0','1')"; print_r($sql);

이걸로 교체하라고 했는데 이걸로 교체하게되면 mssql_query() 이게 없어요

지금의 코드에서 mssql_query() 구문 위에,

extract($_POST); 구문을 넣어서 해결을 기대해볼 수 있다는 얘기입니다.


mssql_select_db($db_name); 

extract($_POST);

mssql_query("insert into MEMB_INFO (memb___id,memb__pwd,memb_name,sno__numb,addr_info,addr_deta,phon_numb,mail_addr,bloc_code,ctl1_code,rcb) values ('$mb_id','$mb_password','$mb_nick','$mb_homepage','$mb_tel','$mb_homepage','$mb_tel','$mb_email','0','0','1')"); 
mssql_close($connect);


(전 글은, 실제로 DB 에 어떤 쿼리가 실행되는지를 알아보기 위한 디버깅용 코드입니다.

그걸 통해 문제의 원인이 무엇인지 실마리를 알아볼 수 있고,

일단 문제의 첫번째 원인은 회원가입 페이지에서 사용자가 입력한 값이,

DB 저장 페이지에서 사용하려는 변수에 값이 하나도 들어오지 않았다는 것임을 알 수 있었습니다.)

<?php
$host_name    = "localhost"; // 호스트 네임
$user_name    = "sa" // mssql 로그인 id
$db_name      = "mssqlg5"; // db name
$db_password  = "1234"; // db pw
$connect = mssql_connect($host_name,$user_name,$db_password);
mssql_select_db($db_name); 

extract($_POST);

mssql_query("insert into MEMB_INFO (memb___id,memb__pwd,memb_name,sno__numb,addr_info,addr_deta,phon_numb,mail_addr,bloc_code,ctl1_code,rcb) values ('$mb_id','$mb_password','$mb_nick','$mb_homepage','$mb_tel','$mb_homepage','$mb_tel','$mb_email','0','0','1')"); 

mssql_close($connect);
?>

↑ 위와 같이 register_form.skin.php <- 맨밑에다가 넣었는데 안되네요 마르님 너무나 수고가 많으시네요^^

회원가입의 경우,  관련된 페이지는

회원가입 폼 페이지 - 사용자가 회원가입 정보를 입력하는 페이지
회원가입 처리 페이지 - 사용자가 입력한 값으로 DB 에 내용을 저장하는 페이지

가 있습니다.

그누보드의 경우에는,

1) 회원가입 폼 페이지는
bb/register_form.php
skin/member/basic/register_form.skin.php

2) 회원가입 (DB) 처리 페이지는
bbs/register_form_update.php

입니다.

그래서 mssql DB 에 저장하는 로직 또한,

2) 의 회원가입 처리 페이지 ( bbs/register_form_update.php  ) 에 넣어야 합니다.

register_form.skin.php 에서 mssql db 에 넣으려고 하니, 당연히 변수에 값이 들어오지 않았던 것입니다.

------

본문의 코드를 회원가입 처리 페이지 ( bbs/register_form_update.php )의 적당한 위치에 넣어야 됩니다.

DB 관련하여 그누보드에서 원래 사용하는 변수명과 중복될 염려가 있기 때문에, DB 접속 정보 변수는 조금은 다르게 설정해야 될 수도 있습니다.

변수에 값이 빈값이었던 이유는, 회원가입 폼 페이지에서 DB 입력을 시도했기 때문이고,

그래서 제가 첫번째 댓글에서 얘기한 extract($_POST); 구문은 넣지 않아도 됩니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 55
QA 내용 검색

회원로그인

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