PHP32 EUC-KR -> UTF-8 DB 이전하기 2년 전 퇴사를 했는데, 당시 다니던 회사에서 쓰려고 만들었던 B2B 쇼핑몰을 리뉴얼하고 싶다는 연락을 받고 지금 작업 중이다. 회사를 그만 둔 뒤 창업한 회사에서 쓰려고 바닥부터 새로 개발한 쇼핑몰 프로그램이 있었기에 그걸로 옮기기로 했다. 사실 DB는 한번도 이전을 해본 적이 없어서 어떻게 해야하나...고민을 하다가 실시간으로 기존 DB에서 데이터를 불러와서 새 DB에 insert하면 되지 않나 생각했는데, 같은 호스팅회사를 쓰고 있어도 원격 DB 접속은 지원을 하지 않아 불가능했다. 그 다음으로 생각한 것이 어차피 테이블명 등도 겹치지 않고 하니 DB를 dump해서 새 DB에 넣은 뒤 기존 테이블 데이터들을 가지고 와서 하면 되지 않을까 싶었는데, JSP를 하는 친구로부터 csv 파일을 받아서 작업.. 2010. 8. 11. 서버의 현재 디렉토리명을 반환하는 함수 아래의 함수는 서버의 현재 디렉토리명을 반환하는 함수를 급히 만들 일이 있어 한번 만들어 보았다. 디렉토리 내에 들어있는 특정 이미지를 보여주는 것이다.여기서는 로고 이미지. 2009. 11. 10. 게시판 DB 스키마 재정의 2009/02/12 - [게시판 만들기] - 게시판 DB 스키마 정리게시판 만들 때 DB의 스키마를 정리를 했었는데 사용하다 보니 문제점이 발견되었다.한 개의 게시판만 생성해서 사용할 때는 별 관계가 없지만 다수의 게시판을 생성했을 때 여러 가지 복잡하고 미숙한 부분들이 나타나서 스키마를 다시 재정의했다.#기본 게시판 테이블 우선 DB 테이블을 생성 시에 공지사항 게시판을 기본으로 생성하도록 했다.제일 하단에 보면 코드 테이블에 공지사항 게시판 값이 들어간 것을 알 수 있다.이렇게 부모글과 답변글에 대한 테이블을 분리해놓고 나니 처리하기가 한경 수월해졌다.여러 개의 게시판을 생성하더라도 호출이나 처리 시에는 게시판 코드값만 넣어서 처리하도록 했다.$board = 'bbs_'.$code;$sql = "SE.. 2009. 2. 25. MVC 모델로 본 게시판 만들기 줏어들은 건 있어서 디자인패턴이란 책도 집에 한 권 있다. (아, 물론 읽어 본 적은 없다...그냥 소장만 하고 있다.) 문득 작년에 본 루비온레일즈(처음엔 루비온레일즈로 게시판을 만들려고 했다.) 책에서 MVC 모델을 읽은 기억이 났다. 그래서 구글링을 통해 MVC 모델로 본 게시판 만들기를 정리해 봤다. (사실 이런건 맨 처음에 해야하는건데...) MVC(Model-View-Controller) 모델은 소프트웨어 재사용성이나 협업에 있어서 중요한 역할을 하는 것 같다. (내 관심은 재사용성이다.) Model: 비즈니스 로직과 처리 View: 사용자 인터페이스(UI) Controller: 네비게이션과 입력 MODEL 우선 Model은 사용자나 프로그램 상에서 필요로 하는 하나의 객체라고 생각하면 된다... 2009. 2. 15. 게시판 검색 기능 수정 2008/11/22 - [게시판 만들기] - 검색 기능 추가 이전 검색기능은 잘 모르는 상태에서 만들다 보니 실행이 잘 안됐다. 아래는 수정한 코드다. //검색 시 DB 쿼리에 추가할 부분 //form submit 할 때 히든값으로 $mode 값을 넘긴다. if($mode=='search') { switch ($key) { case "title": $s_sql .= " AND title LIKE '%$keyword%' "; break; case "contents": $s_sql .= " AND contents LIKE '%$keyword%' "; break; case "name": $s_sql .= " AND name LIKE '%$keyword%' "; break; } } ... //DB로부터 값을 가.. 2009. 2. 11. 비밀번호 암호화해서 DB에 저장 후 비교하기 비밀번호를 저장하는데 여러 가지 방법이 있더군요. 그 중에 php의 sha1() 함수를 써보았습니다. 우선은 회원가입 시 sha1() 함수로 비밀번호를 DB에 저장합니다. POST 방식으로 아이디와 비밀번호가 넘어왔다면, $passwd 변수에 sha1() 함수의 리턴값을 대입해서 암호화합니다. $id = $_POST['id']; $passwd = sha1($_POST['passwd']); mysql_query("INSERT INTO member (id, passwd) VALUES('$id', '$passwd')"); 이 때 중요한 것이 DB의 passwd 자릿수입니다. varchar(41) 로 잡아줍니다. 2009. 2. 9. SQL now() 사용하기 DB 필드명과 타입을 reg_date datetime 형태로 만들고, 데이터 입력 시에 now()를 주면 날짜와 시간이 모두 들어간다. (예: 2009-01-01 12:00:34 ) INSERT INTO member (id, passwd, ... reg_date ) VALUES('test' , '1111', ... now() ); 만약 뒤의 시간이 필요없다면, 그냥 컬럼타입을 datetime -> date로 바꿔주면 2009-01-01 만 입력이 된다. 기존에 데이터가 입력되어 있더라도 업데이트를 하면 그냥 날짜만 남는다. 시간을 날짜만 혹은 날짜와 시간을 함께 적절하게 입력할 필요가 있을 때 쓰면 편하다. 2009. 1. 29. PHP 막대그래프 그리기 이상하게 graphite나 jpgraph를 단독으로 쓰면 그래프 예제 등이 잘 보이는데 다른 소스 내에 포함시켜쓰려니 꼭 헤더가 이미 보내졌다면서 문제가 발생하더군요. 그래서 그냥 하나 만들어서 쓰려고 여기 저기 찾던 중 아래와 같은 소스를 구했습니다. $max_value) $max_value = $val[$i]; } $im = @ImageCreate($x,$y) or die ("이미지를 초기화 하지 못했습니다"); switch($theme) { case "red" : $backgroundcolor=ImageColorAllocate($im,208,208,208); //-- 그래프 바탕색 $rectanglecolor = ImageColorAllo.. 2009. 1. 26. 네이버 스마트에디터 사용하기 아무래도 일반 를 사용하는 것보단 예쁘고 깔끌하게 작성 글을 꾸밀 수 있는 적당한 웹에디터를 찾고 있었는데, 이번에 네이버에서 공개한 스마트 에디터가 눈에 띠더군요. http://dev.naver.com/projects/smarteditor 지속적인 업데이트나 사후관리가 괜챦을 것 같아 한번 채용해봤습니다. 나름 괜챦습니다. 아직까지 약간의 버그들이 있어 보이지만, 실무에 적용하는데 큰 무리는 없어보이고 버그들에 대한 리포트와 그에 대응하는 디버깅도 빠른 편입니다. 파이어폭스와 적용에 약간의 문제가 있어 몇 번 문의를 했는데 잘 해결이 되었습니다. 사용방법도 간단합니다. CSS와 자바스크립트를 상단에 넣어주고, 기존의 영역에 똑같이 스마트에디터를 삽입하고, 문서의 맨 마지막이나 onload 시에 스마트에.. 2009. 1. 21. 이전 1 2 3 4 다음