회원가입시 자동 게시글 작성

회원가입시 자동 게시글 작성

QA

회원가입시 자동 게시글 작성

본문

회원가입시 게시글을 자동으로 작성하게 하고 싶습니다.

 

실제 작동되고 있는 사이트 주소 찍어 드릴게요.. 고수님들의 조언 기다립니다.

 

http://www.aces-stock.net

 

위 주소로 이동하여 회원가입하면,

 

http://www.aces-stock.net/bbs/board.php?bo_table=register&sca=선물옵션

 

이 게시판에 자동으로 게시글이 작성되어지고,

 

게시글 작성자는 회원가입한 가입자가 작성한 것으로 보여지게 됩니다.

 

해당 게시글은 비밀글 형식으로 작성한 회원과 관리자만 볼 수 있는 권한을 갖고 있는 게시판 이더군요..

 

제 나름의 생각으로는, 회원가입시 register_form_skin.php 파일에서 회원가입완료 버튼이 눌러지면

 

register_form_update.php 파일이 실행됨과 동시에, 글쓰기 기능이 실행되는것 같은데,

 

어떻게 구현을 해야할지 막막하여 이렇게 질문을 남기네요..

 

지금 bbs/write.php 파일을 뜯어 살펴보고 있는데,

 

어디서 어떻게 건드려봐야 할지... 게시글 작성 관련 파일들을 별도로 생성하여 해당 글쓰기 기능이 실행되도록

 

코딩을 해야하는거 같기도 한데.. 자세한 방법을 모르겠네요

 

제 질문 보시는 고수분들중.. 방법을 아시는 분이 계시면, 도움좀 주세요~

 

코딩관련 개발방법 및 견적이 발생한다면 따로 연락처 남겨 주시면 연락 드리겠습니다.

 

그럼 많은 도움 부탁드릴께요~

이 질문에 댓글 쓰기 :

답변 4

일단  이건 스킨이 아니므로  무조건 해당파일을 백업해 놓고 작업하시길 바래요.

 

bbs/register_form_update.php

 

파일에서

 

256번 라인쯤에

sql_query($sql);  로 회원정보 집어넣는구문이 있습니다.

그 다음에 추가하세요.

아래쪽에 변수라던가 손설정하시면되고( 관리자 세팅으로 할수도있긴헌데 시간 오래걸립니다. QnA치고-_-..  )

 

여기에 추가적으로 몇개 더 붙는다 보면됩니다.

지금껄로는 라테스트에는 안나오는데

뭐 빼먹어서 그런지 흠....

 

 그누보드만 하고 그런편은 아닌지라  변수 충돌이라던가의 위험이 있는 관계상

앞에다가 x를 붙여넣는 식으로 처리했습니다.  예) mb_id  같은걸  xmb_id

 

 

 

 

///회원가입과 함께 글쓰기

$xwrite_table  = "g5_write_free";  //넣을 테이블명  저같은경우는 테스트로 자유게시판 사용.

$xca_name = "";  //카테고리가 있다면 카테고리명

$xwr_option = "";  //옵션

$xwr_subject = $mb_name." 고객님 접수되었습니다.";   // 이름이 아니라 닉으로 했다면 닉으로 바꿈. 

$xwr_content = " 내용??  "; //내용 넣는부분

$xwr_link1 = ""; //있으면 넣으시고 없으시면 패스

$xwr_link2 = ""; //있으면 넣으시고 없으시면 패스

$xwr_password = ""; //비번은 설정하셔도 되고 아니면 패스.  근데 게시판보니까 비번은 거세요.

$xwr_name = "admin";  //글쓴사람인데  관리자면 admin이라던가..  회원명으로 하시려면 $mb_name

$xwr_email = "";   // 회원명으로 할경우라면  위에있는 $mb_email 을 사용.   봇개념이면 걍 아무거나 넣어도 상관은...

$xwr_homepage = "";  //이것도 같은 개념으로 보면됩니다.

 

