보급형 방구석 개발자
반응형

2009/02 7

게시판 DB 스키마 재정의

2009/02/12 - [게시판 만들기] - 게시판 DB 스키마 정리게시판 만들 때 DB의 스키마를 정리를 했었는데 사용하다 보니 문제점이 발견되었다.한 개의 게시판만 생성해서 사용할 때는 별 관계가 없지만 다수의 게시판을 생성했을 때 여러 가지 복잡하고 미숙한 부분들이 나타나서 스키마를 다시 재정의했다.#기본 게시판 테이블 우선 DB 테이블을 생성 시에 공지사항 게시판을 기본으로 생성하도록 했다.제일 하단에 보면 코드 테이블에 공지사항 게시판 값이 들어간 것을 알 수 있다.이렇게 부모글과 답변글에 대한 테이블을 분리해놓고 나니 처리하기가 한경 수월해졌다.여러 개의 게시판을 생성하더라도 호출이나 처리 시에는 게시판 코드값만 넣어서 처리하도록 했다.$board = 'bbs_'.$code;$sql = "SE..

mysql improved 함수 사용하기

기존에 mysql 관련 함수가 mysql_ 로 시작을 했다면 보다 개선된 함수는 mysqli_ 로 시작을 한다. 예를 들면 쿼리를 보내는 mysql_query() 함수의 경우 mysqli_query() 이런 식이다. 물론 위와 같이 쓰면 procedural방식으로 resource 를 반환하는 것이니 객체지향 방식으로 object 반환값을 받는다면 mysqli::query() 처럼 써야 한다. mySQL 4.1 이상에서 사용할 수 있다. 보다 자세한 내용은 http://kr2.php.net/manual/kr/book.mysqli.php 을 참고.

PHP 2009.02.16

MVC 모델로 본 게시판 만들기

줏어들은 건 있어서 디자인패턴이란 책도 집에 한 권 있다. (아, 물론 읽어 본 적은 없다...그냥 소장만 하고 있다.) 문득 작년에 본 루비온레일즈(처음엔 루비온레일즈로 게시판을 만들려고 했다.) 책에서 MVC 모델을 읽은 기억이 났다. 그래서 구글링을 통해 MVC 모델로 본 게시판 만들기를 정리해 봤다. (사실 이런건 맨 처음에 해야하는건데...) MVC(Model-View-Controller) 모델은 소프트웨어 재사용성이나 협업에 있어서 중요한 역할을 하는 것 같다. (내 관심은 재사용성이다.) Model: 비즈니스 로직과 처리 View: 사용자 인터페이스(UI) Controller: 네비게이션과 입력 MODEL 우선 Model은 사용자나 프로그램 상에서 필요로 하는 하나의 객체라고 생각하면 된다...

해결못한 한글입출력 문제

카페24 웹호스팅 중에서 제일 저렴한 것으로 테스트 중인데, 물론 DB는 utf-8이다. 여기서는 특별히 설정을 해주지 않아도 utf-8로 한글 입출력하는데 문제가 없다. 그런데, 나야나에서 무료로 계정을 나눠주어서 역시나 utf-8 DB로 계정을 받아서 테스트를 했는데... 영문 입출력엔 문제가 없으나, 한글은 입출력이 안되는 문제가 있다. 게시판 소스코드가 바뀐 것도 아닌데, 왜 이런 문제가 생기는지 카페24 DB 셋팅과 똑같이 해보아도 안된다. 아직 해결못한 과제다.

게시판 DB 스키마 정리

2009/02/07 - [잡담] - 추천서적 : 성공적인 웹 프로그래밍 PHP와 MySQL (제3판)"성공적인 웹 프로그래밍 PHP와 MySQL" 이라는 책을 읽고 난 뒤 DB의 스키마를 정리해 보았다.(읽을 수록 괜챦은 책이란 생각이 든다.)board (code, main_no, id, title, name, contents, passwd, date, count, email, reply_no, rel_no, depth, filename)code (num, code, bbs_name, passwd, readonly) 굵은체로 표시된 것이 primary key고, code 테이블에 이탤릭체로 표시된 code 는 board 테이블을 참조하는 foreign key다.맨 처음 게시판을 만들 때와는 조금 달라졌다..

게시판 검색 기능 수정

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로부터 값을 가..

비밀번호 암호화해서 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) 로 잡아줍니다.

PHP 2009.02.09
반응형