웹마스터 팁

안녕하세요. 영택군 입니다.

^^흠.. 위젯 형식으로 만들면 좋겠지만 제가 XE를 공부를 안해서 ㅠ.ㅠ
( 개발 메뉴얼을 예전에 어디서 본것 같은데 어딘지 모르겟네요.. t.t )

일단 이건 제가 슬사모에서 출석부를 쓸려고 만든건데요. 필요하신분은 쓰세요.
(저만 테스트 한거라 오류에 대해서는.. 적어주시면.. 아는 한도내로 ^^; 답변 해드릴께요.)

두서가 없지만 설명 하겠습니다.

1. 작동방식

 - 우선 출석을 할 수 있는 게시판이 필요 합니다. ^^ 수동 출석 방식을 고수 하고 있습니다.
 - 출석 게시판에 글을 쓰면 출석으로 인정을 하게 되는거죠
 - 출석 게시판에 중복된 글을 남길수 있으며, 중복된 글을 남겨도 1회만 올라 갑니다.

2. 설치방법

 - 우선 게시판을 하나 생성 하세요. 그리고 글을 하나 써보세요
 - phpmyadmin등과 같은 툴을 이용해서 접속하여, xe_documents 라는 테이블이 있습니다.
 - xe_documents 라는 테이블 안에 보시면 좀전에 작성 하셨던 글이 보이실꺼예요.
 - 그글을 보시면 module_srl 이 몇번 인지 확인이 가능 하실꺼예요. ^^ 이걸 잘 기억해 주시기 바래용~
 - 그리고 아래 소스를 slothistory.php 라는 파일로 저장하세요. 
    (따른 이름으로 저장하셔도 됩니다만 관련된 소스 부분은 ^^ 잘 수정 하세요)
 - 그리고 저장하신 파일을 여신다음 아래의 해당부분을 수정 하세요.
 → $dbid : 자신의 MYSQL 계정 아이디
 → $dbpass : 자신의 MYSQL 계정 패스워트
 → $dbname : 자신의 MYSQL DB 네임~
 → $bbs : module_srl
 - 요렇게만 하시면 준비가 완료^^ 이제는 파일을 호스팅에 올리시고 불러 오시면 됩니다. ^^
 - 그리고 잘 꾸며서 사용 하시면 됩니다~
    ( ^^; 음!! 안에 문구등을 수정을 안했기 때문에 맞쳐서 수정 해서 사용하세요 )
 - 아또 그리고 calender.js 파일을 js 라는 폴더를 만드시고 안에 넣어주세요 ^^
    (같은 폴더에 넣으시면 <script src="js/calender.js" language="javascript"></script> 요부분 경로 수정 하세요 ^^)

123456.jpg456789.jpg

<?

$dbhost = "localhost";    
$dbid = ""; //계정, 아이디를 넣어 주세요       
$dbpass = "";  //계정, 패스워드를 넣어 주세요
$dbname = ""; //MYSQL DB네임을 넣어 주세요  
$connect=mysql_connect($dbhost,$dbid,$dbpass); 
mysql_select_db($dbname, $connect); 
mysql_query("set names utf8", $connect);

/* 기본설정 */

$bbs = 161; //

$reg_date=time();

/* 설정 */
$dbselect="xe_documents"; // 테이블

$result = mysql_query("select * from $dbselect", $connect);

$dbcount = mysql_num_rows($result);

/* 가장 마지막에 기록한 목록 */
$min_reg=mysql_fetch_array(mysql_query("select regdate from $dbselect where module_srl =$bbs ORDER BY regdate ASC LIMIT 0, 1",$connect));

/* 기본 분할 페이지 10 */
if(!isset($_GET['su'])||!ctype_digit($_GET['su'])){
$page=10;
}
else{
$page=$_GET['su'];
}

if(!isset($_GET['no'])||!ctype_digit($_GET['no'])){
$no=0;
}
else{
$no=$_GET['no'];
}