$xwr_1 = "" ;     //스킨에  wr_넘버  를 사용하는거라면 그거에 맞게  항목으로 넣으세요.

$xwr_2 = "" ;

$xwr_3 = "" ;

$xwr_4 = "" ;

$xwr_5 = "" ;

$xwr_6 = "" ;

$xwr_7 = "" ;

$xwr_8 = "" ;

$xwr_9 = "" ;

$xwr_10 = "";

 

 

$xwr_num = get_next_num($xwrite_table);

     $xwr_reply = '';

$sql2 = " insert into $xwrite_table

                set wr_num = '$xwr_num',

                     wr_reply = '$xwr_reply',

                     wr_comment = 0,

                     ca_name = '$xca_name',

                     wr_option = '$html,$secret,$mail',

                     wr_subject = '$xwr_subject',

                     wr_content = '$xwr_content',

                     wr_link1 = '$xwr_link1',

                     wr_link2 = '$xwr_link2',

                     wr_link1_hit = 0,

                     wr_link2_hit = 0,

                     wr_hit = 0,

                     wr_good = 0,

                     wr_nogood = 0,

                     mb_id = '{$mb_id}',

                     wr_password = '$xwr_password',

                     wr_name = '$xwr_name',

                     wr_email = '$xwr_email',

                     wr_homepage = '$xwr_homepage',

                     wr_datetime = '".G5_TIME_YMDHIS."',

                     wr_last = '".G5_TIME_YMDHIS."',

                     wr_ip = '{$_SERVER['REMOTE_ADDR']}',

                     wr_1 = '$xwr_1',

                     wr_2 = '$xwr_2',

                     wr_3 = '$xwr_3',

                     wr_4 = '$xwr_4',

                     wr_5 = '$xwr_5',

                     wr_6 = '$xwr_6',

                     wr_7 = '$xwr_7',

                     wr_8 = '$xwr_8',

                     wr_9 = '$xwr_9',

                     wr_10 = '$xwr_10' ";

    sql_query($sql2);

$wr_id = "1";  //쓴사람의 아이디인데...  봇개념이면 1(관리자)넣으셔도..  개인이 글쓴모양새라면 약간 로직추가.

    

    // 새글 INSERT   

$bo_table = "free"; //해당 테이블관련  저는 테스트로 자유게시판에 꼽습니다. 

    sql_query(" insert into {$g5['board_new_table']} ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '{$bo_table}', '{$wr_id}', '{$wr_id}', '".G5_TIME_YMDHIS."', '{$member['mb_id']}' ) ");

 

자동기입의 경우는 솔직히 게시글 뻥튀기에 목적이 있는지라..  정작 본인이 신청내용을 볼일이 없는관계상.  admin으로 글쓰기에 집어넣었는데  회원이 자기껄 보게하려면(봇으로 생성된 선물신청을 읽으려하려는지는...)  위에 주석설명처럼 회원넘버라던가 회원아이디로 바꾸시면되요.

개인연습용 호스팅인 nugkud.cafe24.com/gnb5/gnb5/  에서  테스트는 해봤습니다.
회원가입하면 자유게시판에 글써지게.  라테스트에는 안뽑히던데  위 코드 살짝 손보시면 될듯.

소중한 답변 정말 감사합니다.

register_form_update.php 파일상에서 쿼리값 추가로 기능실현이 될수 있는 거였군요...

NugKud님의 해박한 지식에 감탄 하였습니다.

적용전 답글 보고 감사댓글 먼저 달아요^^

그럼 소중한 답변글 감사히 받겠습니다~

아.. 소스 적용하다보니,
$xwrite_table  = "g5_write_free";  //넣을 테이블명  저같은경우는 테스트로 자유게시판 사용.
를 사용하던데.. 이거 그누보드5 소스인건가요??

그누 4에서 적용하려 하는데.. g4_write_free 로 적용해도 바로 되겠지요??

