2022. 10. 25. 03:40ㆍ무료강좌&튜토리얼/PHP
[PHP] 게시판 만들기 (4/10) - 게시글 작성하기
앞에서 생성한 게시글 입력폼 페이지에서 입력한 정보를 board 테이블에 저장하는 기능을 생성해보자.
제목을 입력하는 태그와 내용을 입력하는 태그에 required 속성을 사용했다.
서버에서도 이 값이 제대로 입력되었는지 확인 후 제대로 입력되었다면 테이블에 입력하며 그렇지 않은 경우 게시글 입력폼이 있는 페이지로 이동하는 링크를 출력하게 한다.
다음은 게시글을 board 테이블에 저장하는 예제이다.
[예제: 181_saveBoard.php ]
<?php
include $_SERVER['DOCUMENT_ROOT'].'/php/common/171_session.php';
include $_SERVER['DOCUMENT_ROOT'].'/php/common/179_checkSignSession.php';
include $_SERVER['DOCUMENT_ROOT'].'/php/cssControlPanel/163_connection.php';
$title = $_POST['title'];
$content = $_POST['content'];
if($title != null && $title != '') {
$title = $dbConnect->real_escape_string($title);
} else {
echo "제목을 입력하세요.";
echo "<a href='./180_writeForm.php'>작성 페이지로 이동</a>";
exit;
}
if($content != null && $content != '') {
$content = $dbConnect->real_escape_string($content);
} else {
echo "내용을 입력하세요.";
echo "<a href='./180_writeForm.php'>작성 페이지로 이동</a>";
exit;
}
$memberID = $_SESSION['memberID'];
$regDate = time();
$sql = "INSERT INTO board (memberID, title, content, regDate) ";
$sql .= "VALUES ('$memberID', '$title', '$content', '$regDate')";
$result = $dbConnect->query($sql);
if($result) {
echo "저장 완료<br>";
echo "<a href='./183_list.php'>게시글 목록으로 이동</a>";
exit;
} else {
echo "저장 실패<br>";
echo "<a href='./183_list.php'>게시글 목록으로 이동</a>";
exit;
}
?>
1. board 테이블의 memberID 필드에는 셋녀 $_SESSION['memberID']의 값을 입력하므로 session_start() 함수가 있는 파일을 include한다.
2. 로그인을 하지 않고 [181_saveBoard.php]에 접근하는 것을 방지하도록 [179_checkSignSession.php]파일을 include한다.
3. board 테이블에 데이터를 입력하므로 데이터베이스 접속 프로그램인 [163_connection.php] 파일을 include 한다.
4. 전달받은 제목과 내용을 변수에 대입한다.
5. 제목 데이터인 변수 title의 값이 공백인지 확인하며 공백이 아니면 real_escape_string() 메소드를 사용하여 입력값의 변조를 차단한다. real_escape_string() 함수는 문자열 속 특수문자가 쿼리문에서 오류를 일으키지 않다록 하는 기능을 갖는다.
6. 내용 데이터인 변수 content의 값이 공백인지 확인하며 공백이 아니면 real_escape_string() 메소드를 사용한다.
7. board 테이블의 memberID 필드에 입력할 값이 세션 $_SESSION['memberID']를 변수 memberID에 대입한다.
8. 해당 게시물의 입력 시간을 변수 regDate에 대입한다.
9. 게시물을 board 테이블에 입력하는 쿼리문을 작성한다.
10. 쿼리문을 실행하고 쿼리문의 실행 결과를 알린다.
게시물 저장 기능을 생성했으므로 게시물을 입력하여 board 테이블에 저장되는지 확인해보도록 하자.
우선 먼저 게시물 입력폼 페이지로 이동하도록 한다.
실행 URL은 http://localhost/php/board/180_writeForm.php 이다.
게시물을 입력후 저장 버튼을 누른다.
실행결과
터미널 또는 phpMyAdmin을 통해 board 테이블의 내용을 확인해보자.
초보자를 위한 PHP 200제
김태영 지음 | 정보문화사
'무료강좌&튜토리얼 > PHP' 카테고리의 다른 글
[PHP] 게시판 만들기 (6/10) - 게시물 목록 페이지 생성하기 (1) | 2022.10.26 |
---|---|
[PHP] 게시판 만들기 (5/10) - 임의 게시물(Random Data) 입력하기 (0) | 2022.10.26 |
[PHP] 게시판 만들기 (3/10) - 게시글 작성 폼 만들기 (0) | 2022.10.25 |
[PHP] 게시판 만들기 (2/10) - 로그인 세션 체크 프로그램 (0) | 2022.10.25 |
[PHP] 게시판 만들기 (1/10) - board 테이블 생성하기 (2) | 2022.10.24 |