본문 바로가기

반응형
paygate 결제모듈 mid 는 appletest 로 사용하면 결제모듈이 연동되는것까지는 확인 가능하다. 결제완료까지 테스트되는것은 아님~~!! 더보기
Firefox 에서 this.parentElement.parentElement.rowIndex 동작하지 않는다. this.parentNode 으로 사용하면 FF , IE 에서 둘다 동작한다. parentElement 대신 parentNode 더보기
string split 구분자로 저장된것을 다른 테이블과 join ex ) select SQL_CALC_FOUND_ROWS pm.*, count(b.b_no) as cnt from product_month pm left outer join books b on concat(',',pm.pm_books_list,',' ) like concat('%,',b.b_no,',%' ) where pm.p_id = 1 group by pm.p_id, pm.pm_no order by pm.pm_no asc 위의 query 문의 설명을 하자면 pm.pm_books_list 에 저장된 값이 "1,2,3,4" 와 같은 문자열로 되어있다 join 되는 books 테이블의 key 인 b_no 값들을 pm_books_list 에 저장된 값과 비교하는것이다. b_no 값을 ",키값," 형태로 바꾸.. 더보기
sendmail virtusertable 한서버에 여러개의 메일 사용시 방법 1. /etc/mail/local-host-names 파일에 사용하려는 도메인을 적어준다. # local-host-names - include all aliases for your machine here. aaa.co.kr bbb.co.kr 이 파일을 수정하면 sendmail 을 재시작해야지 적용된다. 2. /etc/mail/virtusertable 파일을 열어 aaa@aaa.co.kr bbb_aaa 와 같이 수정한다 makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable 명령어로 적용시킨다. 이와 같이 셋팅하면 aaa@aaa.co.kr 로 메일을 보냈을때 bbb_aaa 계정으로 확인이 가능해진다. 참고로 메일 계정 추가 방법은 adduser bb.. 더보기
주민등록번호 체크 /***** * 주민등록번호 체크 * return : boolean * ex) 111111-1111111 * TODO : 주민등록번호 뒷자리 첫번째 자리에 7,8 로 시작하는 주민등록 번호가 있다. 이것은 귀화한 사람에게 발급되는 번호라고 한다 * 할 수 있다면 체크했으면 좋겠는데 아직은 위의 번호를 가진 사람도 보지 못했거니와 유효성도 같은 방식으로 해야 하는지 알지 못하겠다. *****/ function check_regnum(resno){ // 주민번호의 형태와 7번째 자리(성별) 유효성 검사 fmt = /^d{6}-[1234]d{6}$/; if(!fmt.test(resno)) return false; // 날짜 유효성 검사 birthYear = (resno.charAt(7) 더보기
법인번호 체크 /***** * 법인번호 체크 * return : boolean * ex) 111111-1111111 *****/ function check_corpnum(resno){ fmt = /^d{6}-d{7}$/; if(!fmt.test(resno)) return false; // Check Sum 코드의 유효성 검사 buf = new Array(13); for (i = 0; i < 6; i++) buf[i] = parseInt(resno.charAt(i)); for (i = 6; i < 13; i++) buf[i] = parseInt(resno.charAt(i + 1)); multipliers = [1,2,1,2,1,2,1,2,1,2,1,2]; for (i = 0, sum = 0; i < 12; i++) su.. 더보기
사업자등록번호 체크 /***** * 사업자등록번호 체크 * return : boolean * ex) 111-11-11111 *****/ function check_worknum(resno) { fmt = /^d{3}-d{2}-d{5}$/; if(!fmt.test(resno)) return false; // Check Sum 코드의 유효성 검사 buf = new Array(10); for (i = 0; i < 3; i++) buf[i] = parseInt(resno.charAt(i)); for (i = 3; i < 5; i++) buf[i] = parseInt(resno.charAt(i + 1)); for (i = 5; i < 10; i++) buf[i] = parseInt(resno.charAt(i + 2)); multip.. 더보기
input box 에 background images 넣기 인풋상자 배경으로 이미지를 넣는 예이다. http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/properties/backgroundpositiony.asp 이곳을 통해 자세한 내용 살펴볼 수 있고 링크들을 통해 설정값들에 대해 살펴볼수있다. 참고로 tabindex 는 탭키를 눌렀을때 이동순서를 지정할 수 있는것이다. 더보기
file 필드에 임의의 값을 강제로 입력시 submit 안될경우 var fileVal = false; try{ var xdoc = new ActiveXObject("Msxml.DOMDocument"); xdoc.async = false; xdoc.load(tar.nm_file.value); }catch(e){ if (xdoc.parseError.errorCode != 0) fileVal = true; } if(!fileVal){ currentObj = document.getElementById('nm_file'); parentObj = currentObj.parentElement parentObj.removeChild(currentObj); parentObj.appendChild(currentObj.cloneNode(true)); } input type file 에 .. 더보기
Oracle 관련 유용한 사이트 http://network.hanbitbook.co.kr/print.php?bi_id=537 - 오라클 Datbase에서의 TOP N Query http://www.akadia.com/services/ora_analytic_functions.html - Analytic Functions in Oracle 8i and 9i http://www.oracle.com/technology/oramag/webcolumns/2003/techarticles/rischert_regexp_pt1.html - Writing Better SQL Using Regular Expressions 더보기
input 상자안에 숫자값만 입력 받기 function onlyNumber() { // onkeypress 나 onkeydown 등에 사용하도록 // omkeydown="return onlyNumber();" if( (window.event.keyCode == 8) || (window.event.keyCode == 46) || ((window.event.keyCode>=96) && (window.event.keyCode 더보기
문자길이 체크 if(!String.bytes) String.prototype.bytes = function(){ var i, j=0; for(i=0;i 더보기
html 페이지 나누어서 출력하기 강제로 나누고 싶은 부분에다가 style="page-break-before:always;"를 추가하세요... 뭐 이런 식으루.... before를 넣으면 그 스타일 쉬트 쓴 앞에서 강제로 페이지 분할을 하고, after를 쓰면 뒤에서 분할합니다. 더보기
mysql 에서 order by rand() 와 같은 기능 ex) select no_goods from ( select no_goods from tm_goods a , tm_codes b where a.gb_goods = b.cd_code and b.ds_code = '001' and a.gb_goods = '001' order by dbms_random.value ) where rownum = 1 더보기
데이타베이스 설계시 프라이머리키 컬럼명지정시 주의사항 데이타베이스 설계할때 테이블을 만들다 보면 프라이머리키를 만들게 됩니다. 보통 프라이머리키는 다른 테이블에 참조되어 사용되어 지는데 이로서 릴레이션을 맺어 사용하기도 합니다. 각 테이블에서 같은 프라이머리키 컬럼명이 동일하지 않으면 Stored Procedure의 재사용이 힘들어 지게 됩니다. Stored Procedure의 업데이트 삭제등의 작업에서 이 프라이머리키값이 사용되어 지는대 칼럼명이 같지 않으면 파라메터 값으로 받거나 Stored Procedure내에서 변수로 지정을 해주어야만 합니다. 더보기
select시 순서에대한 값을 구하고자 할경우 ranking mysql> set@a = 0; Query OK, 0 rows affected (0.01 sec) mysql> select @a := @a + 1 as rank, num,id from member where order by num desc; +------+-----+--------+ | rank | num | id | +------+-----+--------+ | 1 | 9 | bbbb | | 2 | 5 | abbb | | 3 | 3 | cbbb | +------+-----+--------+ 3 rows in set (0.00 sec) 더보기
아이디만들때 제약사항 체크 if(ereg('^[a-z]{1}[a-z0-9]{3,10}$', $str)){ return true; }else{ return false; } 위의 예는 대소문자 구분하는 경우이고 $str 은 소문자 알파벳과 숫자로 이루어져야하고 첫째자리는 알파벳으로 시작하여야하고 자릿수는 4~10 자리로 제한되어있는 경우이다. ^ : 시작을 의미 $ : 마지막을 의미 [a-z] : 소문자 알파벳 [a-z0-9] : 소문자 알파벳과 숫자 {1} : 한자리 {3,10} : 세자리 최대 10자리 =========================================================== Javascript 에서도 동일하게 사용할수있다. function checkid(str){ fmt = /^[a-z]{1}[a.. 더보기
싸이월드처럼 http://xxx.xxx.xxx/사용자명 처럼 접속하여 미니 홈피 보여주기 싸이월드처럼 http://xxx.xxx.xxx/사용자명 처럼 접속하여 개인홈피나 미니 홈피 보여주기 ServerAdmin master@도메인 DocumentRoot /home/계정/public_html/ ServerName 도메인 AliasMatch ^/[_A-Za-z0-9-]+$ "/home/계정/public_html/user/index.php -> 꼭 파일로 링크여야함. ErrorDocument 404 /home/계정/public_html/error.html 위에서 보시는 봐와같이.. AliasMatch가 주인공입니다. 뭐 다들 딱 보시면 아실듯합니다. 위의 매칭을 벗어난 주소.. index.html이나 /폴더명/ 이런식은 그냥 정상적인 URL로 갑니다. 그렇지 않은 비정상적인 asdfasdf.asd.. 더보기
글이 길어져서 테이블이 늘어나는것 방지하는법 내용 와 같이 사용하면 된다 더보기
PEAR 를 이용하여 달력 만들기 require_once "Calendar/Month/Weekdays.php"; // 달력그리기 $Month = & new Calendar_Month_Weekdays(date("Y"), date("m"),0); $Month->build(); echo ""; while ($Day = & $Month->fetch()) { $cal_viewday=$Day->thisDay(); if(date("d",$viewday)==$cal_viewday) $bgcolor=" bgcolor=F3F3F3 "; elseif(date("Ymd")==date("Ym".$cal_viewday,$viewday)) $bgcolor=" bgcolor=C2C6CA "; else $bgcolor=""; if($Day->isFirst()) ech.. 더보기
이미지 전환효과 var effect = new Array; effect[0] = ""; effect[1] = "progid:DXImageTransform.Microsoft.Fade(duration=1.0,overlap=1.0)"; effect[2] = "progid:DXImageTransform.Microsoft.Stretch(stretchStyle='hide')"; effect[3] = "progid:DXImageTransform.Microsoft.Pixelate(MaxSquare=10, Duration=1, Enabled=false)"; effect[4] = "progid:DXImageTransform.Microsoft.RadialWipe(wipeStyle='clock')"; effect[5] = "progid:DX.. 더보기
group by having 을 이용하여 그룹별 최대,최소 하나씩 가져 올수있는 방법 두 테이블에서 가장 최근에 입사한 사람 가져오기 # # Table structure for table 'member' # CREATE TABLE member ( t_code tinyint(3) unsigned NOT NULL default '0', m_code tinyint(3) unsigned NOT NULL default '0', m_name varchar(100) default NULL, m_date datetime default NULL, PRIMARY KEY (m_code,t_code), UNIQUE KEY NewIndex (m_date) ) TYPE=MyISAM; # # Dumping data for table 'member' # INSERT INTO member (t_code, m_code,.. 더보기
리눅스 여러문서에서 문자열 검색 팁 정리 아래 방법은 제가 리눅스 관리를 하는 분들에게 물어 물어 나름대로 정리 해 놓은 내용입니다. 아래 내용은 여러 파일에서 어떤 문자열이 포함된 파일들을 찾고자 하거나, 치환할때 유용한 팁니다. 저는 많이 도움이 되었는데, 여러분들에게 도움이 되었을지 ... 틀린부분이나, 잘못된 부분이 있으면 꼬릿말 남겨주세요. 문자열찾기 방법 1 - 영어만 주로 가능 # grep -rw "찾는문자열" ./ 문자열찾기 방법 2 - 대/소문자 구분 안하고 검색 # grep -i -l "찾는문자열" * -r 2> /dev/null 문자열찾기 방법 3 - 한글, 영어 모두 가능 # find . -exec grep -l "찾는문자열" {} ; 2>/dev/null 문자열찾기 방법 4 - 한글,영어, 대소문자 안가리고 검색 # fi.. 더보기
MySQL 데이터베이스 최적화, MySQL 성능을 200%로 1 : MySQL 모니터링과 서버 튜닝 MySQL 데이터베이스 최적화, MySQL 성능을 200%로 1 MySQL 모니터링과 서버 튜닝 MySQL은 그 동안 이른바 APM으로 일컬어지는 아파치, PHP, MySQL 환경으로 소형 시스템이나 웹 환경에 주로 적용되어 왔지만 최근 기업들의 오픈소스 적용 바람을 타고 업무 시스템에 광범위하게 도입되고 있다. 하지만 우리나라에는 MySQL만을 다루는 책이 거의 전무할 정도로 MySQL 데이터베이스 자체에 대한 정보나 이해가 부족한 실정이다. 이번 연재를 통해 MySQL의 진정한 성능을 이끌어내자. 김병준│아이티브릿지 MySQL AB의 국내 골드 파트너인 아이티브릿지(www.itbridge.co.kr)의 MySQL 기술지원 팀장으로 MySQL을 비롯한 오픈소스에 대한 컨설팅과 튜닝 업무를 맡고 있다. .. 더보기
아이프레임으로 문서크기 자동조절하기 이 글은 다른분이 올리신 방법을 약간 수정 했습니다. 아이프레임 사용시 문서크기를 자동으로 조절하려면 아래 소스를 아이프레임 내의 제일 하단에 넣어 주세요. 그리고 아이프레임 소스를 아래와 같이 만들어 주세요. 문서의 크기에 맞게 조절하기 위해서 iFrame으로 호출될 문서에 스크립트를 썼습니다. 문서가 다 읽히면 그 문서의 길이를 구해 다시 iFrame 의 높이를 조절하는 겁니다. 폭은 width=600 의 값을 조절해 주시면 되겠죠? document.body.scrollIntoView(true); 현 문서의 맨 마지막으로 이동을 명령합니다. (faile) 라고 해주면 맨 아래로 갑니다. parent.document.all.inner1.height = document.body.scrollHeight; .. 더보기
경고창 없이 창닫기 프레임 쓴 사이트에서는 위의 소스로는 안되고.. top.opener = self; top.close(); IE 6.0 에서는 잘됩니다 더보기
새로고침을 막는 자바스크립트 더보기
E138: Can't write viminfo file [NULL]! 마지막 tmp 파일을 삭제하라는 메세지입니다. 계정의 루트폴더의 .viminf* 파일을 삭제해주시면 됩니다. if you look at massge "E138: Can't write viminfo file [NULL]!", Take a look at the thread surrounding: 더보기
리눅스 시간 맞추는 방법 rdate -s time.bora.net && clock -w 또는 rdate -s time.kriss.re.kr 시스템이 네트워크에 연결되어있다면 date -s '2000-12-28 10:10:10' 하면 됩니다. 더보기
Qmail queue 관리 스크립트 - qmHandle 큐메일을 관리하다보면 스팸이다 대량메일이다해서 큐 디렉토리 관리가 아주 중요하다. 근데!! 큐메일은 큐 관리를 디렉토리 형태를 하기 때문에(무려 80여개 커헐..) 그에 대한 스크립트의 중요성이 무쟈게 간절해진다.. 만들자니 엄두도 안나고.. 그래서 Michele Beltrame이라는 양반이 qmHandle 이라는 아주 유용한 스크립트를 만드셨다. (이양반 복 받을게야..) 사용법은 root로 로그인해서 ./qmHandle [옵션] 아래는 옵션 사항이다. Available parameters: -a : try to send queued messages now (qmail must be running) -l : list message queues => (local, remote 한꺼번에 출력한다.) -L .. 더보기

반응형