free는 게시판 id를 말하는 거죠?? free가 아닌 register 게시판id 라면 변경하여 사용하는걸로...

맞는거죠?

아. 지금 저거는 그누보드5꺼에요.  그누보드4랑 5의 DB 그리고 함수콜하는명칭이 크게 달라지지 않았다면 그대로 먹힐듯.  free는 게시판 id에요.  기본 설치하니까 자유게시판이 free로 되어있더라구요.  해당구문은  DB를 보시고  들어갈 테이블(해당 게시판의 테이블) 명칭 적으시면 될꺼에요.

아.. 겨우 해결은 됐어요~
latest에서 출력되도록 수정잡았네요..^^;

근데.. ** 로 표시하는 문자열 변환은 이제 부터 시작이네요 ㅎ

php 문자열 변환으로 지금 열심히 공부중인데..

힌트좀 주실수 있나요??ㅎ

문자열 변환은 보통은 뒷자리를 끊는다거나  앞자리를 끊는게 일반적이니  앞4글자만 불러오고 무조건 *4개를 붙이셔도 되고.. 이거는 하고싶으신대로 하시면되요.  방법은    1.문자열을 앞4글자를 떼어와서 변수(XX)에 넣어놓음(이게 가능한 이유가 아이디 가입 최소글자에 맞추시면 됩니다.)  2. XX뒤에 ****를 붙입니다.  이런식이에요.

한글 이름일 경우는  최소2자 니까.    성[김,이,박,최 등등..] + **(별별)  이렇게  하셔도 되고  3글자를 기준으로 하시려면 앞2글자를 떼어온후  뒤에 *(별)을 붙여서 가공하시면되요.  sql로 긁어오면서 바꾼상태로 가져오는게 있긴헌데  그냥 php구문에서 바꾼게 더 낫긴 하더라구요. 속도측면에서도.


///회원가입과 함께 글쓰기
 $xwrite_table  = "g5_write_register";  //넣을 테이블명  저같은경우는 테스트로 자유게시판 사용.
 $xca_name = "";  //카테고리가 있다면 카테고리명
 $xwr_option = "";  //옵션
 $xwr_subject = $mb_nick." 고객님 접수되었습니다.";   // 이름이 아니라 닉으로 했다면 닉으로 바꿈. 
 $xwr_content = "접수심사중입니다.<br />관리자가 최종승인후 답변 드리겠습니다."; //내용 넣는부분
 $xwr_link1 = ""; //있으면 넣으시고 없으시면 패스
 $xwr_link2 = ""; //있으면 넣으시고 없으시면 패스
 $xwr_password = ""; //비번은 설정하셔도 되고 아니면 패스.  근데 게시판보니까 비번은 거세요.
 $xwr_name = "$mb_name";  //글쓴사람인데  관리자면 admin이라던가..  회원명으로 하시려면 $mb_name
 $xwr_email = "$mb_email";   // 회원명으로 할경우라면  위에있는 $mb_email 을 사용.   봇개념이면 걍 아무거나 넣어도 상관은...
 $xwr_homepage = "$mb_homepage";  //이것도 같은 개념으로 보면됩니다.
 $xwr_1 = "인터넷" ;     //스킨에  wr_넘버  를 사용하는거라면 그거에 맞게  항목으로 넣으세요.
 $xwr_2 = "접수대기중" ;
 $xwr_3 = "" ;
 $xwr_4 = "" ;
 $xwr_5 = "" ;
 $xwr_6 = "" ;
 $xwr_7 = "" ;
 $xwr_8 = "" ;
 $xwr_9 = "" ;
 $xwr_10 = "";
 $xwr_num = get_next_num($xwrite_table);
 $xwr_reply = "";
 $sql = " insert into $xwrite_table
                set wr_num = '$xwr_num',
                    wr_reply = '$xwr_reply',
                    wr_comment = 0,
                    ca_name = '$xca_name',
                    wr_option = '$html,$secret,$mail',
                    wr_subject = '$xwr_subject',
                    wr_content = '$xwr_content',
                    wr_link1 = '$xwr_link1',
                    wr_link2 = '$xwr_link2',
                    wr_link1_hit = 0,
                    wr_link2_hit = 0,
                    wr_hit = 0,
                    wr_good = 0,
                    wr_nogood = 0,
                    mb_id = '{$mb_id}',
                    wr_password = '$xwr_password',
                    wr_name = '$xwr_name',
                    wr_email = '$xwr_email',
                    wr_homepage = '$xwr_homepage',
                    wr_datetime = '".G5_TIME_YMDHIS."',
                    wr_last = '".G5_TIME_YMDHIS."',
                    wr_ip = '{$_SERVER['REMOTE_ADDR']}',
                    wr_1 = '$xwr_1',
                    wr_2 = '$xwr_2',
                    wr_3 = '$xwr_3',
                    wr_4 = '$xwr_4',
                    wr_5 = '$xwr_5',
                    wr_6 = '$xwr_6',
                    wr_7 = '$xwr_7',
                    wr_8 = '$xwr_8',
                    wr_9 = '$xwr_9',
                    wr_10 = '$xwr_10' ";
    sql_query($sql);
    $xwr_id = mysql_insert_id();  //쓴사람의 아이디인데...  봇개념이면 1(관리자)넣으셔도..  개인이 글쓴모양새라면 약간 로직추가.
 
 // 부모 아이디에 UPDATE
    sql_query("update $xwrite_table set wr_parent = '$xwr_id' where wr_id = '$xwr_id'");
 
 // 새글 INSERT
 $bo_table = "register"; //해당 테이블관련  저는 테스트로 자유게시판에 꼽습니다. 
    sql_query(" insert into {$g5['board_new_table']} ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '{$bo_table}', '{$xwr_id}', '{$xwr_id}', '".G5_TIME_YMDHIS."', '{$member['mb_id']}' ) ");
    // 게시글 1 증가
    sql_query("update {$g5['board_table']} set bo_count_write = bo_count_write + 1 where bo_table = '{$bo_table}'");​

 