/* 기본 페이지 10 */
if(!isset($_GET['page'])||!ctype_digit($_GET['page'])){
$pagestart=0;
}
else{
if((ceil($dbcount/$page)-1)<$_GET['page']){
echo "<script>location.href = 'history.php';</script>;</script>";
}
else{
$pagestart=($_GET['page']*$page);
}
}

/* 날짜 검색 과련 */

if($_GET["now"]==0){
if(date(d,$reg_date)>=1&&date(d,$reg_date)<=31)
{
$now=date("Ym01000000",$reg_date);
}
}
else{
$now=date("Ymd000000",strtotime($_GET["now"]));
}

if($_GET["now1"]==0){
if(date(d,$reg_date)>=1&&date(d,$reg_date)<=31)
{
$now1=date("YmdHis",$reg_date);
}
}
else{
$now1=date("Ymd235959",strtotime($_GET["now1"]));
}

/* 조건에 맞는 검색 쿼리 */

$cesult = mysql_query("SELECT count(user_id) as total_sum , user_id , nick_name , regdate FROM xe_documents where module_srl =$bbs AND regdate >$now AND regdate <$now1 GROUP BY user_id", $connect);

$result = mysql_query("SELECT count(user_id) as total_sum , user_id , nick_name , max(regdate) as mdate FROM xe_documents where module_srl =$bbs AND regdate >$now AND regdate <$now1 GROUP BY user_id ORDER BY total_sum DESC LIMIT $pagestart , $page", $connect);


$cbcount = mysql_num_rows($cesult);
$dbcount = mysql_num_rows($result);

if(($cbcount/$page)<1) $tot_pages=0;
else $tot_pages = ceil($cbcount/$page)-1; // 전체 분할 페이지 수

/*  현재 선택된 분할 페이지 다음 페이지 리스트 수 */
$max_page = $_GET['page']+4;
if($tot_pages==0) $max_page=0;
elseif($max_page>$tot_pages) $max_page=$tot_pages;

/*  현재 선택된 분할 페이지 이전 페이지 리스트 수 */
$mix_page = $_GET['page']-4;
if($mix_page<=0) $mix_page=1;

