회원가입시 자동 게시글 작성
본문
회원가입시 게시글을 자동으로 작성하게 하고 싶습니다.
실제 작동되고 있는 사이트 주소 찍어 드릴게요.. 고수님들의 조언 기다립니다.
위 주소로 이동하여 회원가입하면,
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']}' ) ");
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}'");
!-->