bbs/register_form_update.php 파일에  223라인 sql_query($sql);

 

다음에 삽입해서 사용해보니...

 

일단 원하는 게시판에 게시글 작성은 되는데요..

 

latest 최신글에 노출되지는 않더군요..

 

원인을 파악하려고 여러방면으로 소스수정 해보았는데..

 

wr_parent 영향인것으로 제 나름 결론이 나왔구요..

 

사이트 관리자로 로그인 해서 해당 게시판에서 게시판 수정 들어가보면,

 

게시판 기본설정에 "카운트 조정" 영역이 있는데요..

 

게시판 목록에서 게시글 번호가 맞지 않으면 체크하라고 되어 있는 부분을 체크하고

 

확인을 눌러 게시판 수정을 하면,

 

정상적으로 latest 최신글에서도 노출되는것을 확인할 수 있었어요..

 

Mysql 에서도 확인해보니...

 

wr_id랑 wr_parent 값이 동일하게 저장되어져야 하는데..

 

두개 값이 다르니 발생하는 문제점 같구요..

 

// 부모 아이디에 UPDATE
    sql_query("update $xwrite_table set wr_parent = '$xwr_id' where wr_id = '$xwr_id'");

 

이 소스로 이부분이 수정되어 질 줄 알았는데.. 아무리 찾아봐도 되지를 않네요..ㅜㅜ

 

이부분 같이 해결좀 해주세요~^^;

 

 

 

위 내용대로 했는데 등록이 되지 않습니다.
도움좀 부탁드립니다.

 


