<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script language='JavaScript'>
function checkAall(oElement){
var newtime = new Date().getTime();
for(var i=0;i<document.form1.chkA.length;i++){
document.form1.chkA[i].checked = oElement.checked;
}
var newtime2 = new Date().getTime();
td1.innerHTML="걸린시간 : "+(newtime2-newtime);
}
function checkBall(oElement){
var newtime = new Date().getTime();
var len = document.form1.chkB.length;
for(var i=0;i<len;i++){
document.form1.chkB[i].checked = oElement.checked;
}
var newtime2 = new Date().getTime();
td2.innerHTML="걸린시간 : "+(newtime2-newtime);
}
function checkCall(oElement){
var newtime = new Date().getTime();
var len = document.form1.chkC.length;
var chkArr = document.form1.chkC;
var boolv = oElement.checked;
for(var i=0;i<len;i++){
chkArr[i].checked = boolv;
}
var newtime2 = new Date().getTime();
td3.innerHTML="걸린시간 : "+(newtime2-newtime);
}
</script>
</HEAD>
<BODY>
<form name='form1'>
<table border='1' width='700'>
<tr>
<td><input type='checkbox' id='chkAall' onclick='checkAall(this)'>전체 체크/해제</td>
<td><input type='checkbox' id='chkBall' onclick='checkBall(this)'>전체 체크/해제</td>
<td><input type='checkbox' id='chkCall' onclick='checkCall(this)'>전체 체크/해제</td>
</tr>
<tr>
<td>
<div id="divA" style="overflow-x: hidden; overflow-y: auto; width:100%; height:200; padding: 0px; border: 1;"> <script language='JavaScript'>
for(var i=0;i<2000;i++){
document.write("<input type='checkbox' id='chkA' value='"+i+"'>A의 "+i+" 번째 체크박스<br>")
}
</script>
<div>
</td>
<td>
<div id="divB" style="overflow-x: hidden; overflow-y: auto; width:100%; height:200; padding: 0px; border: 1;"> <script language='JavaScript'>
for(var i=0;i<2000;i++){
document.write("<input type='checkbox' id='chkB' value='"+i+"'>B의 "+i+"번째 체크박스<br>")
}
</script>
<div>
</td>
<td>
<div id="divC" style="overflow-x: hidden; overflow-y: auto; width:100%; height:200; padding: 0px; border: 1;"> <script language='JavaScript'>
for(var i=0;i<2000;i++){
document.write("<input type='checkbox' id='chkC' value='"+i+"'>C의 "+i+"번째 체크박스<br>")
}
</script>
<div>
</td>
</tr>
<tr>
<td id='td1'> </td>
<td id='td2'> </td>
<td id='td3'> </td>
</tr>
<table>
</form>
</BODY>
</HTML>
/**
*
*/
package com.sbdc.util;
import java.text.DecimalFormat;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.*;
import java.io.*;
/**
* @author jchhkr
*
*/
public class EtcUtil {
public String checkNull(String pStr){
if(pStr == null || "NULL".equals(pStr.toUpperCase()))
return "";
else
return pStr;
}
public String checkNull(String pStr, String retStr){
if(pStr == null || "NULL".equals(pStr.toUpperCase()))
return retStr;
else
return pStr;
}
public int checkNull(String pStr, int pInt){
if(pStr == null || "".equals(pStr))
return pInt;
else
return Integer.parseInt(pStr);
}
public float checkNull(String pStr, float pInt){
if(pStr == null)
return pInt;
else
return Float.parseFloat(pStr);
}
public String getFomatDate(String strType, String strDate){
String delim = "";
if("1".equals(strType))
delim = "-";
else if("2".equals(strType))
delim = ".";
else if("3".equals(strType))
delim = "/";
if(strDate == null || "".equals(strDate)){
return "";
}else{
if(strDate.length() == 8){
return strDate.substring(0, 4) + delim + strDate.substring(4, 6) + delim + strDate.substring(6, 8);
}else{
return strDate;
}
}
}
// 로그파일 작성
public void writeLog(String who, String msg, String sql){
String LogDir = "D:/web_root/sbdc/log";
String writeStr = "";
writeStr = getTime() + " | " + who + " | " + msg;
//파일이 없을 경우 생성
String fileName = LogDir + "/sbdc_" +
getYear() + getMonth() + getDay() + ".log";
try{
makeFile(fileName);
File file = new File(fileName);
RandomAccessFile randomaccessfile = new RandomAccessFile(file, "rw");
long i = randomaccessfile.length();
randomaccessfile.seek(i);
randomaccessfile.write(writeStr.getBytes());
randomaccessfile.write("\n".getBytes());
randomaccessfile.close();
}catch(Exception e){
System.out.println("Write Log Error :::: " + e.toString());
}
}
public void makeFile(String fileName) throws Exception{
File file = new File(fileName);
if(!file.isFile()){
file.createNewFile();
}
}
//날짜와 시간 가져오기
public static String getYear(){
Calendar calendar = Calendar.getInstance();
return Integer.toString(calendar.get(Calendar.YEAR));
}
//현재 월 가져오기
public static String getMonth(){
Calendar now = Calendar.getInstance();
int monthN = now.get(Calendar.MONTH)+1;
String MON = (monthN<10)? "0"+Integer.toString(monthN):Integer.toString(monthN) ;
return MON;
}
//현재 일자 가져오기
public static String getDay(){
Calendar now = Calendar.getInstance();
int dayN = now.get(Calendar.DAY_OF_MONTH);
if(dayN <10){
return '0' + Integer.toString(dayN);
}
return Integer.toString(dayN);
}
public static String getDate(){ //년-월-일
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd");
return formatter.format(new java.util.Date());
}
public static String getTime(){ //년-월-일 시:분:초
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return formatter.format(new java.util.Date());
}
public static String getTime2(){ //시:분:초
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("HHmmss");
return formatter.format(new java.util.Date());
}
public static int getDateNum(){
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyyMMdd");
return Integer.parseInt(formatter.format(new java.util.Date()));
}
//한달전 일자 가져오기, sDay:현재일자 sMM:개월수(1은 1개월)
public String getLastMonth() {
Calendar cal = new GregorianCalendar();
String sDay = getTime().substring(0,10);
String sMM = "1";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date d = df.parse(sDay, new ParsePosition(0));
cal.setTime(d);
cal.add(Calendar.MONTH, -Integer.parseInt(sMM));
return df.format(cal.getTime());
}
// 한달후 일자 가져오기, sDay:현재일자 sMM:개월수(1은 1개월)
public String getNextMonth() {
Calendar cal = new GregorianCalendar();
String sDay = getTime().substring(0,10);
String sMM = "1";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date d = df.parse(sDay, new ParsePosition(0));
cal.setTime(d);
cal.add(Calendar.MONTH, Integer.parseInt(sMM));
return df.format(cal.getTime());
}
// 어제 일자 가져오기, sDay:현재일자 sMM:일수(1은 1일)
public String getLastDate() {
Calendar cal = new GregorianCalendar();
String sDay = getTime().substring(0,10);
String sMM = "1";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date d = df.parse(sDay, new ParsePosition(0));
cal.setTime(d);
cal.add(Calendar.DATE, -Integer.parseInt(sMM));
return df.format(cal.getTime());
}
//두 날짜 차이값 비교, sDay:일자1 pDay:일자2
public long getDiffDate(String day1, String day2) {
long retVal = 0;
String sDay = day1;
String pDay = day2;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = df.parse(sDay, new ParsePosition(0));
Date d2 = df.parse(pDay, new ParsePosition(0));
retVal = (d1.getTime() - d2.getTime()) / (1000*60*60*24);
return retVal;
}
/**
* 설명 한글코드처리
* @param --String s
* @return --String
* @exception
*/
public String convToKo(String s){
String retStr = "";
try{
if(s != null){
retStr = (new String(s.getBytes("8859_1"),"KSC5601"));
}
}catch (Exception e){
retStr = "";
}
return retStr;
}
// 파일명변경
public void setFilerename(String path, String filename_old, String filename_new){
//파일명 변경..
File ff = new File(path+"/"+filename_old);
if(ff.exists()){
File fileRename = new File(path+"/"+filename_new);
ff.renameTo(fileRename);
}
}
// 특수문자에 대해 HTML 형태로 변환
public String convToDB(String str) {
String tmpStr = "";
if(str == null){
str = "";
}
tmpStr = str.replaceAll(""", "\"");
tmpStr = tmpStr.replaceAll("<", "<");
tmpStr = tmpStr.replaceAll(">", ">");
tmpStr = tmpStr.replaceAll(" ", " ");
tmpStr = tmpStr.replaceAll("&", "&");
return tmpStr;
}
public String convToHtml(String str) {
String tmpStr = "";
if(str == null){
str = "";
}
tmpStr = str.replaceAll("\"", """);
tmpStr = tmpStr.replaceAll("<", "<");
tmpStr = tmpStr.replaceAll(">", ">");
tmpStr = tmpStr.replaceAll(" ", " ");
return tmpStr;
}
//파일 사이즈 가져오기
public String getFileSize(File file){
if(file.exists())
return Long.toString(file.length());
else
return "0";
}
//파일 확장자 가져오기
public String getFileExt(String filenm){
if(!"".equals(filenm))
return filenm.substring(filenm.lastIndexOf(".")+1);
else
return "";
}
//지정된 글자수를 초과한 문자열을 대체문자로 교체
public String getCutUTFString(String s, int len, String tail){
if (s == null)
return null;
int srcLen = s.getBytes().length;
if (srcLen < len)
return s;
String tmpTail = tail;
if (tail == null)
tmpTail = "";
int tailLen = tmpTail.getBytes().length;
if (tailLen > len)
return "";
char a;
int i = 0;
int realLen = 0;
for (i = 0; i < len - tailLen && realLen < len - tailLen; i++) {
a = s.charAt(i);
if ((a & 0xFF00) == 0)
realLen += 1;
else
realLen += 2;
}
while (s.substring(0, i).getBytes().length > len - tailLen) {
i--;
}
return s.substring(0, i) + tmpTail;
}
/**
* 스트링 자르기
* 지정한 정수의 개수 만큼 빈칸(" ")을 스트링을 구한다.
* 절단된 String의 바이트 수가 자를 바이트 개수를 넘지 않도록 한다.
*
* @param <str>원본 String
* @param <int>자를 바이트 개수
* @param <char>+1 or -1
* @return <String> 절단된 String
*/
public String cutString(String str, int length, char type)
{
byte[] bytes = str.getBytes();
int len = bytes.length;
int counter = 0;
if(length >= len)
{
StringBuffer sb = new StringBuffer();
sb.append(str);
for(int i=0;i<length-len;i++) sb.append(' ');
return sb.toString();
}
for(int i=length-1; i>=0; i--)
{
if(((int)bytes[i] & 0x80) != 0) counter++;
}
String result = null;
if(type == '+') result = new String(bytes, 0, length + (counter % 2));
else if(type == '-') result = new String(bytes, 0, length - (counter % 2));
else result = new String(bytes, 0, length - (counter % 2));
return result + "..";
}
public String covToDate(String str) {
String tmpStr = "";
String tmpArray[] = new String[3];
String retStr = "";
if(!"".equals(str) && !"null".equals(str) && str != null) {
tmpStr = str.replaceAll(" ", "");
tmpStr = tmpStr.replaceAll("[.]", "-");
tmpArray = tmpStr.split("-");
if(tmpArray[0].length() < 4) {
tmpArray[0] = "20" + tmpArray[0];
}
if(tmpArray[1].length() < 2) {
tmpArray[1] = "0" + tmpArray[1];
}
if(tmpArray[2].length() < 2) {
tmpArray[2] = "0" + tmpArray[2];
}
retStr = tmpArray[0] + "-" + tmpArray[1] + "-" + tmpArray[2];
}
return retStr;
}
//원본 문자를 구분자로 분해하여 배열을 리턴한다.
//전화번호, 팩스의 경우 - 구분으로 3개의 배열값을 갖도록 할 경우 사용
public String[] getSepStringArr(String tarVal, String sepVal, int arrLen){
String[] retStrArr = new String[arrLen];
String[] tarStrArr = tarVal.split(sepVal);
for(int i=0; i<arrLen; i++){
if(i>=tarStrArr.length){
retStrArr[i] = "";
}else{
retStrArr[i] = tarStrArr[i];
}
}
return retStrArr;
}
/**
* 문자열의 특수문자장 줄바꿈 Escape 문자열을 HTML 문서의 줄바꿈 태그("<br/>")로 변경
* 2007-07-16 김형섭 추가
*
* @param <String>input 변경할 문자열
* @return <String>"\r\n"과 "\r"이 "<br/>"로 치환된 문자열
*
*/
public String toLineBreak(String input)
{
return input.replaceAll("\r\n", "<br/>").replaceAll("\r", "<br/>");
}
public String toLine(String input)
{
return input.replaceAll("<br/>", "\r\n").replaceAll("<br/>", "\r");
}
/**
* 퍼센트를 계산
* 2007-07-17 김형섭 추가
*
* @param <int>decimalCount 소수점 자릿수
* @param <int>number 대상값
* @param <int>sum 합계값
* @return <float>퍼센트값
*
*/
public float getPercent(int decimalCount, int number, int sum)
{
return this.getPercent(decimalCount, (float)number, (float)sum);
}
/**
* 퍼센트를 계산
* 2007-07-17 김형섭 추가
*
* @param <int>decimalCount 소수점 자릿수
* @param <int>number 대상값
* @param <float>sum 합계값
* @return <float>퍼센트값
*
*/
public float getPercent(int decimalCount, int number, float sum)
{
return this.getPercent(decimalCount, (float)number, sum);
}
/**
* 퍼센트를 계산
* 2007-07-17 김형섭 추가
*
* @param <int>decimalCount 소수점 자릿수
* @param <float>number 대상값
* @param <int>sum 합계값
* @return <float>퍼센트값
*
*/
public float getPercent(int decimalCount, float number, int sum)
{
return this.getPercent(decimalCount, number, (float)sum);
}
/**
* 퍼센트를 계산
* 2007-07-17 김형섭 추가
*
* @param <int>decimalCount 소수점 자릿수
* @param <float>number 대상값
* @param <float>sum 합계값
* @return <float>퍼센트값
*
*/
public float getPercent(int decimalCount, float number, float sum)
{
float devidedNumber = 0f;
if(sum != (float)0) devidedNumber = number/sum;
return formatDecimal(decimalCount, devidedNumber * 100f);
}
/**
* 소수점 자릿수를 지정하여 변경
* 2007-07-17 김형섭 추가
*
* @param <int>decimalCount 소수점 자릿수
* @param <float>number 대상값
* @return <float>변경된값
*
*/
public float formatDecimal(int decimalCount, float number)
{
String pattern = "#.";
for(int i=0; i<decimalCount; i++)
{
pattern+= "0";
}
DecimalFormat dformat = new DecimalFormat(pattern);
return Double.valueOf(dformat.format(number)).floatValue();
}
/**
* 소수점 자릿수를 지정하여 변경
* 2007-07-17 김형섭 추가
*
* @param <int>decimalCount 소수점 자릿수
* @param <double>number 대상값
* @return <float>변경된값
*
*/
public float formatDecimal(int decimalCount, double number)
{
String pattern = "#.";
for(int i=0; i<decimalCount; i++)
{
pattern+= "0";
}
DecimalFormat dformat = new DecimalFormat(pattern);
return Double.valueOf(dformat.format(number)).floatValue();
}
/**
* 숫자를 받아 3자리마다 ,를 넣어 리턴
* 2007-07-27 정상욱 추가
*
* @param <String>변경할 수
* @return <String>변경된 값
*/
public String convToMoney(String strNumber) {
String Money = "";
if (strNumber == null) {
Money = "";
} else {
try{
float floatMoney = Float.parseFloat(strNumber);
java.text.DecimalFormat tstFormat = new java.text.DecimalFormat("#,###");
Money = tstFormat.format(floatMoney);
}catch(Exception e){
Money = strNumber;
}
}
return Money;
}
public String padStr (String orgStr, String direction, String repStr, int len) {
orgStr = checkNull(orgStr, "");
for(int i = 1; i <= len; i++){
if("L".equals(direction))
orgStr = repStr + orgStr;
else
orgStr = orgStr + repStr;
}
return orgStr;
}
/**
* 현재의 날짜를 스트링으로 리턴
* 2007/09/13 추가 (김형섭)
*
* @param <String>format 날짜포맷 (ex-yyyyMMdd)
* @return <String>날짜
*/
public String getCurrentDate(String format)
{
SimpleDateFormat formatter = new SimpleDateFormat(format, new Locale("ko", "KOREA"));
return formatter.format(new Date());
}
/**
* 지정한 자리수만큼 0을 채움
* 2007/09/13 추가 (김형섭)
*
* @param <int>sourceNumber 대상숫자
* @param <int>formatLength 자리수
* @return <String>날짜
*/
public String formatZeroString(int sourceNumber, int formatLength)
{
String sourceString = Integer.toString(sourceNumber);
String result = "";
for(int i=sourceString.length(); i<formatLength; i++) result+= '0';
return result + sourceString;
}
}
var n4 = (document.layers)?true:false;
var e4 = (document.all)?true:false;
//숫자만입력(onKeypress='return keyCheckdot(event)')
function keyCheck(e) {
if(n4) var keyValue = e.which
else if(e4) var keyValue = event.keyCode
if (((keyValue >= 48) && (keyValue <= 57)) || keyValue==13) return true;
else return false
}
//숫자및돗트입력(onKeypress='return keyCheckdot(event)')
function keyCheckDot(e) {
if(n4) var keyValue = e.which
else if(e4) var keyValue = event.keyCode
if (((keyValue >= 48) && (keyValue <= 57)) || keyValue==13 || keyValue==46) return true;
else return false
}
//공백제거
function Trim(string) {
for(;string.indexOf(" ")!= -1;){
string=string.replace(" ","")
}
return string;
}
//입력검사
function Exists(input,types) {
if(types) if(!Trim(input.value)) return false;
return true;
}
//영문검사+숫자검사(첫글자는 반드시영문)
function EngNum(input,types) {
if(types) if(!Trim(input.value)) return false;
var error_c=0, i, val;
for(i=0;i<Byte(input.value);i++) {
val = input.value.charAt(i);
if(i == 0) if(!((val>='a' && val<='z') || (val>='A' && val<='Z'))) return false;
else if(!((val>=0 && val<=9) || (val>='a' && val<='z') || (val>='A' && val<='Z'))) return false;
}
return true;
}
//영문검사+숫자검사
function EngNumAll(input,types) {
if(types) if(!Trim(input.value)) return false;
var error_c=0, i, val;
for(i=0;i<Byte(input.value);i++) {
val = input.value.charAt(i);
if(!((val>=0 && val<=9) || (val>='a' && val<='z') || (val>='A' && val<='Z'))) return false;
}
return true;
}
//영문검사+숫자검사+'_'
function EngNumAll2(input,types) {
if(types) if(!Trim(input.value)) return false;
var error_c=0, i, val;
for(i=0;i<Byte(input.value);i++) {
val = input.value.charAt(i);
if(!((val>=0 && val<=9) || (val>='a' && val<='z') || (val>='A' && val<='Z') || val=='_')) return false;
}
return true;
}
//영문검사
function Eng(input,types) {
if(types) if(!Trim(input.value)) return false;
var error_c=0, i, val;
for(i=0;i<Byte(input.value);i++) {
val = input.value.charAt(i);
if(!((val>='a' && val<='z') || (val>='A' && val<='Z'))) return false;
}
return true;
}
//숫자만입력
/*
function numberonlyinput() {
var ob = event.srcElement;
ob.value = noSplitAndNumberOnly(ob);
return false;
}
*/
//돈(3단위마다 컴마를 붙인다.)
function checkNumber() {
var ob=event.srcElement;
ob.value = filterNum(ob.value);
ob.value = commaSplitAndNumberOnly(ob);
return false;
}
//한정액(일정금액 이상이 되면 올라기지 않게 한다.)
function chkhando(money) {
var ob=event.srcElement;
ob.value = noSplitAndNumberOnly(ob);
if(ob.value > money) ob.value = money;
return false;
}
//이자율(소수점 사용가능)
function checkNumberDot(llen,rlen) {
if(llen == "") llen = 8;
if(rlen == "") rlen = 2;
var ob=event.srcElement;
ob.value = filterNum(ob.value);
spnumber = ob.value.split('.');
if( spnumber.length >= llen && (spnumber[0].length >llen || spnumber[1].length >llen)) {
ob.value = spnumber[0].substring(0,llen) + "." + spnumber[1].substring(0,rlen);
ob.focus();
return false;
}
else if( spnumber[0].length > llen ) {
ob.value = spnumber[0].substring(0,llen) + ".";
ob.focus();
return false;
}
else if(ob.value && spnumber[0].length == 0) {
ob.value = 0 + "." + spnumber[1].substring(0,rlen);
ob.focus();
return false;
}
ob.value = commaSplitAndAllowDot(ob);
return false;
}
//참조함수
function filterNum(str) {
re = /^\$|,/g;
return str.replace(re, "");
}
//참조함수(컴마불가)
function commaSplitAndNumberOnly(ob) {
var txtNumber = '' + ob.value;
if (isNaN(txtNumber) || txtNumber.indexOf('.') != -1 ) {
ob.value = ob.value.substring(0, ob.value.length-1 );
ob.value = commaSplitAndNumberOnly(ob);
ob.focus();
return ob.value;
}
else {
var rxSplit = new RegExp('([0-9])([0-9][0-9][0-9][,.])');
var arrNumber = txtNumber.split('.');
arrNumber[0] += '.';
do {
arrNumber[0] = arrNumber[0].replace(rxSplit, '$1,$2');
}
while (rxSplit.test(arrNumber[0]));
if (arrNumber.length > 1) {
return arrNumber.join('');
}
else {
return arrNumber[0].split('.')[0];
}
}
}
//참조함수(컴마가능)
function commaSplitAndAllowDot(ob) {
var txtNumber = '' + ob.value;
if (isNaN(txtNumber) ) {
ob.value = ob.value.substring(0, ob.value.length-1 );
ob.focus();
return ob.value;
}
else {
var rxSplit = new RegExp('([0-9])([0-9][0-9][0-9][,.])');
var arrNumber = txtNumber.split('.');
arrNumber[0] += '.';
do {
arrNumber[0] = arrNumber[0].replace(rxSplit, '$1,$2');
}
while (rxSplit.test(arrNumber[0]));
if (arrNumber.length > 1) {
return arrNumber.join('');
}
else {
return arrNumber[0].split('.')[0];
}
}
}
//숫자만가능
function noSplitAndNumberOnly(ob) {
var txtNumber = '' + ob.value;
if (isNaN(txtNumber) || txtNumber.indexOf('.') != -1 ) {
ob.value = ob.value.substring(0, ob.value.length-1 );
ob.focus();
return ob.value;
}
else return ob.value;
}
//바이트검사
function Byte(input) {
var i, j=0;
for(i=0;i<input.length;i++) {
val=escape(input.charAt(i)).length;
if(val== 6) j++;
j++;
}
return j;
}
//팝업메뉴
function popupmenu_show(layername, thislayer, thislayer2) {
thislayerfield.value = thislayer;
thislayerfield2.value = thislayer2;
var obj = document.all[layername];
var _tmpx,_tmpy, marginx, marginy;
_tmpx = event.clientX + parseInt(obj.offsetWidth);
_tmpy = event.clientY + parseInt(obj.offsetHeight);
_marginx = document.body.clientWidth - _tmpx;
_marginy = document.body.clientHeight - _tmpy ;
if(_marginx < 0) _tmpx = event.clientX + document.body.scrollLeft + _marginx ;
else _tmpx = event.clientX + document.body.scrollLeft ;
if(_marginy < 0) _tmpy = event.clientY + document.body.scrollTop + _marginy + 20;
else _tmpy = event.clientY + document.body.scrollTop ;
obj.style.posLeft = _tmpx - 5;
obj.style.posTop = _tmpy;
layer_set_visible(obj, true);
layer_set_pos(obj, event.clientX, event.clientY);
}
function layer_set_visible(obj, flag) {
if (navigator.appName.indexOf('Netscape', 0) != -1) obj.visibility = flag ? 'show' : 'hide';
else obj.style.visibility = flag ? 'visible' : 'hidden';
}
function layer_set_pos(obj, x, y) {
if (navigator.appName.indexOf('Netscape', 0) != -1) {
obj.left = x;
obj.top = y;
} else {
obj.style.pixelLeft = x + document.body.scrollLeft;
obj.style.pixelTop = y + document.body.scrollTop;
}
}
//페이지이동
function move(url) {
location.href = url;
}
//닫기
function toclose() {
self.close();
}
//위치변경
function winsize(w,h,l,t) {
if(window.opener) resizeTo(w,h);
}
//포커스위치
function formfocus(form) {
var len = form.elements.length;
for(i=0;i<len;i++) {
if((form.elements[i].type == "text" || form.elements[i].type == "password") && Trim(form.elements[i].value) == "") {
form.elements[i].value = "";
form.elements[i].focus();
break;
}
}
}
// 날짜,시간 format 함수 = php의 date()
function date(arg_format, arg_date) {
if(!arg_date) arg_date = new Date();
var M = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
var F = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var K = new Array("일","월","화","수","목","금","토");
var k = new Array("日","月","火","水","木","金","土");
var D = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var l = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var o = new Array("전","후");
var O = new Array("오전","오후");
var a = new Array("am","pm");
var A = new Array("AM","PM");
var org_year = arg_date.getFullYear();
var org_month = arg_date.getMonth();
var org_date = arg_date.getDate();
var org_wday = arg_date.getDay();
var org_hour = arg_date.getHours();
var org_minute = arg_date.getMinutes();
var org_second = arg_date.getSeconds();
var hour = org_hour % 12; hour = (hour) ? hour : 12;
var ampm = Math.floor(org_hour / 12);
var value = new Array();
value["Y"] = org_year;
value["y"] = String(org_year).substr(2,2);
value["m"] = String(org_month+1).replace(/^([0-9])$/,"0$1");
value["n"] = org_month+1;
value["d"] = String(org_date).replace(/^([0-9])$/,"0$1");
value["j"] = org_date;
value["w"] = org_wday;
value["H"] = String(org_hour).replace(/^([0-9])$/,"0$1");
value["G"] = org_hour;
value["h"] = String(hour).replace(/^([0-9])$/,"0$1");
value["g"] = hour;
value["i"] = String(org_minute).replace(/^([0-9])$/,"0$1");
value["s"] = String(org_second).replace(/^([0-9])$/,"0$1");
value["t"] = (new Date(org_year, org_month+1, 1) - new Date(org_year, org_month, 1)) / 86400000;
value["z"] = (new Date(org_year, org_month, org_date) - new Date(org_year, 0, 1)) / 86400000;
value["L"] = ((new Date(org_year, 2, 1) - new Date(org_year, 1, 1)) / 86400000) - 28;
value["M"] = M[org_month];
value["F"] = F[org_month];
value["K"] = K[org_wday];
value["k"] = k[org_wday];
value["D"] = D[org_wday];
value["l"] = l[org_wday];
value["o"] = o[ampm];
value["O"] = O[ampm];
value["a"] = a[ampm];
value["A"] = A[ampm];
var str = "";
var tag = 0;
for(i=0;i<arg_format.length;i++) {
var chr = arg_format.charAt(i);
switch(chr) {
case "<" : tag++; break;
case ">" : tag--; break;
}
if(tag || value[chr]==null) str += chr; else str += value[chr];
}
return str;
}
// 해상도에 맞는 크기 사용
function screensize() {
self.moveTo(0,0);
self.resizeTo(screen.availWidth,screen.availHeight);
}
// 주민등록번호체크( 입력폼 1개)
function check_jumin(jumin) {
var weight = "234567892345"; // 자리수 weight 지정
var val = jumin.replace("-",""); // "-"(하이픈) 제거
var sum = 0;
if(val.length != 13) { return false; }
for(i=0;i<12;i++) {
sum += parseInt(val.charAt(i)) * parseInt(weight.charAt(i));
}
var result = (11 - (sum % 11)) % 10;
var check_val = parseInt(val.charAt(12));
if(result != check_val) { return false; }
return true;
}
// 주민등록번호체크( 입력폼 2개)
function check_jumin2(input, input2) {
input.value=Trim(input.value);
input2.value=Trim(input2.value);
var left_j=input.value;
var right_j=input2.value;
if(input.value.length != 6) {
alert('주민등록번호를 정확히 입력하세요.');
input.focus();
return true;
}
if(right_j.length != 7) {
alert('주민등록번호를 정확히 입력하세요.');
input2.focus();
return true;
}
var i2=0;
for(var i=0;i<left_j.length;i++) {
var temp=left_j.substring(i,i+1);
if(temp<0 || temp>9) i2++;
}
if((left_j== '') || (i2 != 0)) {
alert('주민등록번호가 잘못 입력되었습니다.');
j_left.focus();
return true;
}
var i3=0;
for(var i=0;i<right_j.length;i++) {
var temp=right_j.substring(i,i+1);
if (temp<0 || temp>9) i3++;
}
if((right_j== '') || (i3 != 0)) {
alert('주민등록번호가 잘못 입력되었습니다.');
input2.focus();
return true;
}
var l1=left_j.substring(0,1);
var l2=left_j.substring(1,2);
var l3=left_j.substring(2,3);
var l4=left_j.substring(3,4);
var l5=left_j.substring(4,5);
var l6=left_j.substring(5,6);
var hap=l1*2+l2*3+l3*4+l4*5+l5*6+l6*7;
var r1=right_j.substring(0,1);
var r2=right_j.substring(1,2);
var r3=right_j.substring(2,3);
var r4=right_j.substring(3,4);
var r5=right_j.substring(4,5);
var r6=right_j.substring(5,6);
var r7=right_j.substring(6,7);
hap=hap+r1*8+r2*9+r3*2+r4*3+r5*4+r6*5;
hap=hap%11;
hap=11-hap;
hap=hap%10;
if(hap != r7) {
alert('주민등록번호가 잘못 입력되었습니다.');
input2.focus();
return true;
}
return false;
}
// 비밀번호 체크
function check_passwd(input, input2, min) {
if(!input.value) {
alert('비밀번호를 입력해 주십시오.');
input.focus();
return false;
}
else if(BYTE(input.value) < min) {
alert('비밀번호의 길이가 너무 짧습니다.');
input.focus();
input.value='';
input2.value='';
return false;
}
else if(!input2.value) {
alert('확인비밀번호를 입력해 주십시오.');
input2.focus();
return false;
}
else if(input.value != input2.value) {
alert('비밀번호가 서로 다르게 입력되었습니다.');
input2.value='';
input2.focus();
return false;
}
else return true;
}
//콤마 넣기(정수만 해당)
function comma(val) {
val = get_number(val);
if(val.length <= 3) return val;
var loop = Math.ceil(val.length / 3);
var offset = val.length % 3;
if(offset==0) offset = 3;
var ret = val.substring(0, offset);
for(i=1;i<loop;i++) {
ret += "," + val.substring(offset, offset+3);
offset += 3;
}
return ret;
}
//문자열에서 숫자만 가져가기
function get_number(str) {
var val = str;
var temp = "";
var num = "";
for(i=0; i<val.length; i++) {
temp = val.charAt(i);
if(temp >= "0" && temp <= "9") num += temp;
}
return num;
}
//주민등록번호를 나이로 변환
function agechange(lno,rno) {
var refArray = new Array(18,19,19,20,20,16,16,17,17,18);
var refyy = rno.substring(0,1);
var refno = lno.substring(0,2);
var biryear = refArray[refyy] * 100 + eval(refno);
var nowDate = new Date();
var nowyear = nowDate.getYear();
return nowyear - biryear + 1;
}
//레디오박스 체크검사
function radio_chk(input, msg) {
var len = input.length;
for(var i=0;i<len;i++) if(input[i].checked == true && input[i].value) return true;
alert(msg);
return false;
}
//셀렉트박스 체크검사
function select_chk(input, msg) {
if(input[0].selected == true) {
alert(msg);
return false;
}
return true;
}
//새창띄우기
function open_window(url, target, w, h, s) {
if(s) s = 'yes';
else s = 'no';
var its = window.open(url,target,'width='+w+',height='+h+',top=0,left=0,scrollbars='+s);
its.focus();
}
<?
//셀렉트
function optionlist($optionlist, $getvalue="", $keyfield="key", $valuefield="value") {
foreach($optionlist as $key => $value) {
if($getvalue && $getvalue == ${$keyfield}) $chk = "selected";
else $chk = "";
echo "<option value='{${$keyfield}}' {$chk}>{${$valuefield}}</option>";
}
echo "\n";
}
//셀렉티드
function selected($checkkey, $getvalue="") {
echo "value='$checkkey'";
if($getvalue && $checkkey == $getvalue) echo " selected";
}
//체크드
function checked($checkkey, $getvalue="") {
echo "value='$getvalue'";
if($getvalue && $checkkey == $getvalue) echo " checked";
}
//주민번호 검사
function RegiNum($reginum) {
$weight = '234567892345'; // 자리수 weight 지정
$len = strlen($reginum);
$sum = 0;
if ($len <> 13) { return false; }
for ($i = 0; $i < 12; $i++) {
$sum = $sum + (substr($reginum,$i,1) * substr($weight,$i,1));
}
$rst = $sum%11;
$result = 11 - $rst;
if ($result == 10) {$result = 0;}
else if ($result == 11) {$result = 1;}
$jumin = substr($reginum,12,1);
if ($result <> $jumin) {return false;}
return true;
}
//사업자번호 검사
function comRegiNum($reginum) {
$weight = '137137135'; // 자리수 weight 지정
$len = strlen($reginum);
$sum = 0;
if ($len <> 10) { return false; }
for ($i = 0; $i < 9; $i++) {
$sum = $sum + (substr($reginum,$i,1) * substr($weight,$i,1));
}
$sum = $sum + ((substr($reginum,8,1)*5)/10);
$rst = $sum%10;
if ($rst == 0) {$result = 0;}
else {$result = 10 - $rst;}
$saub = substr($reginum,9,1);
if ($result <> $saub) {return false;}
return true;
}
//글자르기
function cut_str($msg,$cut_size,$tail="...") {
if($cut_size <= 0) return $msg;
$msg = strip_tags($msg);
$msg = str_replace("∓quot;","\"",$msg);
if(strlen($msg) <= $cut_size) return $msg;
for($i=0;$i<$cut_size;$i++) if(ord($msg[$i])>127) $han++; else $eng++;
if($han%2) $han--;
$cut_size = $han + $eng;
$tmp = substr($msg,0,$cut_size);
$tmp .= $tail;
return $tmp;
}
// 모든한글의 글자를 출력
function hangul_code() {
$count = 0;
for($i = 0x81; $i <= 0xC8; $i++) {
for($j = 0x00; $j <= 0xFE; $j++) {
if(($j >= 0x00 && $j <= 0x40) || ($j >= 0x5B && $j <= 0x60) || ($j >= 0x7B && $j <= 0x80) || ($j >= 0x00 && $j <= 0x40) ||
(($i >= 0xA1 && $i <=0xAF) && ($j >= 0xA1 && $j <= 0xFE)) || ($i == 0xC6 && ($j >= 0x53 && $j <= 0xA0)) ||
($i >= 0xC7 && ($j >= 0x41 && $j <= 0xA0))) continue;
echo chr($i).chr($j)." ";
$count++;
}
}
echo $count;
}
// 한글검사
function is_han($str) {
if(strlen($str) != 2) return false;
$i = ord ($str[0]);
$j = ord ($str[1]);
if($i < 0x81 || $i > 0xC8 || $j > 0xFE || ($j >= 0x00 && $j <= 0x40) || ($j >= 0x5B && $j <= 0x60) || ($j >= 0x7B && $j <= 0x80) ||
($j >= 0x00 && $j <= 0x40) || (($i >= 0xA1 && $i <=0xAF) && ($j >= 0xA1 && $j <= 0xFE)) ||
($i == 0xC6 && ($j >= 0x53 && $j <= 0xA0)) || ($i >= 0xC7 && ($j >= 0x41 && $j <= 0xA0))) return false;
else return true;
}
// 랜덤값 생성
function random_string($length) {
$randomcode = array('1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
'A', 'B', 'C', 'd', 'E', 'F', 'G', 'H', 'x', 'J',
'K', 'b', 'M', 'N', 'y', 'P', 'r', 'R', 'S', 'T',
'u', 'V', 'W', 'X', 'Y', 'Z');
mt_srand((double)microtime()*1000000);
for($i=1;$i<=$length;$i++) $Rstring .= $randomcode[mt_rand(1, 36)];
return $Rstring;
}
// 디렉토리 리스트
function DirList($path="./") {
$path = opendir($path);
while($list = readdir($path)) if($list != "." && $list != "..") $Arraydir[] = $list;
closedir($path);
return $Arraydir;
}
// 15자리의 유일한 숫자값 만들기
function uniquenumber() {
$temparray = explode(" ", microtime());
$temparray2 = substr($temparray[0],2,5);
$number =$temparray[1].$temparray2;
return $number;
}
// 파일이름과 확장자 분리
function ExplodeFile($filename) {
$filename = strtolower($filename);
$elements = explode('.',$filename);
$elemcnt = count($elements)-1;
if(count($elements)==1) $ext = '';
else $ext = $elements[$elemcnt];
unset($elements[$elemcnt]);
$fname = implode($elements,'');
$fileinfo["name"] = $fname;
$fileinfo["ext"] = $ext;
return $fileinfo;
}
// 그림확장자
function ImageType($filename) {
$webimg = explodefile($filename);
$webext = $webimg["ext"];
$defineexp = array("gif","jpg","png");
$count = count($defineexp);
for($i=0;$i<$count;$i++) {
if($defineexp[$i] == $webext) return true;
}
return false;
}
// 유닉스날짜 포맷
function date_format($unixtime,$format="Y.m.d",$empty=" ") {
if($unixtime) return date($format, $unixtime);
else return $empty;
}
//YYYY-MM-DD 형식을 유닉스 타임으로
function unix_format($times, $operator="-", $type=true) {
if($type == true) {
$times = trim($times);
$arry = explode($operator,$times);
if(count($arry) != 3) return date_format(0);
$mktime = mktime(0,0,0,$arry[1],$arry[2],$arry[0]);
return date("U", $mktime);
} else {
$formats = "Y{$operator}m{$operator}d";
return date($formats, $times);
}
}
// 주민등록번호 포맷
function jumin_format($juminno, $cutno=3, $des="x", $empty=" ") {
$juminno = str_replace("-","",$juminno);
if(strlen($juminno) != 13) return $empty;
for($i=0;$i<$cutno;$i++) $x .= $des;
$juminno = substr($juminno,0,13-$cutno).$x;
$juminno = substr($juminno,0,6)."-".substr($juminno,6);
return $juminno;
}
// 홈페이지 포맷
function url_format($url, $ltype=false, $title=false, $other="", $htype="http://", $empty=" ") {
$url = eregi_replace("http://","",trim($url));
if($url) $url = $htype.$url;
else return $empty;
if($title) $turl = $title;
else $turl = $url;
if($ltype) return "<a href='{$url}' {$other}>{$turl}</a>";
else return $url;
}
// 전송값 초기화
function post_format($str, $type) {
switch($type) {
case "url":
$str = trim($str);
$str = eregi_replace("http://","",$str);
break;
case "num":
$str = trim($str);
$str = str_replace(",","",$str);
break;
}
return $str;
}
// 이메일 포맷
function mail_format($email, $ltype=false, $title=false, $empty=" ") {
$email = trim($email);
$title = trim($title);
if(!$email && !$title) return $empty;
else if(!$email) return $title;
if($title) $temail = $title;
else $temail = $email;
if($ltype) return "<a href='mailto:{$email}'>{$temail}</a>";
else return $email;
}
// 전화번호 포맷
function tel_format($num1, $num2, $num3, $format="-", $empty=" ") {
$num1 = trim($num1);
$num2 = trim($num2);
$num3 = trim($num3);
if(!$num1) $num1 = "02";
if($num2 && $num3) return $num1.$format.$num2.$format.$num3;
else return $empty;
}
// 문자 포맷
function text_format($str, $empty=" ") {
$str = trim($str);
if($str) return $str;
else return $empty;
}
// 새창띄우기
function win_format($title, $url, $target, $width, $height, $scrollbars=1, $empty) {
$title = text_format($title, $empty);
return "<a href='#' onclick=\"open_window('{$url}', '{$target}', {$width}, {$height}, {$scrollbars})\">{$title}</a>";
}
// 나이(주민등록번호를 이용)
function AGE_jumin($lno,$rno) {
$refArray = Array(18,19,19,20,20,16,16,17,17,18);
$refyy = substr($rno,0,1);
$biryear = $refArray[$refyy] * 100 + substr($lno,0,2);
$nowyear = date("Y");
return $nowyear - $biryear + 1;
}
// URL 존재확인
function URL_exists($url) {
$url = str_replace("http://", "", $url);
list($domain, $file) = explode("/", $url, 2); // 도메인부분과 주소부분으로 나눕니다.
$fid = fsockopen($domain, 80); // 도메인을 오픈합니다.
fputs($fid, "GET /$file HTTP/1.0\r\nHost: $domain\r\n\r\n"); // 파일 정보를 얻습니다.
$gets = fgets($fid, 128);
fclose($fid);
if(ereg("200 OK", $gets)) return TRUE;
else return FALSE;
}
// 조사 꾸미기
$array = "뵤 벼 뱌 배 베 보 버 바 비 뷰 부 브 뱨 볘 봐 봬 붜 붸 뵈 뷔 븨 뾰 뼈 뺘 빼 뻬 뽀 뻐 빠 삐 쀼 뿌 쁘 뺴 뼤 뽜 뽸 뿨 쀄 뾔 쀠 쁴 죠 져 쟈 재 제 조 저 자 지 쥬 주 즈 쟤 졔 좌 좨 줘 줴 죄 쥐 즤 쬬 쪄 쨔 째 쩨 쪼 쩌 짜 찌 쮸 쭈 쯔 쪠 쪠 쫘 쫴 쭤 쮀 쬐 쮜 쯰 됴 뎌 댜 대 데 도 더 다 디 듀 두 드 댸 뎨 돠 돼 둬 뒈 되 뒤 듸 뚀 뗘 땨 때 떼 또 떠 따 띠 뜌 뚜 뜨 떄 뗴 똬 뙈 뚸 뛔 뙤 뛰 띄 교 겨 갸 개 게 고 거 가 기 규 구 그 걔 계 과 괘 궈 궤 괴 귀 긔 꾜 껴 꺄 깨 께 꼬 꺼 까 끼 뀨 꾸 끄 꺠 꼐 꽈 꽤 꿔 꿰 꾀 뀌 끠 쇼 셔 샤 새 세 소 서 사 시 슈 수 스 섀 셰 솨 쇄 숴 쉐 쇠 쉬 싀 쑈 쎠 쌰 쌔 쎄 쏘 써 싸 씨 쓔 쑤 쓰 썌 쎼 쏴 쐐 쒀 쒜 쐬 쒸 씌 묘 며 먀 매 메 모 머 마 미 뮤 무 므 먜 몌 뫄 뫠 뭐 뭬 뫼 뮈 믜 뇨 녀 냐 내 네 노 너 나 니 뉴 누 느 냬 녜 놔 놰 눠 눼 뇌 뉘 늬 요 여 야 애 에 오 어 아 이 유 우 으 얘 예 와 왜 워 웨 외 위 의 료 려 랴 래 레 로 러 라 리 류 루 르 럐 례 롸 뢔 뤄 뤠 뢰 뤼 릐 효 혀 햐 해 헤 호 허 하 히 휴 후 흐 햬 혜 화 홰 훠 훼 회 휘 희 쿄 켜 캬 캐 케 코 커 카 키 큐 쿠 크 컈 켸 콰 쾌 쿼 퀘 쾨 퀴 킈 툐 텨 탸 태 테 토 터 타 티 튜 투 트 턔 톄 톼 퇘 퉈 퉤 퇴 튀 틔 쵸 쳐 챠 채 체 초 처 차 치 츄 추 츠 챼 쳬 촤 쵀 춰 췌 최 취 츼 표 펴 퍄 패 페 포 퍼 파 피 퓨 푸 프 퍠 폐 퐈 퐤 풔 풰 푀 퓌 픠";
function lastCon($str) {
global $array;
if(ord($str[strlen($str)-1]) < 128) return false;
$str = substr($str, strlen($str)-2);
if(strstr($array, $str)) return false;
return true;
}
function ul_rul($str) {
return $str.(lastCon($str) ? "을" : "를");
}
function gwa_wa($str) {
return $str.(lastCon($str) ? "과" : "와");
}
function un_num($str) {
return $str.(lastCon($str) ? "은" : "는");
}
function i_ga($str) {
return $str.(lastCon($str) ? "이" : "가");
}
// 도메인 또는 문서가 존재하는지 검사
function exists_url($url, $port="80") {
$fp = @fsockopen($url, $port);
if($fp) return true;
else return false;
}
// 숫자를 한글로 바꾸기
function numtokor($num) {
$text ='';
$d_symbol = array('4' => "만", '8' => "억", '12' => "조", '16' => "경", '20' => "해", '24' => "시", '28' => "양", '32' => "구", '36' => "간", '40' => "정", '44' => "재", '48' => "극", '52' => "항하사", '56' => "아승지", '60' => "나유타", '64' => "불가사의", '68' => "무량대수");
$p_symbol = array('0' => "", '1' => "십", '2' => "백", '3' => "천");
$t_symbol = array('0' => "", '1' => "일", '2' => "이", '3' => "삼", '4' => "사", '5' => "오", '6' => "육", '7' => "칠", '8' => "팔", '9' => "구");
if(substr($num,0,1) == '-') {
$num = substr($num ,1);
$text .= '마이너스';
}
$length_of_num = strlen($num);
if($length_of_num > 72) {
$text = "존재할 수 없는 수치 입니다.";
} else {
//실행
for ($k=0; $k< $length_of_num; $k++) {
$striped_value = substr($num, $k, 1);
$text .= $t_symbol[$striped_value];
$power_value = ($length_of_num - $k -1) % 4;
if ($striped_value <> 0) $text .= $p_symbol[$power_value];
if ($power_value == 0) $text .= $d_symbol[$length_of_num - $k -1];
}
}
return $text;
}
//검색쿼리작성
function querystring($query) {
if($query) {
$queryarray = explode("&", $query);
$count = count($queryarray);
foreach($queryarray as $key => $value) {
$array2st = explode("=", $value);
if($array2st[1]) {
if($querystring) $querystring .= "&".$value;
else $querystring = $value;
}
}
return $querystring;
}
else return "";
}
//페이징
function pagelist($tables, $nowpage, $primarykey , $chartline, $chartpage, $wheres="", $findquery="", $others="", $orders="", $urlquery="", $lastopt=true, $allopt=true, $firstbutton="[처음]", $prebutton="[이전]", $nextbutton="[다음]",$lastbutton="[끝]") {
if($wheres) $wheres = " where {$wheres} ";
if($others) $wheres .= " and {$others} ";
if(!$chartline) $chartline = 10;
if(!$chartpage) $chartpage = 10;
if(intval($nowpage) == 0) $nowpage = 1;
if(intval($nowstep) == 0) $nowstep = 1;
##마지막버튼 유무 체크
if($lastopt) {
$query = "select count(*) count from {$tables} {$wheres} {$others} {$findquery}";
$result = mysql_query($query);
$total = mysql_fetch_object($result);
#총카운트 $total->count;
}
##총검색수
if($allopt) {
$query = "select count(*) count from {$tables} {$wheres}";
$result = mysql_query($query);
$all = mysql_fetch_object($result);
#총검색수 $all->count;
}
##설정값계산
$nowstep = ceil($nowpage/$chartpage);
if($lastopt) {
$allstep = ceil($total->count/($chartpage*$chartline));
$allpage = ceil($total->count/$chartline);
}
$startpage = 1 + ($nowstep-1) * $chartpage;
$endpage = $startpage + $chartpage - 1;
if($lastopt && $endpage > $allpage) $endpage = $allpage;
##다음버튼 유무 체크
$nextline = $nowstep * $chartline * $chartpage;
$nextlimitquery = " limit {$nextline}, 1";
$query = "select {$primarykey} from {$tables} {$wheres} {$others} {$findquery} {$nextlimitquery}";
$result = mysql_query($query);
$nextok = mysql_affected_rows();
##처음버튼 및 이전버튼
if($nowstep > 1) {
$fir = " <a href='$PHP_SELF?$urlquery&nowpage=1'>{$firstbutton}</a> ";
$prepage = $startpage - $chartpage;
$pre = " <a href='$PHP_SELF?$urlquery&nowpage=$prepage'>{$prebutton}</a> ";
} else {
$fir = " <font color='#C0C0C0'>{$firstbutton}</font> ";
$pre = " <font color='#C0C0C0'>{$prebutton}</font> ";
}
##NEXT 버튼 활성화
if($nextok) {
$nextpage = $endpage + 1;
$next = " <a href='$PHP_SELF?$urlquery&nowpage=$nextpage'>{$nextbutton}</a> ";
} else {
$next = " <font color='#C0C0C0'>{$nextbutton}</font> ";
}
##중간페이지
for($i=$startpage;$i<=$endpage;$i++) {
if($i == $nowpage) $pagelist .= " <font color='#6600FF'><b>$i</b></font> ";
else $pagelist .= " <a href='$PHP_SELF?$urlquery&nowpage=$i'>$i</a> ";
}
##끝페이지
if($lastopt && $allstep > $nowstep) {
$lastpage = $allpage;
$last = " <a href='$PHP_SELF?$urlquery&nowpage=$nextpage'>{$lastbutton}</a> ";
} else {
$last = " <font color='#C0C0C0'>{$lastbutton}</font> ";
}
$firstlimit = 0 + ($nowpage-1) * $chartline;
$limitquery = " limit {$firstlimit}, {$chartline}";
$query = "select * from {$tables} {$wheres} {$others} {$findquery} {$orders} {$limitquery}";
$result = mysql_query($query);
while($fetch = mysql_fetch_array($result)) $get[] = $fetch;
$get[0]["count"] = count($get);
$get[0]["page"] = $fir.$pre." [ ".$pagelist." ] ".$next.$last;
if($lastopt) $get[0]["total"] = $total->count;
if($allopt) $get[0]["allto"] = $all->count;
return $get;
}
//업로드
function file_upload($upfile,$upfile_name,$upfile_size,$dir,$newfilename) {
if($upfile_size) {
$is_file = is_file("{$dir}/{$newfilename}");
if($is_file) unlink("{$dir}/{$newfilename}");
move_uploaded_file($upfile, "{$dir}/{$newfilename}");
chmod("{$dir}/{$newfilename}", 0644);
return true;
} else return false;
}
//현재디렉토리
function nowdir() {
global $DOCUMENT_ROOT;
global $PHP_SELF;
$getdir = pathinfo($DOCUMENT_ROOT.$PHP_SELF);
return $getdir["dirname"];
}
String ref = request.getHeader("REFERER");
ref에 변수에 호출된 URL정보가 들어갑니다.
ref값이 null일 경우가 있는데 이는 브라우저 URL입력창에 입력 호출했을때는
null이 됩니다.
위의 방법을 이용해 자신의 컨텐츠가 무단 도용당하는걸 막거나 할때 유용하게 쓸수 있습니다.
레퍼러값을 체크하는 방법 2가지 입니다. 먼저, 레퍼러값이 null 값일경우 Default.aspx 페이지로 리다이렉팅. 만일 레퍼러값이 있을경우 현재, 사이트의 도메인과 레퍼러주소의 도메인이 다를경우 다시 Redirect 를 합니다. 바로 Redirect 를 해도 되지만, 자바스크립트로 Alert 를 띄운후 처리..
public void UrlReferrerCheck(string refferUrl)
{
if(Request.UrlReferrer == null)
{
string script = "< script>alert('직접 접근할 수 없습니다!!');" +
"location.href='/Default.aspx';";
Page.RegisterClientScriptBlock("done", script);
//Response.Redirect(refferUrl);
}
else
{
string refer = Request.UrlReferrer.ToString();
string ServerPath = Request.Url.ToString();
ServerPath = ServerPath.Substring(0,ServerPath.LastIndexOf("/"));
if(refer.IndexOf(ServerPath) == -1)
{
string script = "< script>alert('직접 접근할 수 없습니다!!');" +
"location.href='/Default.aspx';";
Page.RegisterClientScriptBlock("done", script);
//Response.Redirect(refferUrl);
}
}
}
<%@ page contentType="text/html; charset=MS949" %>
<%
String referer = request.getHeader("Referer");
String url = request.getRequestURL().toString();
String ctxPath = request.getContextPath();
int port = request.getServerPort();
String host = request.getServerName();
String tmp = "";
if (port == 80) {
tmp = "http://" + host + ctxPath;
}
else {
tmp = "http://" + host + ":" + port + ctxPath;
}
if (referer == null) {
%>
<HTML>
<HEAD><TITLE>Sorry</TITLE></HEAD>
<BODY>
<CENTER>
Sorry... <br />
<font color=red>URL 주소 직접 치고 들어 오지 마세요...</font>
</CENTER>
</BODY>
</HTML>
<%
return;
}
else if (!url.startsWith(tmp)) {
%>
<HTML>
<HEAD><TITLE>Sorry again</TITLE></HEAD>
<BODY>
<CENTER>
Sorry again... <br />
<font color=red>다른데서 여기를 링크 걸지 마세요...</font>
</CENTER>
</BODY>
</HTML>
<%
return;
}
%>
<HTML>
<HEAD><TITLE>Success</TITLE></HEAD>
<BODY>
<CENTER>
<font color=blue>성공!!</font> <br /> <br />
<font size=+2 color=blue>환영!!</font>
</CENTER>
</BODY>
</HTML>
PHP
if (!eregi($_SERVER['HTTP_HOST'], $_SERVER['HTTP_REFERER'])){
echo "<SCRIPT>alert('외부접근을 허용하지않습니다.');".$parent."location.href='javascript:history.go(-1);';</SCRIPT>"; exit;
}
ASP
Request.ServerVariables("HTTP_REFERER")
/**
*
* @param input
* 체크할 값
*
* 한글 , 영어 , 특수 기호 값을 체크
*/
public static void testChar(String input){
boolean test = false;
char[] charArray=input.toCharArray();
for (int j=0; j<charArray.length; j++) {
System.out.println(" 0x"+Integer.toHexString((int)charArray[j]));
if (charArray[j] >= 'A' && charArray[j] <= 'Z' || charArray[j] >= 'a' && charArray[j] <= 'z'){
System.out.println(charArray[j]+"=>"+"(English)");
}else if (charArray[j]>='\uAC00' && charArray[j]<='\uD7A3'){
System.out.print(charArray[j]+" =>"+"(한글)");
}else if (
(charArray[j]>='!' && charArray[j]<='/') ||
(charArray[j]>='[' && charArray[j]<=0x60) ||
(charArray[j]>='{' && charArray[j]<='~') ||
(charArray[j]>=':' && charArray[j]<='@')
){
System.out.println(charArray[j]+" =>"+"(특수 문자)");
}else if (charArray[j]>='0' && charArray[j]<='9'){
System.out.println(charArray[j]+"=>"+"(숫자)");
}else {
test = false;
for (int jnx=0; jnx<ChoSung.length; jnx++){
if(charArray[j]== ChoSung[jnx]){
System.out.println(ChoSung[jnx]+ "초성");
test = true;
break;
}
}
for (int jnx=0; test == false && jnx<JwungSung.length; jnx++){
if(charArray[j]== JwungSung[jnx]){
System.out.println(JwungSung[jnx] + " 중성 ");
test = true;
break;
}
}
for (int jnx=0; test == false && jnx<JongSung.length; jnx++){
if(charArray[j]== JongSung[jnx]){
System.out.println(JongSung[jnx] + "종성");
test = true;
break;
}
}
}
System.out.println("");
}
}