4. PHP 게시판 만들기, write 제작 1

2015. 3. 31. 23:43
저자 : Kurien

주의: 본 게시판은 보안을 생각하지 않고 만들어졌으므로 실제로 사용되어서는 안되는 코드입니다.

공부할 때 게시판이 이처럼 동작한다는 정도로만 이해해주세요.


오늘도 게시판 제작을 해보겠습니다.

오늘은 글을 쓰는 부분인 write를 제작해보겠습니다.


글을 "쓰기만" 하는 write 부분은 프로그램이 거의 없으니 단순 구조만 제작했습니다.

물론 같은 폼을 이용해서 글을 수정하게 된다면 조금 더 복잡해지지만, 그 부분은 게시글 등록, 삭제가 끝난 다음 하도록 하겠습니다.


그럼 오늘도 먼저 이 파일을 받아주세요!


20150331_project.zip


전 포스팅에서 만들었던 index.php와는 조금 다른 점이 눈에 보이실텐데요.

글 쓰기 버튼을 제외하면 단순히 CSS 부분을 위한 것이므로 크게 신경은 쓰지 않으셔도 됩니다.


그럼 바로 write.php 폼을 보죠.


<?php

require_once("../dbconfig.php");

?>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>자유게시판 글쓰기 | Kurien's Library</title>

<link rel="stylesheet" href="./css/normalize.css" />

<link rel="stylesheet" href="./css/board.css" />

</head>

<body>

<article class="boardArticle">

<h3>자유게시판 글쓰기</h3>

<div id="boardWrite">

<form action="./write_update.php" method="post">

<table id="boardWrite">

<caption class="readHide">자유게시판 글쓰기</caption>

<tbody>

<tr>

<th scope="row"><label for="bID">아이디</label></th>

<td class="id"><input type="text" name="bID" id="bID"></td>

</tr>

<tr>

<th scope="row"><label for="bPassword">비밀번호</label></th>

<td class="password"><input type="text" name="bPassword" id="bPassword"></td>

</tr>

<tr>

<th scope="row"><label for="bTitle">제목</label></th>

<td class="title"><input type="text" name="bTitle" id="bTitle"></td>

</tr>

<tr>

<th scope="row"><label for="bContent">내용</label></th>

<td class="content"><textarea name="bContent" id="bContent"></textarea></td>

</tr>

</tbody>

</table>

<div class="btnSet">

<button type="submit" class="btnSubmit btn">작성</button>

<a href="./board/index.php" class="btnList btn">목록</a>

</div>

</form>

</div>

</article>

</body>

</html>


말씀 드린대로 form을 이용한 단순 html 폼입니다.

.boardArticle 까지는 index.php 파일과 거의 같고 그 아래의 #boardWrite부터가 작성된 부분입니다.



<form> 태그를 통해 데이터를 처리하는 파일로 내용을 전송하는 부분입니다.


각각의 <tr> 태그에는 <th>와 <td> 태그가 하나씩 들어있는데요.

<th>는 위의 이미지에서 아이디, 비밀번호, 제목, 내용을 뜻하고,

<label> 태그의 for 속성으로 input 태그의 id 값을 지정하면 label을 눌렀을 때 해당 input 태그에 포커스를 줍니다.


<input> 태그나 <textarea>와 같은 입력 양식 태그는 대부분 아실테니 넘어가고,,,

마지막으로 btnSet이라는 div를 만들고 그 안에 작성과 목록 버튼을 만들었습니다.


아직은 CSS를 적용하지 않아서 기본적인 상태로만 나오구요.

다음 포스팅에서는 글을 올리는 부분인 write_update.php를 만들어보겠습니다.


어려운 부분(은 없겠지만...)이 있다면 댓글 남겨주시구요,