///회원가입과 함께 글쓰기
 $xwrite_table  = "g5_write_free";  //넣을 테이블명  저같은경우는 테스트로 자유게시판 사용.
 $xca_name = "";  //카테고리가 있다면 카테고리명
 $xwr_option = "";  //옵션
 $xwr_subject = $mb_nick." 고객님 접수되었습니다.";   // 이름이 아니라 닉으로 했다면 닉으로 바꿈.
 $xwr_content = "접수심사중입니다.<br />관리자가 최종승인후 답변 드리겠습니다."; //내용 넣는부분
 $xwr_link1 = ""; //있으면 넣으시고 없으시면 패스
 $xwr_link2 = ""; //있으면 넣으시고 없으시면 패스
 $xwr_password = ""; //비번은 설정하셔도 되고 아니면 패스.  근데 게시판보니까 비번은 거세요.
 $xwr_name = "$mb_name";  //글쓴사람인데  관리자면 admin이라던가..  회원명으로 하시려면 $mb_name
 $xwr_email = "$mb_email";   // 회원명으로 할경우라면  위에있는 $mb_email 을 사용.   봇개념이면 걍 아무거나 넣어도 상관은...
 $xwr_homepage = "$mb_homepage";  //이것도 같은 개념으로 보면됩니다.
 $xwr_1 = "인터넷" ;     //스킨에  wr_넘버  를 사용하는거라면 그거에 맞게  항목으로 넣으세요.
 $xwr_2 = "접수대기중" ;
 $xwr_3 = "" ;
 $xwr_4 = "" ;
 $xwr_5 = "" ;
 $xwr_6 = "" ;
 $xwr_7 = "" ;
 $xwr_8 = "" ;
 $xwr_9 = "" ;
 $xwr_10 = "";
 $xwr_num = get_next_num($xwrite_table);
 $xwr_reply = "";
 $sql = " insert into $xwrite_table
                set wr_num = '$xwr_num',
                    wr_reply = '$xwr_reply',
                    wr_comment = 0,
                    ca_name = '$xca_name',
                    wr_option = '$html,$secret,$mail',
                    wr_subject = '$xwr_subject',
                    wr_content = '$xwr_content',
                    wr_link1 = '$xwr_link1',
                    wr_link2 = '$xwr_link2',
                    wr_link1_hit = 0,
                    wr_link2_hit = 0,
                    wr_hit = 0,
                    wr_good = 0,
                    wr_nogood = 0,
                    mb_id = '{$mb_id}',
                    wr_password = '$xwr_password',
                    wr_name = '$xwr_name',
                    wr_email = '$xwr_email',
                    wr_homepage = '$xwr_homepage',
                    wr_datetime = '".G5_TIME_YMDHIS."',
                    wr_last = '".G5_TIME_YMDHIS."',
                    wr_ip = '{$_SERVER['REMOTE_ADDR']}',
                    wr_1 = '$xwr_1',
                    wr_2 = '$xwr_2',
                    wr_3 = '$xwr_3',
                    wr_4 = '$xwr_4',
                    wr_5 = '$xwr_5',
                    wr_6 = '$xwr_6',
                    wr_7 = '$xwr_7',
                    wr_8 = '$xwr_8',
                    wr_9 = '$xwr_9',
                    wr_10 = '$xwr_10' ";
    sql_query($sql);
    $xwr_id = mysql_insert_id();  //쓴사람의 아이디인데...  봇개념이면 1(관리자)넣으셔도..  개인이 글쓴모양새라면 약간 로직추가.
  
 // 부모 아이디에 UPDATE
    sql_query("update $xwrite_table set wr_parent = '$xwr_id' where wr_id = '$xwr_id'");
  
 // 새글 INSERT
 $bo_table = "free"; //해당 테이블관련  저는 테스트로 자유게시판에 꼽습니다.
    sql_query(" insert into {$g5['board_new_table']} ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '{$bo_table}', '{$xwr_id}', '{$xwr_id}', '".G5_TIME_YMDHIS."', '{$member['mb_id']}' ) ");
    // 게시글 1 증가
    sql_query("update {$g5['board_table']} set bo_count_write = bo_count_write + 1 where bo_table = '{$bo_table}'");​

 

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

회원로그인

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