티스토리 뷰


 - 게시글 작성 : 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 검색하여 관련된것 사용해주면 인코딩때문에 글자가 깨지는부분을

보완할 수 있다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함