현재 진행 상태는 http://kurien.dothome.co.kr에서 보실 수 있습니다!

  1. jaenna 2015.04.02 10:49  댓글주소  수정/삭제  댓글쓰기

    잘 이해되요!!좋은 컨텐츠 감사합니다 ㅎ.ㅎ
    다음강의는 언제올라오나요 ??

  2. jaenna 2015.04.02 14:03  댓글주소  수정/삭제  댓글쓰기

    저 질문이 있는데요, 게시판 목록에서 삭제나 수정을 하고싶을땐 다른방법으로 목록을 불러내야하는데
    어떻게 해야할까요 ㅠㅠ 여기서 계속 막혀서요..

    • Kurien 2015.04.02 14:05 신고  댓글주소  수정/삭제

      게시판 리스트에서 삭제를 말하시는거라면, checkbox태그의 value를 글의 id값으로 해서 선택 삭제, 제거 하는 방법이 있습니다.

  3. jaenna 2015.04.02 17:00  댓글주소  수정/삭제  댓글쓰기

    귀찮게 해드려서 죄송해요 ㅠ
    <input type="checkbox" value=<?php $row['id'] ?> > 이런식으로 넣어도 되나요?

  4. 튼튼 2015.10.18 12:20  댓글주소  수정/삭제  댓글쓰기

    감사합니다!

  5. 이승희 2016.07.16 04:45  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 반가워요

  6. 성은범 2016.10.06 12:25  댓글주소  수정/삭제  댓글쓰기

    너무 잘올려주셔서 소름 제대로 돋았습니다. 덕분에 php 이해가 너무 잘됩니다

  7. whee 2016.10.11 16:01  댓글주소  수정/삭제  댓글쓰기

    너무 쉽게 이해되도록 올려주셔서 감사합니다~ 정말 잘보고 있습니다~!!

  8. 호랑이 2018.04.28 16:52  댓글주소  수정/삭제  댓글쓰기

    모두 반갑습니다

    날씨가 좋아요

  9. 한지민 2019.05.13 15:00  댓글주소  수정/삭제  댓글쓰기

    날씨가 좋아요

  10. 흐름 2021.11.13 17:26  댓글주소  수정/삭제  댓글쓰기

    " 빨리 좋은 상황으로 분위기 전환을 해야 한다."


    " 저번이랑 똑같이 어려운 상황에 [ http://ooo.vivinix.com ] 처한 것은 틀림 없다, 이젠 정말 승리 뿐이다. 또한 지금부터는 괴로운 상황에서 싸워 나가야만 한다. "



    일본의 캡틴은 가혹한 현실을 직시하며 발언했습니다. 16년 9월 러시아 월드컵 최종 예선 당시 일본은 아랍 에미레이트에 1 대 2로 역전 패 했지만 어떻게든 예선 돌파라는 결과를 만들어 냈었으며, 홈 첫경기의 중요성을 인지 하고 있었습니다. 하지만 일본은 오만을 상대로 같은 실수를 반복했습니다.

    어려운 경기의 요인으로써 요시다 마야는 ' [ http://ooo.vivinix.com ] 상대팀이 합숙을 통해 좋은 컨디션을 유지 했긴 했지만, 이런건 핑곗거리에 불과합니다. 우리는 창의성과 독창성이 부족 했으며 피로, 이동 시간 및 시차 때문 인지 평소와 같은 템포로 볼을 점유 하는것이 불가능했었습니다. " 라고 지적 했습니다.



    비가 내리는 상황이었기 때문에 경기장의 상태가 좋지 [ http://qqq.vivinix.com ] 않았다는 질문에 대해서는 '볼이 쭉쭉 뻗지 않긴 했지만, 후반 들어서는 그닥 경기장의 영향이 없었다' 라고, 변명이 여지가 없었다 말하며, 그보다 '힘, 창의성 모두 부족했습니다. 볼을 빼앗기는 과정도 나빴고, 매번 역습 상황에 처했으며, 오히려 오만이 우리를 상대로 가둬놓고 패는 형국으로 이어져 역으로 우리가 전진해야 하는 상황이었습니다."



    PK가 VAR로 취소되는 등 경기의 흐름이 어수선 했었고, 88분 [ http://rrr.vivinix.com ] 일본측의 좌측면이 붕괴 되어 결승점을 내준 것에 대해서는 '사이드가 붕괴 되어 쉽게 크로스를 허용했다. 나 역시 좀 더 니어쪽을 허용하지 않는 위치에 있어야 했다. 중앙의 대인마크도 좋지 않은 상황 이었다" " 큰 실수 보다는 자잘한 실수가 쌓여 한번에 터져버린 수비진 전체의 실수라고 할 수 있다. 이러한 상대방의 흐름에 말리는 경기는 최대한 실점 하지 않는것이 중요하다. 홈에서 실점하지 않고, 최소한 승점 1점을 확보 했어야 핬다. 그걸 해 낼수 없었기 때문에 매우 실망스러운 경기 였다." 라고 냉정한 표정으로 이야기 했습니다.



    오만의 경우 유럽에서 약 1개월간 합숙을 통해 합을 맞췄지만, 일본은 대다수의 유럽파가 유럽에서 날아온지 얼마 되지 않은 상황이었던 지라 연습 시간도 부족했으며, 시합이 진행될 수록 선수들의 피로가 눈에 보였습니다. 이러한 상황은 앞으로도 쭉 이어질 것으로 예상 되지만, 요시다는 '일본에 돌아온지 얼마 되지 않아서, 시차떄문에, 상대방이 컨디션이 좋았다 같은건 핑곗거리도 되지 않는다.' 라는걸 재차 강조 했습니다. '여기에 온 이상 어려운 상황 속 에서도 결과를 내는 것이 우리들이 해내야 할 사명 이며, 결과로 보여줘야만 한다 생각합니다. 우리는 주도권을 쥐고 경기력을 보여줘야만 한다.' 라고 비난의 화살을 자신에게 돌렸습니다.