?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>슬사모 출석 체크 리스트</title>
<!-- 달력 스크립트 -->
<script src="js/calender.js" language="javascript"></script>
<style type='text/css'>
a:link{text-decoration:none; color:#585458}
a:visited{text-decoration:none; color:#585458}
a:hover{text-decoration:none; color:#e757b7}
a:active{text-decoration:none; color:#e757b7}
</style>
<script type="text/javascript">
function go() // 날자 변수 가지고옴!!
{
location.href = "<?=$PHP_SELF?>?page=<?=$pagestart?>&su=<?=$page?><?if($no!=0){?>&no=<?=$no?><?}?>&now="+document.getElementById('now').value+"&now1="+document.getElementById('now1').value;
}
</script>
</head>
<body>
<form name='f' method="post" action="<?=$PHP_SELF?>"> 
<div style='width: 100%; padding: 10px; BORDER: #bbbbbb 3px solid; BACKGROUND-COLOR: #ffffff; font-size: 9pt; font-family: Comic Sans MS; text-align: center; background-color: #46C6C6; margin-bottom: 5px;'>
<div style='padding-bottom: 8;'>※ 슬사모 출석현황 [ <a href="slothistory.php">처음으로</a> ]</div>
<input type='text' name='now' style='border: #bbbbbb solid 1px;' onclick="check_mouse('f.'+this.name)" value="<?=$now?>" size='12'>
<input type='text' name='now1' style='border: #bbbbbb solid 1px;' onclick="check_mouse('f.'+this.name)" value="<?=$now1?>" size='12'>
<input type="button" onclick="javascript:go();" style="border: solid 1px; color:white; background-color:rgb(102,153,255); border-width:1; border-color:#E0E0E0; border-style:none;" value=" 검색 ">
</div>
</form>
<div style='width: 100%; padding: 5px; BORDER: #bbbbbb 3px solid; BACKGROUND-COLOR: #ffffff; font-size: 9pt; font-family: Comic Sans MS; text-align: center; margin-bottom: 5px;'>
페이지당 출력 수 : 
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=10<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">10</a> | 
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=20<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">20</a> | 
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=30<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">30</a> | 
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=40<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">40</a> | 
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=50<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">50</a> | 
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=60<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">60</a> | 
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=70<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">70</a> | 
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=80<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">80</a> | 
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=90<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">90</a> | 
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=100<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">100</a> |
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=300<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">300</a> |
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=500<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">500</a> |
<a href="<?=$PHP_SELF?>?page=<?=$pagestart?>&su=1000<?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>">1000</a>
</div>
<table style='width: 100%; border: #bbbbbb solid 3px; font-size: 9pt; font-family: Comic Sans MS; text-align: center; '>
<tr align="center" style='height: 25; background-color: #a0a0a0;'>
<td width="30">순번</td>
<td width="150">최종출석일</td>
<td>닉네임</td>
<td>아이디</td>
<!--<td>출석일수</td>-->
<td>출석일수</td>
</tr>
<?
if($dbcount) {
$i=$pagestart;
while ($row = mysql_fetch_object($result)) {
$i=$i+1;
?>
<tr onmouseover="this.style.backgroundColor='#E7E7E7'" onmouseout="this.style.backgroundColor=''">
<td align="center"><?=$i?></td>
<td align="center" width="150"><?=mb_strcut("$row->mdate",0,4)."-".mb_strcut("$row->mdate",4,2)."-".mb_strcut("$row->mdate",6,2)." ".mb_strcut("$row->mdate",8,2).":".mb_strcut("$row->mdate",10,2).":".mb_strcut("$row->mdate",12,2)?></td>
<td align="center"><?=$row->nick_name?></td>
<td align="center"><?=$row->user_id?></td>
<!--<td align="center"><?=$row->total_sum?></td>-->
<td>
<?
$rjawmd = mysql_query("SELECT regdate FROM xe_documents WHERE module_srl =$bbs AND user_id ='$row->user_id' AND regdate >$now AND regdate <$now1 ORDER BY regdate ASC;", $connect);
for($g=0;$g<31;$g++){

$vv[$g]=0;

}
$sd=0;

while ($rows = mysql_fetch_object($rjawmd)) {

for($f=0;$f<(mb_strcut("$now1",6,2)*1);$f++) {

if(((mb_strcut("$now",0,8)*1)+$f)==(mb_strcut("$rows->regdate",0,8)*1)) {
$vv[$f]=1;

}

}

}

for($t=0;$t<(mb_strcut("$now1",6,2)*1);$t++){

$sd=$sd+$vv[$t];

}
echo $sd;
?>
</td>
</tr>
<?
}
}
?>
</table>
<div style='width: 100%; padding: 5px; BORDER: #bbbbbb 3px solid; BACKGROUND-COLOR: #ffffff; MARGIN-top: 5px; font-size: 9pt; font-family: Comic Sans MS; text-align: center;'>
<?

if($_GET['page']<10){
?>
<a href="<?$PHP_SELF?>?page=0&su=<?=$page?><?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>"> 처음 </a>
<?
}
elseif($_GET['page']>=10){
?>
<a href="<?$PHP_SELF?>?page=<?=($_GET['page']-10)?>&su=<?=$page?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>"> 이전 </a>
<?
}

/* 마지막 페이지 기준으로 분할페이지 표시 */
if(($tot_pages-$_GET['page']<4)&&$tot_pages>9){
if(($tot_pages-$_GET['page'])==0) $ss=8;
elseif(($tot_pages-$_GET['page'])==1) $ss=7;
elseif(($tot_pages-$_GET['page'+ '+ '])==2) $ss=6;
else $ss=5;
for($i=$_GET['page']-$ss;$i<=$_GET['page']-5;$i++)
{
$s=$i-1;
?>
[<a href="<?$PHP_SELF?>?page=<?=$s?>&su=<?=$page?><?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>"> <?=$i?> </a>]
<?
}
}

/* 현재 선택한 페이수 기준으로 앞 5 페이지 출력 */
for($i=$mix_page;$i<=$_GET['page'+ '];$i++)
{
$s=$i-1;
?>
[<a href="<?$PHP_SELF?>?page=<?=$s?>&su=<?=$page?><?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>"> <?=$i?> </a>]
<?
}

/* 분할페이지 표시 */
for($i=$_GET['page'];$i<=$max_page;$i++)
{
if($i==$_GET['page']){
if($_GET['page']==0){
$s=1;
}
else{
$s=$i+1;
$b=$i-1;
}
echo "<b>&nbsp;" .$s. "&nbsp;</b> ";
}
else{
$s=$i+1;
?>
[<a href="<?$PHP_SELF?>?page=<?=$i?>&su=<?=$page?><?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>"> <?=$s?> </a>]
<?
}
}
/* 처음페이지 선택 기준으로 5개 후미 5개 표시 */
if($mix_page<5&&$max_page>=4&&$tot_pages>5){
for($i=($_GET['page']+6);$i<=($tot_pages+1)&&$i<=10;$i++)
{
$s=$i-1;
?>
[<a href="<?$PHP_SELF?>?page=<?=$s?>&su=<?=$page?><?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>"> <?=$i?> </a>]
<?
}
}

if($tot_pages<($_GET['page']+10)){
$tot_pages=$tot_pages;
?>
<a href="<?$PHP_SELF?>?page=<?=$tot_pages?>&su=<?=$page?><?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>"> 마지막 </a>
<?
}
elseif($tot_pages>=($_GET['page']+10)){
?>
<a href="<?$PHP_SELF?>?page=<?=($_GET['page']+10)?>&su=<?=$page?><?if($no!=0){echo"&no=".$no."";}?><?if($now!=0){echo"&now=".$now."";}?><?if($now1!=0){echo"&now1=".$now1."";}?>"> 다음 </a>
<?
}
?>
</div>
</body>
</html>
<?
mysql_close($connect);
?>

제목 글쓴이 날짜
textyle에서 카카오 보내기 버튼 넣기 웹빌드 2014.02.24
모바일 게시판에서 이미지 리사이즈 적용방법 [6] socialskyo 2014.02.24
SFTP 적용하기 [6] Seeean 2014.02.24
Specify image dimensions socialskyo 2014.02.26
누리고 + KCP 결제 모듈 사용시 "연동 모듈 호출 오류" 가 날때 [1] idkiller 2014.02.26
1.5버전대에서 1.7.4버전으로 업데이트시.. [4] 똑디 2014.02.26
nginx 에서 서브도메인 사용시 로그인유지방법 [3] garnecia 2014.02.26
[10원팁] 서버에 계정추가후 새로설치하는데 CSS가 깨진다? [3] 키스미베이베 2014.02.27
[팁 시리즈 1] 웹 사이트 이전 및 복구/백업(이)가 되지 않습니다! [6] Omega3 2014.02.28
정규식 문법 웹엔진 2014.02.28
해외 아이피 차단 방법입니다. [3] Flolida 2014.03.01
[팁 시리즈 2] 한글 도메인이나 영문 도메인 설정을 잘못 건드려서 사이트의 모든 기능이 거의 먹통입니다! Omega3 2014.03.01
방명록 댓글 줄바꿈 메디칼온 2014.03.03
xe 홈페이지 폰갭으로 묶을때 웹빌드 2014.03.03
페이지 모듈에서 다국어 기능 작동 안 하는 버그 패치법 [1] sejin7940 2014.03.04
폰갭 제작 어플 gcm 발송시 변수 웹빌드 2014.03.04
XE 어플로 만들때 PUSH 기능처리 방법 웹빌드 2014.03.06
css3 둥근테두리 만들기 낮은자 2014.03.06
css3 안쪽과 바깥쪽 그림자 만들기 입니다 file 낮은자 2014.03.06
자주 쓰이는 정규표현식 모음 투니페이퍼 2014.03.06