자동 댓글등록 하는방법좀 부탁드립니다. 정보
자동 댓글등록 하는방법좀 부탁드립니다.본문
오류가 나는곳의 주소를 알려주시면 더 빠르고 정확하게 답변 받을 수 있습니다.
오류 주소 :
http://www.sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=74733&sca=&sfl=wr_subject%7C%7Cwr_content&stx=alik&sop=and
위와 같은 alik님의 게시판을 사용합니다.
그런데 설문에 대한 답변이 필요한데, 사람들이 그 설문조차도 안하는 경우가 있었습니다.
그래서 원하는 항목을 선택하고 투표하기 버튼을 눌렀을 때, 투표 뿐만 아니라 리플도 자동으로 달리게 할 수 없을까요?
위 질문에 대한 alik님의 답변은 그누보드가 아닌 제로보드의 답변은 다음과 같습니다.
poll.php 의 전체 소스입니다. 덮어씌우시면 될겁니다.
(직접 테스트해봤습니다. 잘 됩니다. ^^)
나중에 '아무개'님이 투표에 참여하셨습니다.... 이부분을 수정하신다면 ' 나 " 같은 따옴표는 왠만하면 쓰지 말아주세요...
이하 소스 ------------------
<?PHP
if (!$mode) $mode = $_POST['mode'];
if (!$no) $no = $_POST['no'];
if (!$id) $id = $_POST['id'];
$parent = 0 - $no;
$do_poll = $_POST['do_poll']; //투표작성 여부
$pollReset = $_POST['pollReset']; //투표 새로작성 여부
$pollAnswers = $_POST['pollAnswers'];
$pollOptions = $_POST['pollOptions'];
if ($_POST['multiPoll'] == 1) $password = $_POST['multiPollNo']; else $password = "noMultiPoll"; //다중투표 허용 & 갯수
if ($_POST['PollTime'] < 1) $_POST['PollTime'] = 30;
$reg_date = strtotime("+".$_POST['PollTime']." days"); //투표 기간
$REMOTE_ADDR = $_POST['allowRePoll']; //재투표 허용 여부
//$REMOTE_ADDR = $_SERVER['REMOTE_ADDR']; //아이피
$re_poll = $_POST['re_poll']; //재투표 여부
//글쓰기 관련
//수정
if($mode == "modify" && $no) {
$pollCnt = 0;
if ($do_poll != "1") {
@mysql_query("delete from $t_comment"."_$id where parent='$parent'");
}
if ($pollReset == "1") {
@mysql_query("delete from $t_comment"."_$id where parent='$parent'");
$name = "pollOption";
for ($i=0; $i<count($pollOptions); $i++) {
if ($pollOptions[$i] != "") {
$memo = del_html($pollOptions[$i]);
//투표항목 입력
@mysql_query("insert into $t_comment"."_$id (parent,ismember,name,password,memo,reg_date,ip) values ('$parent','$member[no]','$name','$password','$memo','$reg_date','$REMOTE_ADDR')");
$pollCnt ++;
}
}
if($pollCnt == 0) {
$do_poll = '';
}
} else {
@mysql_query(" update $t_comment"."_$id set ip='$REMOTE_ADDR', reg_date='$reg_date', password='$password' where parent='$parent' and name='pollOption' ");
}
@mysql_query("update $t_board"."_$id set poll='$do_poll' where no='$no'");
//답변 or 새글
} elseif(($mode == "reply" || $mode == "write") && $do_poll == "1") {
$pollCnt = 0;
$name = "pollOption";
for ($i=0; $i<count($pollOptions); $i++) {
if ($pollOptions[$i] != "") {
$memo = del_html($pollOptions[$i]);
//투표항목 입력
@mysql_query("insert into $t_comment"."_$id (parent,ismember,name,password,memo,reg_date,ip) values ('$parent','$member[no]','$name','$password','$memo','$reg_date','$REMOTE_ADDR')");
$pollCnt ++;
}
}
if($pollCnt == 0) {
$do_poll = '';
}
@mysql_query("update $t_board"."_$id set poll='$do_poll' where no='$no'");
//////투표관련
} elseif($mode == "poll" && $no > 0 && $id != "") {
include "lib.php"; // 라이브러리 함수 파일 인크루드
if(!$connect) $connect=dbConn(); // DB 연결
$member=member_info(); // 멤버정보 구하기
$REMOTE_ADDR = $_SERVER['REMOTE_ADDR']; //아이피
$pollChkTmp = @mysql_fetch_row(mysql_query("select no from $t_comment"."_$id where parent='$parent' and name='pollAnswer' and ((ismember='$member[no]' and password='$member[name]') or (ip='$REMOTE_ADDR')) limit 1"));
$pollChk = $pollChkTmp[0];
//중복투표 체크
if ($pollChk && $re_poll != "1") {
head();
echo "<script>alert('이미 투표 하셨습니다');</script>";
foot();
exit;
}
if (count($pollAnswers) > 0) {
$name = "pollAnswer";
$reg_date = time();
$password = $member['name'];
for ($i=0; $i<count($pollAnswers); $i++) {
if ($pollAnswers[$i] != "") {
//투표결과 입력
$memo = $pollAnswers[$i];
@mysql_query("insert into $t_comment"."_$id (parent,ismember,name,password,memo,reg_date,ip) values ('$parent','$member[no]','$name','$password','$memo','$reg_date','$REMOTE_ADDR')");
}
}
if($member[no]) {
$name = addslashes($member[name]);
$password = addslashes($member[password]);
} else {
$name = '방문객';
$password = mt_rand();
}
$memo = addslashes("$name"."님이 설문에 참여하셨습니다!");
@mysql_query("insert into $t_comment"."_$id (parent,ismember,name,password,memo,reg_date,ip) values ('$no','$member[no]','$name','$password','$memo','$reg_date','poll_msg')");
$total=mysql_fetch_array(mysql_query("select count(*) from $t_comment"."_$id where parent='$no'"));
@mysql_query("update $t_board"."_$id set total_comment='$total[0]' where no='$no'");
} else {
// 재투표!! [회원전용 기능]
if ($re_poll == "1") {
@mysql_query("delete from $t_comment"."_$id where parent='$parent' and name='pollAnswer' and ismember='$member[no]' and password='$member[name]'");
@mysql_query("delete from $t_comment"."_$id where parent='$no' and name='$member[name]' and ismember='$member[no]' and password='$member[password]' and ip='poll_msg'");
$total=mysql_fetch_array(mysql_query("select count(*) from $t_comment"."_$id where parent='$no'"));
@mysql_query("update $t_board"."_$id set total_comment='$total[0]' where no='$no'");
}
}
echo "<script>parent.location.replace(parent.document.location.href);</script>";
}
?>
이렇게 하면 투표를 하게되면 자동으로 '아이디'님이 설문에 참여하셨습니다! 라고 나옵니다.
그런데 그누보드와 제로보드 코딩자체가 틀려 어떻게 해야 할지 모르겠습니다.
고수님들 한수 부탁드립니다.
오류 주소 :
http://www.sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=74733&sca=&sfl=wr_subject%7C%7Cwr_content&stx=alik&sop=and
위와 같은 alik님의 게시판을 사용합니다.
그런데 설문에 대한 답변이 필요한데, 사람들이 그 설문조차도 안하는 경우가 있었습니다.
그래서 원하는 항목을 선택하고 투표하기 버튼을 눌렀을 때, 투표 뿐만 아니라 리플도 자동으로 달리게 할 수 없을까요?
위 질문에 대한 alik님의 답변은 그누보드가 아닌 제로보드의 답변은 다음과 같습니다.
poll.php 의 전체 소스입니다. 덮어씌우시면 될겁니다.
(직접 테스트해봤습니다. 잘 됩니다. ^^)
나중에 '아무개'님이 투표에 참여하셨습니다.... 이부분을 수정하신다면 ' 나 " 같은 따옴표는 왠만하면 쓰지 말아주세요...
이하 소스 ------------------
<?PHP
if (!$mode) $mode = $_POST['mode'];
if (!$no) $no = $_POST['no'];
if (!$id) $id = $_POST['id'];
$parent = 0 - $no;
$do_poll = $_POST['do_poll']; //투표작성 여부
$pollReset = $_POST['pollReset']; //투표 새로작성 여부
$pollAnswers = $_POST['pollAnswers'];
$pollOptions = $_POST['pollOptions'];
if ($_POST['multiPoll'] == 1) $password = $_POST['multiPollNo']; else $password = "noMultiPoll"; //다중투표 허용 & 갯수
if ($_POST['PollTime'] < 1) $_POST['PollTime'] = 30;
$reg_date = strtotime("+".$_POST['PollTime']." days"); //투표 기간
$REMOTE_ADDR = $_POST['allowRePoll']; //재투표 허용 여부
//$REMOTE_ADDR = $_SERVER['REMOTE_ADDR']; //아이피
$re_poll = $_POST['re_poll']; //재투표 여부
//글쓰기 관련
//수정
if($mode == "modify" && $no) {
$pollCnt = 0;
if ($do_poll != "1") {
@mysql_query("delete from $t_comment"."_$id where parent='$parent'");
}
if ($pollReset == "1") {
@mysql_query("delete from $t_comment"."_$id where parent='$parent'");
$name = "pollOption";
for ($i=0; $i<count($pollOptions); $i++) {
if ($pollOptions[$i] != "") {
$memo = del_html($pollOptions[$i]);
//투표항목 입력
@mysql_query("insert into $t_comment"."_$id (parent,ismember,name,password,memo,reg_date,ip) values ('$parent','$member[no]','$name','$password','$memo','$reg_date','$REMOTE_ADDR')");
$pollCnt ++;
}
}
if($pollCnt == 0) {
$do_poll = '';
}
} else {
@mysql_query(" update $t_comment"."_$id set ip='$REMOTE_ADDR', reg_date='$reg_date', password='$password' where parent='$parent' and name='pollOption' ");
}
@mysql_query("update $t_board"."_$id set poll='$do_poll' where no='$no'");
//답변 or 새글
} elseif(($mode == "reply" || $mode == "write") && $do_poll == "1") {
$pollCnt = 0;
$name = "pollOption";
for ($i=0; $i<count($pollOptions); $i++) {
if ($pollOptions[$i] != "") {
$memo = del_html($pollOptions[$i]);
//투표항목 입력
@mysql_query("insert into $t_comment"."_$id (parent,ismember,name,password,memo,reg_date,ip) values ('$parent','$member[no]','$name','$password','$memo','$reg_date','$REMOTE_ADDR')");
$pollCnt ++;
}
}
if($pollCnt == 0) {
$do_poll = '';
}
@mysql_query("update $t_board"."_$id set poll='$do_poll' where no='$no'");
//////투표관련
} elseif($mode == "poll" && $no > 0 && $id != "") {
include "lib.php"; // 라이브러리 함수 파일 인크루드
if(!$connect) $connect=dbConn(); // DB 연결
$member=member_info(); // 멤버정보 구하기
$REMOTE_ADDR = $_SERVER['REMOTE_ADDR']; //아이피
$pollChkTmp = @mysql_fetch_row(mysql_query("select no from $t_comment"."_$id where parent='$parent' and name='pollAnswer' and ((ismember='$member[no]' and password='$member[name]') or (ip='$REMOTE_ADDR')) limit 1"));
$pollChk = $pollChkTmp[0];
//중복투표 체크
if ($pollChk && $re_poll != "1") {
head();
echo "<script>alert('이미 투표 하셨습니다');</script>";
foot();
exit;
}
if (count($pollAnswers) > 0) {
$name = "pollAnswer";
$reg_date = time();
$password = $member['name'];
for ($i=0; $i<count($pollAnswers); $i++) {
if ($pollAnswers[$i] != "") {
//투표결과 입력
$memo = $pollAnswers[$i];
@mysql_query("insert into $t_comment"."_$id (parent,ismember,name,password,memo,reg_date,ip) values ('$parent','$member[no]','$name','$password','$memo','$reg_date','$REMOTE_ADDR')");
}
}
if($member[no]) {
$name = addslashes($member[name]);
$password = addslashes($member[password]);
} else {
$name = '방문객';
$password = mt_rand();
}
$memo = addslashes("$name"."님이 설문에 참여하셨습니다!");
@mysql_query("insert into $t_comment"."_$id (parent,ismember,name,password,memo,reg_date,ip) values ('$no','$member[no]','$name','$password','$memo','$reg_date','poll_msg')");
$total=mysql_fetch_array(mysql_query("select count(*) from $t_comment"."_$id where parent='$no'"));
@mysql_query("update $t_board"."_$id set total_comment='$total[0]' where no='$no'");
} else {
// 재투표!! [회원전용 기능]
if ($re_poll == "1") {
@mysql_query("delete from $t_comment"."_$id where parent='$parent' and name='pollAnswer' and ismember='$member[no]' and password='$member[name]'");
@mysql_query("delete from $t_comment"."_$id where parent='$no' and name='$member[name]' and ismember='$member[no]' and password='$member[password]' and ip='poll_msg'");
$total=mysql_fetch_array(mysql_query("select count(*) from $t_comment"."_$id where parent='$no'"));
@mysql_query("update $t_board"."_$id set total_comment='$total[0]' where no='$no'");
}
}
echo "<script>parent.location.replace(parent.document.location.href);</script>";
}
?>
이렇게 하면 투표를 하게되면 자동으로 '아이디'님이 설문에 참여하셨습니다! 라고 나옵니다.
그런데 그누보드와 제로보드 코딩자체가 틀려 어떻게 해야 할지 모르겠습니다.
고수님들 한수 부탁드립니다.
댓글 전체