본문 바로가기

PHP 게시판 만들기22

13. php로 기초적인 게시판 만들기 - list.php Chap. 13 이어서 목록 보여주기 위한 기능을 구현해 봅시다. http://mydomain.com/bbs/list.php 로 접근하면 글 목록을 보여줘야겠군요. 한번에 다 못 보여주면 페이지를 지정해줘야겠지요?GET 방식으로 아래와 같이 페이지를 지정할 수 있도록 합시다. http://mydomain.com/bbs/list.php?page=1 아래코드로 list.php 를 시작합시다. 목록 이렇게 시작합니다. $q = "SELECT * FROM ap_bbs"; $result = $mysqli->query( $q); $total_record = $result->num_rows; 우선 ap_bbs 에 글이 있는지 없는지 부터 확인을 합니다.$total_record 가 0이 아니면, 테이블을 이용해서 목록.. 2012. 12. 17.
12. php로 기초적인 게시판 만들기 -write.php Chap 12. 어제 작성해놓은게 다 날아가버렸네요. 그래서, 다시 작성합니다. www 디렉토리 아래에 bbs 라고 만들고 그 안에 관련 파일들을 작성하겠습니다. 그에 앞서, 이전에 작성했던 것 중에 몇가지 수정을 하겠습니다. 먼저 main.css header, footer 에 테두리를 빨간색에서 회색(#C1C1C1)으로 변경합니다. content 는 #0FF 로 변경합니다. 빨간색이 너무 강렬해서 ㅋㅋ 그리고, header.php css를 읽어오는 부분이 상대경로로 되어있으니, 범용 이용가능하게 수정을 합니다. 글쓰기 쉽죠? login.php 와 유사합니다. 각 항목값의 name 잘 봐두세요. 저값을 받아서 DB에 저장하게 됩니다. write_check.php 를 만듭시다. 2012. 12. 17.
11. 트위터 부트스트랩 이용해서 레이아웃 만들기 Chap 11. 진행하는 동안 보이는 페이지의 모습이 바뀔 순간이 왔습니다. 사이트 전체에 적용될 CSS 파일을 작성해서 적용을 할 수도 있겠습니다만, 많은 시간과 노력이 필요합니다. 그래서!! 잘 만들어져있는 CSS 파일을 이용하도록 하겠습니다. 트위터 개발자들이 만들어서 배포하고 있는 부트스트랩 이라는 CSS 프레임워크가 있습니다.아래 사이트에서 다운받을 수 있습니다. 오늘 현재 버전 2.2.2 가 나왔네요. http://twitter.github.com/bootstrap 악! 주소가 바뀌었는데, 수정을 못 하고 있었네요..부트스트랩 주소입니다. http://getbootstrap.com 다운받아서 압축을 해제하면 bootstrap 디렉토리아래에 css 디렉토리, img 디렉토리, js 디렉토리가 있.. 2012. 12. 14.
10. 화면에 표시되는 내용 구분하기 Chap 10. 앞에서는 눈에 보이지 않는 중복 코드들을 하나로 작성해 봤었습니다. 이번엔 브라우저의 화면에 표시되는 내용을 내용에 따라 구분해 봅시다. 대부분의 경우, 화면 상단에는 메뉴바를 포함해서 사이트 모든 페이지에서 나타나는 내용들이 위치하게 됩니다. 그렇지 않을 수도 있지만요..대개 그렇다구요.. 화면 하단에는 작은 메뉴 혹은 저작권 표시 등 전 페이지에 걸쳐 유사한 내용을 표시하곤 하지요. 그리고, 그 사이에는 페이지마다 달라지는 컨텐츠가 나타납니다. 왼쪽에 메뉴바가 있을 수도 있고, 오른쪽에 있을 수도 있고..그런 부분은 일단 컨텐츠 영역에 집어넣읍시다. 그러면... 위에서부터 헤더 영역, 컨텐츠 영역, 푸터 영역으로 이름을 붙이겠습니다. 아시다시피, BODY 태그 안의 내용들이 화면에 출.. 2012. 12. 13.
9. 중복 코드는 하나의 파일로 작성해서 포함시키기 Chap 9. 파일이 하나 둘 늘어가고 있습니다. 그러다 보니, 상단의 공통된 내용들이 보이네요. BODY 태그 안의 내용은 페이지에따라 달라지겠지만, DB관련 코드나, 세션 관련 코드들이 중복되네요. 이 내용들을 하나의 파일로 만들어두고, 각 페이지에서 include() 계열 함수를 이용해서 포함시키도록 하겠습니다. 함수 설명은 PHP 카테고리에서 찾을 수 있습니다. 어디서 어디까지를 잘라낼까요?일단 아래 정도 preset.php 로 만들어 둡시다. 모든 파일의 상단에 preset.php 를 포함하도록 코드를 작성해야겠네요. require_once( 'preset.php' ); ...라고 적어봤더니... 이런..파일 경로가 문제네요. 파일의 위치와는 무관하게 항상 preset.php 를 포함시킬 수 있.. 2012. 12. 13.
8. session으로 로그인 정보 유지시키기 Chap 8. 아이디와 암호를 이용해서 사용자 확인을 하는 것까지 해봤습니다.제대로 로그인이 된 사용자라면, 사이트 곳곳을 누비는 동안, 로그인 사용자로서의 권한을 가질 수 있어야 겠지요. 그럴려면, 서버는 지속적으로 그 정보를 가지고 있을 필요가 있습니다.페이지가 바뀔 때마다 로그인을 강제할 수 없으니까요. 그럼, 로그인 정보처럼, 서버가 계속 가지고 가야하는 정보들은 어떻게 관리하면 좋을까요? 사용자가 사이트에 접속을 하게 되면, 세션 아이디를 가지게 됩니다. 그 세션이란거는 접속이 되어있는 동안 유지되는 또 하나의 연결의 끈이라고 칩시다. 그럼, 그 세션에다가 필요한 정보들을 기록해놓고 각각의 페이지에서 땡겨 쓸 수 있으면 좋겠군요. 그럴 목적으로 준비된 전역 변수가 있습니다. 페이지 내에서의 전역.. 2012. 12. 13.
7. 로그인 페이지 만들기 Chap 7. 이제까지 회원가입을 받는 기능은 최소한의 기능으로 구현해봤습니다.그럼, 가입한 회원이 로그인해서 사이트를 이용할 수 있도록 로그인 기능을 구현해봅시다. index.php 에 로그인 버튼을 만들어 줍시다. 로그인 회원가입 아래에 표시되도록 합니다. 그리고, login.php 를 www/member에 만듭니다. 회원으로부터 아이디와 암호를 입력받아야 하니까, form 태그를 이용한 signup.php 와 유사하게 만들수 있겠네요. login.php - 로그인 페이지 아이디 : 비밀번호 : user_id 와 user_pass 를 입력받아 login_check.php 로 전달합니다. login_check.php에서는 입력받은 값과 DB에 저장되어 있는 값을 비교해서 로그인을 허락할지 말지를 결정해.. 2012. 12. 12.
6. 가입 정보 저장 후 완료 페이지로 전환하기 Chap 6. php에서 사용자의 클릭없이 자동으로 다른 페이지로 전환하도록 하기 위해서는 header() 함수를 이용할 수 있습니다. header("Location: http://mydomain.com/member/signup_done.php"); exit(); 주의할 점은, header() 이전에 화면에 무언가를 출력해서는 안 됩니다. header()함수가 HTTP raw header를 전송하는 함수니까, 다른 무엇보다 우선되어야 하겠지요. exit() 함수는 페이지 전환 후에, 이후 영향을 미치기 않게 하기 위해서 적어주는 편이 좋습니다. 위 내용을 signup_check.php 의 마지막 부분에 넣도록 하겠습니다. 그리고, www/member 디렉토리 안에 signup_done.php 파일을 만들.. 2012. 12. 12.
5. 사용자 암호를 암호화 하기 Chap 5. 앞서 회원가입을 위해 입력한 값을 DB에 저장하는 것까지 해봤는데요, 암호가 입력한 문자열 그대로 저장이 됩니다. 이는 보안을 생각하면 좋은 방법이 아닙니다. php 에서 문자열을 암호화하는 함수들을 몇개 제공하고 있는데요, PHP 카테고리에 있는 다음 글을 참고하시길 바랍니다. md5(), sha1() 2012. 12. 11.