게시판이 아닌 외부에서 출석체크하기
제목을 정하는게 더 어렵네요.^^
이방법은 게시판이 아닌 외부에서(일반문서) 출석체크를 하기 위해서 사용합니다.
준비물
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 을 출석 체크용으로 생성한 게시판명으로 수정하세요.
첨부파일
|
댓글을 작성하시려면 로그인이 필요합니다.
로그인
댓글 8개
그런데 출석부에 작성없이 로그인 만으로 출석체크가 되게 하는 방법은 없을까요?
오늘 누가 몇번(몇시에) 로그인했다는 정보를 게시판 형식으로 뿌려주는 방법이요.
비슷한 방법이 됩니다.^^
아래의 코드에서 echo " 0 이후 출석체크 가능"; 부분을 공백처리 한후에
넣어주면 로그인하면 하루에 한번만 출력이 됩니다.
// 오늘올라온 글이 1개라도 존재 한다면
if ($board_check[cnt] >= $board_cnt) {
echo " 0 이후 출석체크 가능";
} else {
제가 관리하는 동호회 홈페이지는 어르신들이 많아서 자동으로 되는걸 좋아하시는데,
의외로 클릭해서 출근도장 찍는 재미도 쏠쏠하네요.
로그인하고난 후 아웃로그인화면 아래에 뿌려서 출근도장찍게 해야겠어요. :)
그런데 한번 글입력하면 인풋버튼 안나오게 할 수는 없는거죠?
경고창 뜨는 것에 거부감이 들수도 있겠다 싶어서요.ㅎ
초보라 주절주절 질문이 많았습니다.
지금 이 상태로도 제가 찾던 출석부 기능입니다!!
다시한번 감사드립니다~
현재 페이지를 리로드 시키면 되는데 제능력으로는 어렵습니다.^^
제로보드에 헐랭이님 팁 코멘트 추천하기가 있던데..
그누보드에 적용시킬수 있는건가요?