티스토리 뷰
- 게시글 작성 : write.php -> write_ok.php
: 로그인 한 사용자만 게시글 작성
- 게시글 제목, 게시글 본문, 게시글 작성 시간, 첨부파일(파일 업로드), 조회수
- 게시글 삭제 : delete.php
: 본인이 작성한 게시글만 삭제 가능
- 게시글 수정 : view.php -> update.php
: 본인이 작성한 게시글만 수정 가능
TIME함수 사용해서 게시글 작성 시간.
write.php : 입력폼 만들고 submit하면 write_ok.php 로
게시글 제목은 text 쓰고 게시글 본문은 text area 쓰면 된다.
지난번에 이어 Write 기능을 구현해보도록 하자.
Write 는 로그인 한 사용자만 사용 가능하게 하도록 설계하였으므로, index.php 파일을 수정해준다.
# 현재 상태는 로그인이 되어있지 않아도 Write버튼이 보인다.
# 세션값을 이용해 현재 사용자가 로그인중인지 아닌지를 판단하여 Write 기능을 활성/비활성화 제어하였다.
# 로그인이 되어있을때 write 기능이 활성화 된다.
이번엔 저 write 기능을 실제로 구현하여 글쓰기가 가능한 게시판을 만들어보도록 하자.
write를 구현하는데에 있어서 상단의 네비게이션 바를 유지한 채, 하단의 div 내용만 변경시키는 방법으로
구현을 해보도록 하자.
index.php 를 복사해서 전체 디자인들이 그대로 유지된것처럼 보이게 한 채,
컨테이너 안의 테이블 만 제거하고 폼을 구성하자.
http://bootstrapk.com/css/#forms
http://bootstrapk.com/components/#input-groups
부트스트랩을 이용해 여러 디자인이 적용된 폼을 만들자.
# 위의 틀을 이용해서 제목, 본문 등을 구성해보자.
# 우선 write 버튼에 write.php를 링크로 걸어준다.
# index.php 파일을 write.php파일로 copy 한 뒤 세션값 확인하는 부분과 그 하단 컨테이너부분을 수정해주자.
#
만약 write.php로 접근했는데 세션값이 설정되어있지 않거나, 세션값이 부여받은 1이라는 정수가 아닐경우
이전페이지(index.php) 로 돌아가도록 설정해주었다.
그렇지 않고 세션값이 로그인 상태를 의미하면 입력폼을 확인할 수 있다.
#
폼양식 디자인은 본인이 원하는대로 수정 가능하다. 하단의 UPLOAD버튼이 submit을 의미한다.
이번엔 파일 업로드에 해당하는 부분을 확인해보자.
우선 write_ok.php 에서 write.php에 작성한 파일을 잘 받는지 테스트해보도록하자.
# 파일업로드를 위해 enctype="multipart/form-data" 를 지정해주고
각 폼에 네임속성을 달아주자. write_ok.php 에서 정보를 받아들이기 위함이다.
# 정보가 넘어가는것을 확인할 수 있다.
파일이 전송될 때, 폼을 통해서 파일을 보내는경우 반드시 멀티파티폼을 사용해서 데이터를 전달해야한다.
이 경우 다양한 형식을 보낼 수 있다.
[name] => 07_repetitive.py
[type] => text/plain
[tmp_name] => /tmp/phpEf8LWg //tmp란 말그대로 임시폴더다. 임시로 저장된곳의 이 데이터를 가져와야한다.
[error] => 0 //에러가 발생하지 않았으므로 0
[size] => 8767 //파일크기
파일은 바이너리로 읽어들이기 때문에 이런부분들을 모두 고려해야한다.
따라서 저 임시(tmp) 파일을 어떻게 가져올지가 관건이다.
첨부파일(임시파일)을 가져올수있는 폴더를 새로 하나 만들어
그 안의 데이터를 최종적으로 가져오는 방법으로 해결 가능하다.
# write_ok.php 가 데이터를 data폴더로 가져올때,
이 디렉토리에 접근할수 있는 권한이 아파치권한이된다.
그래서 권한을 변경시켜준다.
# 게시글 작성시간 정보를 담기위해서 시간에 관련된 부분을 살펴보자.
위에서는 시간을 가져오기위해 관련 함수를 사용하였고, 변형하여 가져왔다.
아래에서는 그 시간정보를 숨김처리하여 갖고있기 위해 hiddin으로 작업을 진행하였다.
# 시간을 구할때 사용하는 함수이다.
이 함수를 그냥 사용하게 되면, 리눅스 time table에 따라서 그대로 출력되기때문에
가공해서 써야 정확한 현재 시간을 사용할 수 있다.
이어서 실제 위의 정보들을 바탕으로 게시하는부분을 알아보도록하자.
#)참고_
캐릭터 인코딩 바꿔주려면 크롬에서는 확장프로그램을 사용하는게 편리하다.
character encoding 검색하여 관련된것 사용해주면 인코딩때문에 글자가 깨지는부분을
보완할 수 있다.
'WEB > WEB HACKING' 카테고리의 다른 글
1-18) 아주 간단한 게시판 만들기 -5 (2) | 2018.03.09 |
---|---|
1-17) 아주 간단한 게시판 만들기 -4 (0) | 2018.03.07 |
1-15) 아주 간단한 게시판 만들기 -2 (0) | 2018.03.03 |
1-14) 아주 간단한 게시판 만들기 -1 (2) | 2018.02.28 |
1-13) 세션을 이용한 인증처리 (0) | 2018.02.28 |