목록Develop (76)
Daniel's Knowledge Storage
파일 업로드 관련소스를 보면 대부분 복잡합니다. 고로 귀찮아서 책안보시고 공부하는분들은 접근하기가 어렵는데, 사실 한번 해보면 쉽습니다. 아래는 기본적인 업로드에 관련된 소스입니다. 폼입니다. view plaincopy to clipboardprint? 이렇게 보내면 이렇게 변수를 받습니다. view plaincopy to clipboardprint? $_FILES['userfile']['userfile']['name'] = "업로드한파일명.jpg"; $_FILES['userfile']['userfile']['type'] = "image/jpeg"; // 파일의 포맷 $_FILES['userfile']['userfile']['tmp_name'] = "/tmp/phpKAI9e1"; // 파일이 서버의 임시..
webmin 설치 후 잘 될꺼라는 메뉴얼과는 달리...절대 접속이 안되는 경우.... 포트를 따로 열어줘야 한다... 어찌보면 당연한것 같지만....아무튼 열어 줘야 한다... 기본 10000번 포트를 연다고 가정하면, iptables -I INPUT 1 -p tcp --dport 10000 -j ACCEPT iptables -I OUTPUT 1 -p tcp --dport 10000 -j ACCEPT 이제 해보시라...된다.
실제는 더 많은 내용들이 있지만 해당 제목만 퍼옵니다. 원문은 아래 링크에서!! http://cl.dgtalx.net/142 1. 가장 중요한것은 기초 알고리즘과 로직들이다. 2. MVC는 가장 최악의 경우를 불러일으킨다. 3. 변수의 선언에는 신경을 써야한다. 4. 네임 쿼테이션은 최대한 ' 로 통일 5. 펑션도 메모리다. 6. DB의 Select또한 부하다. 7. PHP를 신뢰하지마라! 8. 캐시를 적당히 이용하라 9. 프로파일링을 위해 시간을 아끼지 말라 9. 서버의 파인튠을 위해 많은 시간을 할당하라 10. 이렇게 하면 안된다! 대표적인 배드코딩
출처(http://www.wssplex.net/TipnTech.aspx?Seq=281) 여러 보안 기관 및 언론등에서 자주 오르내리는 해킹사건의 상당 부분이 웹사이트를 통해서 이루어지고 있다. 왜냐면, 요즘에는 거의 대부분 방화벽등의 장비등을 통해서 막아 놓기 때문에 역시 공개되어 있는 루트를 이용해야 하는데 그것이 바로 웹사이트 이기 때문이다. 예전에는 주로 서버자체 OS나 응용프로그램의 취약점을 노리고 있으나, 최근에는 웹사이트 프로그램 코드의 취약점을 이용하고 있으며, 국내 웹사이트의 상당수가 (일부 포털의 CP 사이트 포함) 노출되어 있는 형국이고,. 데이터가 탈취 당했음에도 여전히 모르고 있는체 웹사이트가 운영되고 있다. 웹사이트 해킹은, 해당 웹사이트 파괴나 데이터 위변조에서 멈추는게 아니라 ..
백업주기를 매일(매일 새벽3~4시경 자동 백업실행) 하는걸로 가정하고 백업된 DB는 누적되는게 아니라(용량문제로) 매일 갱신됩니다. # cd /etc/cron.daily/ # vi Backup_DB ==> 여기서 'Backup_DB' 는 원하는 파일명이며 반드시 실행권한을 줘야 한다. --------------------------------- #!/bin/sh DATE=`date +"%Y%m%d"` PREV_DATE=`date --date '1 days ago' +"%Y%m%d"` BACKUP_DIR=/home/Backup /usr/local/mysql/bin/mysqldump -u 디비사용자아이디 -p디비암호 디비명 > ${BACKUP_DIR}/Intra_${DATE}.sql chown root.ro..
crontab을 이용한 응용이다. 아주 간단하지만 이제막 입문한 프로그래머들에게 조금이나마 도움이 되고 흥미로운 작업이 되었음 좋겠다. crontab은 예약을 해둘 수 있는 기능이다. 예를 들어 매일 일정 시간에 알아서 DB를 백업하거나 특정 경로를 백업하게 할 수 있다. 그리고 php도 실행을 할 수 있다. 이것을 응용하면 메일을 예약 발송하거나 주기적으로 불필요한 temp파일을 지우거나 DB을 제어 하거나(쓰고,지우고,수정하는 등) 아무튼 php로 구현할 수 있는 모든 것을 구현하여 제어 할 수 있다. 진행 했던 일중에 매일 매일 이메일을 보내 주는 기능이 필요했다. 관리자가 발송할 날짜를 선택해서 DB에 저장을 하면 해당 날짜에 발송이 되는 것이다. 이 경우의 진행될 프로세스이다. 관리자가 메일 내..
흔히 게시판을 만들게 되면 GET방식으로 글 번호나 게시판 아이디를 board.php나 view.php로 넘겨 주고 그 파일에는 받은 파일을 근거로 DB에서 자료를 로드한다. 이경우 아래와 같이 주소가 생기게 된다. 게시판 목록의 경우 - http://mysite.com/board/list.php?board_id=notice 게시판 내용보기의 경우 - http://mysite.com/bord/view.php?board_id=notice&document_id=1234 이 주소를 아파치서버의 Rewrite를 사용하여 간단하게 줄일 수 있다. 자신의 계정의 가장 상위에(index.html이 돌아가는...) 다음과 같은 파일을 생성한다. .htaccess 내용은 다음과 같이 한다. RewriteEngine On..
mysql 예약어 표입니다. ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL CASCADE CASE CHANGE CHAR CHARACTER CHECK COLLATE COLUMN CONDITION CONNECTION CONSTRAINT CONTINUE CONVERT CREATE CROSS CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR DATABASE DATABASES DAY_HOUR DAY_MICROSECOND DAY_MINUTE DAY_SECOND DEC DECIMAL DECLARE DEFAULT DELAYED DELETE ..
플래시는 모든 레이어 위에 떠서 작업시 애를 먹었던 기억이 있습니다. 그럴 경우는 플래시 삽입 부에 다음과 같이 추가해 주세요.
DB의 내용을 PHP로 파싱을 해서 xml파일로 저장시키는 방법이 있습니다. 예제로 DB내의 내용이 아래와 같다면 +----------+------+------------+ | searchW | cnt | date | +----------+------+------------+ | 싸이월드 | 1784 | 2006-11-27 | | 야후 | 709 | 2006-11-27 | | 옥션 | 643 | 2006-11-27 | +----------+------+------------+ 파싱시키는 예제소스는 아래와 같습니다. 그렇다면 만들어진 결과물 test.xml파일은 아래와 같은 내용의 xml파일이 될겁니다. test.xml:: 싸이월드 1784 2006-11-27 야후 709 2006-11-27 옥션 643 ..
파일 업로드시 그리고 다시 불러와서 출력시 환위를 알아서 kb,mb,gb,tb까지 변경해 주는 함수다. function getFileSize($size, $float = 0) { $unit = array('Byte', 'KB', 'MB', 'GB', 'TB'); for ($L = 0; intval($size / 1024) > 0; $L++, $size/= 1024); if (($float === 0) && (intval($size) != $size)) $float = 2; return number_format($size, $float, '.', ',') .' '. $unit[$L]; } $up_file_size = getFileSize($up_file_size);
sql 문에서 order by rand() limit 1 하면 한개를 랜덤하게 출력함. 리미트값을 3개를 주면 3개를 뽑아 오겠죠? 그리고 mktime(); 함수를 사용해서 시간을 지정한 후, sql문 조건문에 BETWEEN을 주면 해당 기간내에서의 3개 랜덤으로 뽑아 오겠죠? 이를테면 한주간의 새로운 글 3개 또는 인기글 3개 뽑아 올 때 쓸 수 있겠네요.
첫번째 방법. 두번째 방법.(Mysql에서 바로 잘라서 가져옴) select idx, concat(left(subject, 20), \'\\0\') as subject, time from board where class=\'issue\' 단 mysql 버젼이 좀 되어야 합니다. 버젼은 확인은 못해 봤지만...^^
// 사용시 모든 데이터가 날아가므로 주의를 요함(Recursive) function LIB_removeAllData( $URL ) { if( is_dir( $URL ) ) { if( $dh = opendir( $URL ) ) { while( ( $file = readdir( $dh ) ) !== false ) { if( $file == '.' || $file == ".." ) continue; if( filetype( $URL.$file ) == "dir" ) LIB_removeAllData( $URL.$file.'/' ); else @unlink( $URL.$file ); // 파일 삭제 } @rmdir( $URL ); // 폴더 삭제 closedir( $dh ); } } } 사용시 $dir = "/..
[출처] 패스워드 자동생성하기 |작성자 정연아빠
if(!$mode) { include "connect.db"; set_time_limit(0); // 메일 발송 시간이 오래되는 경우 타임에러가 나지 않도록 php실행시간을 연장해준다. //시작번호와 끝나는 번호는 메일링 테이블에서 no값입니다. 만약 1만명이 있으면 보통 1번부터 시작해서 3000번 보내고 다음번에는 3001번부터 보내시면 됩니다. if(!$end_no){ $end_no = $start_no;} if($start_no) $str = "where no>=$start_no and no // 모두에게 보내는 모드인 경우에는 if($to == "all") { $result = mysql_query("select no, email from nan $str order by no"); } $coun..
경매 남은시간 계산 소스입니다. $StartTime=$Auction[Start_time]; //시작시간을 받아옵니다(종료시간 받아와도 좋습니다.) switch ( $State ) (경매의 진행상태를 보여주는 값을 받아와서 값대로 뿌려줍니다.그려) { case 2: $StateName = '낙찰'; break; case 3: $StateName = '유찰'; break; case 1: $StateName = '경매진행중'; } $StartT = explode(' ',$StartTime); /*1 $StartT2 = explode('-',$StartT[0]); /*2 $StartT1 = explode(':',$StartT[1]); /*3 //이 소스를 이따우로 만든 이유는... DB에 날짜(시작날짜 오알 종..
function han() { global $title; $han_num=strlen($title); if ($han_num>50) { $title=substr($title,0,50); $title=$title."·······"; } $title=str_replace("?·······","·······",$title); return; } // end func
Mysql과 php에서 가장 많이 활용되는 기법은 MD5() 함수를 이용한 암호화 기법이다. mysql의 sql언어에서도 MD5()함수가 지원되고, php 언어에서도 MD5()함수가 지원되기때문에 양쪽에서 암호화를 할 수 있다. php의 MD5()함수를 사용해서 암호화 하는 구문 $sql="insert into user (userid,password,name,email) values('$userid', ".MD5('$password').", '$name', '$email') "; 회원의 비번이나 게시판의 글암호에 모두 이용하면 좋다.