게시판이 아닌 외부에서 출석체크하기 정보
게시판이 아닌 외부에서 출석체크하기
첨부파일
본문
제목을 정하는게 더 어렵네요.^^
이방법은 게시판이 아닌 외부에서(일반문서) 출석체크를 하기 위해서 사용합니다.
준비물
1, 아무이름으로 게시판1개 생성
2, 옵션에서 검색 사용안함 설정 및 답글달기 사용안함으로 설정함
3, 리스트나 내용보기를 공개하지 않을경우 비공개로 설정함
4, bbs/write_update.php
5, html문서
적용방법
1, html문서의 작당한곳에 아래의 코드를 넣어 줍니다.(디자인은 알아서 이뿌게 하세요)
<?
//회원만출력
if ($member['mb_id']) {
//현재 문서가 게시판이 연결 되었다면 출력안함
if ($bo_table=="") {
//테이블명을만들고
$bo_tables ="board1"; //출석체크할 게시판명을 입력함
$bo_table_names = $g4[write_prefix]."".$bo_tables;
//깜직한 악마님 코드참조
$board_cnt = "1"; //회원별 하루에 몇개까지 등록될 것인가?
$comment_type = "0"; // 0 이면 코멘트 답글은 제외하고 원글만
$today_time = date("Y-m-d");
$sql_time = $today_time . " 00:00:00";
$sql_time2 = $today_time . " 23:59:59";
//지정한 게시판에서 수정은 가능하고 관리자는 제한이 없고 회원일 경우만 체크
//if ($member[mb_id] && !$is_admin) {
$board_sql = " select count(*) as cnt from {$bo_table_names} where wr_is_comment = '$comment_type' and mb_id = '$member[mb_id]' and wr_datetime >= '$sql_time' and wr_datetime <= '$sql_time2' ";
$board_check = sql_fetch($board_sql);
//}
// 오늘올라온 글이 1개라도 존재 한다면
if ($board_check[cnt] >= $board_cnt) {
echo " 0 이후 출석체크 가능";
} else {
?>
<form name="fwrite" method="post" action="<?=$g4['bbs_path']?>/write_update.php" target="hiddenframe" style="margin:0px;">
<input type=hidden name=bo_table value="board1">
<input type=hidden name=wr_key value="<?=$norobot_key?>">
<input type=hidden name=wr_subject value="출석check_<?=$member['mb_id']?>_<?=$g4['time_ymdhis']?>">
<input type=hidden name=wr_content value="출석check_<?=$member['mb_name']?>_<?=$g4['time_ymdhis']?>">
<input type="submit" value="오늘의 출석체크 등록" style="width:150;height:22;background-color:#ffffff;border:1 solid #c0c0c0;">
</form>
<?
}
}
}
?>
2,
bbs/write_update.php 를 원본을 백업해 둔후 아래의 설명대로 수정합니다.
(총2군데에 코드 추가,수정이 되며 여건상 원본의 수정이 불가피 합니다.)
상단부분의 아래코드를 찾은후
// 리퍼러 체크
referer_check();
$w = $_POST["w"];
위의 코드 바로 아래에 다음의 코드를 추가 합니다.
// 출석체크
//새글인가
if ($w == "") {
//테이블명을만들고
if ($bo_table=="board1") {
//회원일때만 실행
if ($member['mb_id']) {
$bo_table_names = $g4[write_prefix]."".$bo_table;
//깜직한 악마님 코드참조
$board_cnt = "1"; //회원별 하루에 몇개까지 등록될 것인가?
$comment_type = "0"; // 0 이면 코멘트 답글은 제외하고 원글만
$today_time = date("Y-m-d");
$sql_time = $today_time . " 00:00:00";
$sql_time2 = $today_time . " 23:59:59";
//지정한 게시판에서 수정은 가능하고 관리자는 제한이 없고 회원일 경우만 체크
//if ($member[mb_id] && !$is_admin) {
$board_sql = " select count(*) as cnt from {$bo_table_names} where wr_is_comment = '$comment_type' and mb_id = '$member[mb_id]' and wr_datetime >= '$sql_time' and wr_datetime <= '$sql_time2' ";
$board_check = sql_fetch($board_sql);
//}
// 오늘올라온 글이 1개라도 존재 한다면
if ($board_check[cnt] >= $board_cnt) {
$msgbos = "{$member[mb_name]} 님은 오늘의 출석체크 를 이미 하였습니다.";
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=$g4[charset]\">";
echo "<script language='javascript'>alert('$msgbos');";
echo "</script>";
exit;
}
else
{
}
}
}
}
//출석체크
=====================================================
위코드를 추가한후 중간 부분으로 내려간후 아래의 코드를 찾습니다.
// 쓰기 포인트 부여
if ($w == '')
{
if ($notice)
{
$bo_notice = $wr_id . "\n" . $board[bo_notice];
sql_query(" update $g4[board_table] set bo_notice = '$bo_notice' where bo_table = '$bo_table' ");
}
insert_point($member[mb_id], $board[bo_write_point], "$board[bo_subject] $wr_id 글쓰기", $bo_table, $wr_id, '쓰기');
}
else
{
// 답변은 코멘트 포인트를 부여함
// 답변 포인트가 많은 경우 코멘트 대신 답변을 하는 경우가 많음
insert_point($member[mb_id], $board[bo_comment_point], "$board[bo_subject] $wr_id 글답변", $bo_table, $wr_id, '쓰기');
}
}
else if ($w == "u")
{
==================================================
위의 코드를 아래처럼 바꾸어 줍니다.
// 쓰기 포인트 부여
if ($w == '')
{
if ($notice)
{
$bo_notice = $wr_id . "\n" . $board[bo_notice];
sql_query(" update $g4[board_table] set bo_notice = '$bo_notice' where bo_table = '$bo_table' ");
}
//출석체크
if ($bo_table =="board1") {
$boardpoints ="$g4[time_ymd] 일 출석체크 포인트";
} else {
$boardpoints ="$board[bo_subject] $wr_id 글쓰기";
}
insert_point($member[mb_id], $board[bo_write_point], "{$boardpoints}", $bo_table, $wr_id, '쓰기');
//출석체크
}
else
{
// 답변은 코멘트 포인트를 부여함
// 답변 포인트가 많은 경우 코멘트 대신 답변을 하는 경우가 많음
insert_point($member[mb_id], $board[bo_comment_point], "$board[bo_subject] $wr_id 글답변", $bo_table, $wr_id, '쓰기');
}
//출석체크
if ($w == "") {
if ($bo_table =="board1") {
$msgbo = "{$member[mb_name]} 님의 출석체크가 완료 되었습니다.\\n\\n다음 출석 체크는 0 시 이후에 가능합니다.";
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=$g4[charset]\">";
echo "<script language='javascript'>alert('$msgbo');";
echo "</script>";
exit;
}
}
//출석체크
}
else if ($w == "u")
{
수정끝
위코드를 추가한 write_update.php 를 첨부하므로 참고합니다.
참고사항 :
추가되는 코드중 $bo_table =="board1" 와 $bo_tables =="board1" 라고
되어있는 부분에서 board1 을 출석 체크용으로 생성한 게시판명으로 수정하세요.
이방법은 게시판이 아닌 외부에서(일반문서) 출석체크를 하기 위해서 사용합니다.
준비물
1, 아무이름으로 게시판1개 생성
2, 옵션에서 검색 사용안함 설정 및 답글달기 사용안함으로 설정함
3, 리스트나 내용보기를 공개하지 않을경우 비공개로 설정함
4, bbs/write_update.php
5, html문서
적용방법
1, html문서의 작당한곳에 아래의 코드를 넣어 줍니다.(디자인은 알아서 이뿌게 하세요)
<?
//회원만출력
if ($member['mb_id']) {
//현재 문서가 게시판이 연결 되었다면 출력안함
if ($bo_table=="") {
//테이블명을만들고
$bo_tables ="board1"; //출석체크할 게시판명을 입력함
$bo_table_names = $g4[write_prefix]."".$bo_tables;
//깜직한 악마님 코드참조
$board_cnt = "1"; //회원별 하루에 몇개까지 등록될 것인가?
$comment_type = "0"; // 0 이면 코멘트 답글은 제외하고 원글만
$today_time = date("Y-m-d");
$sql_time = $today_time . " 00:00:00";
$sql_time2 = $today_time . " 23:59:59";
//지정한 게시판에서 수정은 가능하고 관리자는 제한이 없고 회원일 경우만 체크
//if ($member[mb_id] && !$is_admin) {
$board_sql = " select count(*) as cnt from {$bo_table_names} where wr_is_comment = '$comment_type' and mb_id = '$member[mb_id]' and wr_datetime >= '$sql_time' and wr_datetime <= '$sql_time2' ";
$board_check = sql_fetch($board_sql);
//}
// 오늘올라온 글이 1개라도 존재 한다면
if ($board_check[cnt] >= $board_cnt) {
echo " 0 이후 출석체크 가능";
} else {
?>
<form name="fwrite" method="post" action="<?=$g4['bbs_path']?>/write_update.php" target="hiddenframe" style="margin:0px;">
<input type=hidden name=bo_table value="board1">
<input type=hidden name=wr_key value="<?=$norobot_key?>">
<input type=hidden name=wr_subject value="출석check_<?=$member['mb_id']?>_<?=$g4['time_ymdhis']?>">
<input type=hidden name=wr_content value="출석check_<?=$member['mb_name']?>_<?=$g4['time_ymdhis']?>">
<input type="submit" value="오늘의 출석체크 등록" style="width:150;height:22;background-color:#ffffff;border:1 solid #c0c0c0;">
</form>
<?
}
}
}
?>
2,
bbs/write_update.php 를 원본을 백업해 둔후 아래의 설명대로 수정합니다.
(총2군데에 코드 추가,수정이 되며 여건상 원본의 수정이 불가피 합니다.)
상단부분의 아래코드를 찾은후
// 리퍼러 체크
referer_check();
$w = $_POST["w"];
위의 코드 바로 아래에 다음의 코드를 추가 합니다.
// 출석체크
//새글인가
if ($w == "") {
//테이블명을만들고
if ($bo_table=="board1") {
//회원일때만 실행
if ($member['mb_id']) {
$bo_table_names = $g4[write_prefix]."".$bo_table;
//깜직한 악마님 코드참조
$board_cnt = "1"; //회원별 하루에 몇개까지 등록될 것인가?
$comment_type = "0"; // 0 이면 코멘트 답글은 제외하고 원글만
$today_time = date("Y-m-d");
$sql_time = $today_time . " 00:00:00";
$sql_time2 = $today_time . " 23:59:59";
//지정한 게시판에서 수정은 가능하고 관리자는 제한이 없고 회원일 경우만 체크
//if ($member[mb_id] && !$is_admin) {
$board_sql = " select count(*) as cnt from {$bo_table_names} where wr_is_comment = '$comment_type' and mb_id = '$member[mb_id]' and wr_datetime >= '$sql_time' and wr_datetime <= '$sql_time2' ";
$board_check = sql_fetch($board_sql);
//}
// 오늘올라온 글이 1개라도 존재 한다면
if ($board_check[cnt] >= $board_cnt) {
$msgbos = "{$member[mb_name]} 님은 오늘의 출석체크 를 이미 하였습니다.";
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=$g4[charset]\">";
echo "<script language='javascript'>alert('$msgbos');";
echo "</script>";
exit;
}
else
{
}
}
}
}
//출석체크
=====================================================
위코드를 추가한후 중간 부분으로 내려간후 아래의 코드를 찾습니다.
// 쓰기 포인트 부여
if ($w == '')
{
if ($notice)
{
$bo_notice = $wr_id . "\n" . $board[bo_notice];
sql_query(" update $g4[board_table] set bo_notice = '$bo_notice' where bo_table = '$bo_table' ");
}
insert_point($member[mb_id], $board[bo_write_point], "$board[bo_subject] $wr_id 글쓰기", $bo_table, $wr_id, '쓰기');
}
else
{
// 답변은 코멘트 포인트를 부여함
// 답변 포인트가 많은 경우 코멘트 대신 답변을 하는 경우가 많음
insert_point($member[mb_id], $board[bo_comment_point], "$board[bo_subject] $wr_id 글답변", $bo_table, $wr_id, '쓰기');
}
}
else if ($w == "u")
{
==================================================
위의 코드를 아래처럼 바꾸어 줍니다.
// 쓰기 포인트 부여
if ($w == '')
{
if ($notice)
{
$bo_notice = $wr_id . "\n" . $board[bo_notice];
sql_query(" update $g4[board_table] set bo_notice = '$bo_notice' where bo_table = '$bo_table' ");
}
//출석체크
if ($bo_table =="board1") {
$boardpoints ="$g4[time_ymd] 일 출석체크 포인트";
} else {
$boardpoints ="$board[bo_subject] $wr_id 글쓰기";
}
insert_point($member[mb_id], $board[bo_write_point], "{$boardpoints}", $bo_table, $wr_id, '쓰기');
//출석체크
}
else
{
// 답변은 코멘트 포인트를 부여함
// 답변 포인트가 많은 경우 코멘트 대신 답변을 하는 경우가 많음
insert_point($member[mb_id], $board[bo_comment_point], "$board[bo_subject] $wr_id 글답변", $bo_table, $wr_id, '쓰기');
}
//출석체크
if ($w == "") {
if ($bo_table =="board1") {
$msgbo = "{$member[mb_name]} 님의 출석체크가 완료 되었습니다.\\n\\n다음 출석 체크는 0 시 이후에 가능합니다.";
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=$g4[charset]\">";
echo "<script language='javascript'>alert('$msgbo');";
echo "</script>";
exit;
}
}
//출석체크
}
else if ($w == "u")
{
수정끝
위코드를 추가한 write_update.php 를 첨부하므로 참고합니다.
참고사항 :
추가되는 코드중 $bo_table =="board1" 와 $bo_tables =="board1" 라고
되어있는 부분에서 board1 을 출석 체크용으로 생성한 게시판명으로 수정하세요.
추천
2
2
댓글 8개

좋은팁이네요. 감사합니다. (_ _)
그런데 출석부에 작성없이 로그인 만으로 출석체크가 되게 하는 방법은 없을까요?
오늘 누가 몇번(몇시에) 로그인했다는 정보를 게시판 형식으로 뿌려주는 방법이요.
그런데 출석부에 작성없이 로그인 만으로 출석체크가 되게 하는 방법은 없을까요?
오늘 누가 몇번(몇시에) 로그인했다는 정보를 게시판 형식으로 뿌려주는 방법이요.

html 문서에 넣어줄 코드를 외부 로그인이 출력되는 부분으로 넣어 주면
비슷한 방법이 됩니다.^^
아래의 코드에서 echo " 0 이후 출석체크 가능"; 부분을 공백처리 한후에
넣어주면 로그인하면 하루에 한번만 출력이 됩니다.
// 오늘올라온 글이 1개라도 존재 한다면
if ($board_check[cnt] >= $board_cnt) {
echo " 0 이후 출석체크 가능";
} else {
비슷한 방법이 됩니다.^^
아래의 코드에서 echo " 0 이후 출석체크 가능"; 부분을 공백처리 한후에
넣어주면 로그인하면 하루에 한번만 출력이 됩니다.
// 오늘올라온 글이 1개라도 존재 한다면
if ($board_check[cnt] >= $board_cnt) {
echo " 0 이후 출석체크 가능";
} else {

감사합니다. 잘 적용되네요~ ;)
제가 관리하는 동호회 홈페이지는 어르신들이 많아서 자동으로 되는걸 좋아하시는데,
의외로 클릭해서 출근도장 찍는 재미도 쏠쏠하네요.
로그인하고난 후 아웃로그인화면 아래에 뿌려서 출근도장찍게 해야겠어요. :)
그런데 한번 글입력하면 인풋버튼 안나오게 할 수는 없는거죠?
경고창 뜨는 것에 거부감이 들수도 있겠다 싶어서요.ㅎ
초보라 주절주절 질문이 많았습니다.
지금 이 상태로도 제가 찾던 출석부 기능입니다!!
다시한번 감사드립니다~
제가 관리하는 동호회 홈페이지는 어르신들이 많아서 자동으로 되는걸 좋아하시는데,
의외로 클릭해서 출근도장 찍는 재미도 쏠쏠하네요.
로그인하고난 후 아웃로그인화면 아래에 뿌려서 출근도장찍게 해야겠어요. :)
그런데 한번 글입력하면 인풋버튼 안나오게 할 수는 없는거죠?
경고창 뜨는 것에 거부감이 들수도 있겠다 싶어서요.ㅎ
초보라 주절주절 질문이 많았습니다.
지금 이 상태로도 제가 찾던 출석부 기능입니다!!
다시한번 감사드립니다~

출근도장 찍을때에 스크립트를 사용하여 이벤트를 발생시켜서
현재 페이지를 리로드 시키면 되는데 제능력으로는 어렵습니다.^^
현재 페이지를 리로드 시키면 되는데 제능력으로는 어렵습니다.^^
정말 좋은 팁이네요..
감사합니다.

정말 좋은 팁들 감사드립니다. ^^
제로보드에 헐랭이님 팁 코멘트 추천하기가 있던데..
그누보드에 적용시킬수 있는건가요?
제로보드에 헐랭이님 팁 코멘트 추천하기가 있던데..
그누보드에 적용시킬수 있는건가요?
헐랭이님 너무 감사드립니다!! 현재 게시판으로 간략하게 이용하고 있었는데 이렇게 좋은 팁을 주시니 너무 감사드려요!! 저때문에 이런 수고 끼쳐 드려 너무 너무 죄송합니다!!