메뉴 건너뛰기

프로그램언어

조회 수 35883 추천 수 1 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
PHP] 게시판 글쓰기와 이미지 파일 DB 저장 및 불러오기 예제

게시판에 글쓰고, 이미지 파일 전송하여 DB에 저장하고, 게시물 볼때 게시물 내용과 이미지 파일 불러오는 예제입니다.
어느분이 물어보셔서 저장과 불러오기를 보여주기 위한 예제라 소스가 다소 엉성합니다~
개략적인 흐름만 참고하시고, 필요한 부분 덧붙여 사용하시면 될듯 합니다.

DB생성
- 게시판 글 내용 담을 테이블
CREATETABLE`inetag`.`test_bbs` (
 `bbsNo` INT NOTNULLAUTO_INCREMENTPRIMARYKEY ,
 `id` VARCHAR( 20)NOTNULL ,
 `content` VARCHAR( 255)NOTNULL ,
 `regdate` TIMESTAMP NOTNULLDEFAULT CURRENT_TIMESTAMP
) ENGINE=MYISAM ;

- 이미지 파일정보 담을 테이블
CREATETABLE`inetag`.`test_image` (
 `fileNo` INT NOTNULLAUTO_INCREMENTPRIMARYKEY ,
 `bbsNo` INT NOTNULL ,
 `path` VARCHAR( 255)NOTNULL ,
 `filename` VARCHAR( 50)NOTNULL
) ENGINE=MYISAM ;

소스
- form.php


<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>게시물 작성 예제 폼</title>
</head>
<body>
	<form enctype="multipart/form-data" name="form" method="post" action="write.php">
		<table>
		<tr>
			<td>아이디:</td>
			<td><input type="text" name="id" /></td>
		</tr>
		<tr>
			<td>내용:</td>
			<td><textarea name="content"></textarea></td>
		</tr>
		<tr>
			<td>이미지:</td>
			<td><input type="file" name="imageform" /></td>
		</tr>
		<tr>
			<td colspan="2">
				<input type="submit" value="전송" />
			</td>
		</tr>
		</table>
	</form>
</body>
</html>



- write.php

<?
$id = $_POST['id'];
$content = $_POST['content'];

include "../include/db_connect.php";

$query = "insert into test_bbs (id,content) values('$id','$content')";

$db_inet->query($query);

$bbsid = $db_inet->insert_id;

//$path = $_SERVER['DOCUMENT_ROOT'].'/testBBS/';
$path = "/testBBS/";
$filename =  date("YmdHis").".jpg";
move_uploaded_file($_FILES['imageform']['tmp_name'], $filename);

$query = "insert into test_image (bbsNo,path,filename) values ($bbsid, '$path','$filename')";

$db_inet->query($query);

?>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>게시물 작성 예제 폼</title>
</head>
<body>
<table>
<tr>
	<td>전송아이디:</td>
	<td><?=$id;?></td>
</tr>
<tr>
	<td>전송내용:</td>
	<td><?=$content;?></td>
</tr>
<tr>
	<td>전송이미지</td>
	<td><img src="<?=$path.$filename;?>" /></td>
</tr>
</table>
<p><b>전송완료</b></p>
<p><a href='list.php'>목록가기</a></p>
</body>
</html>



- list.php

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?
include "../include/db_connect.php";
$result = $db_inet->query("select * from test_bbs");

echo "<table border=1>";
while($row = $result->fetch_assoc()) {
	echo "<tr>";
	echo "<td>".$row['bbsNo']."</td>";
	echo "<td>".$row['id']."</td>";
	echo "<td><a href='view.php?bbsno=".$row['bbsNo']."'>".$row['content']."</a></td>";
	echo "<td>".$row['regdate']."</td>";
	echo "</tr>";
}

?>



- view.php

<?
$bbsno = $_GET['bbsno'];
include "../include/db_connect.php";
$result = $db_inet->query("select * from test_bbs where bbsNo=".$bbsno);
$row = $result->fetch_assoc();

$result = $db_inet->query("select * from test_image where bbsNo=".$bbsno);
$row2 = $result->fetch_assoc();
?>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>게시물 보기</title>
</head>
<body>
<table>
<tr>
	<td>번호</td>
	<td><?=$row['bbsNo'];?></td>
</tr>
<tr>
	<td>아이디</td>
	<td><?=$row['id'];?></td>
</tr>
<tr>
	<td>내용</td>
	<td><?=$row['content'];?></td>
</tr>
<tr>
	<td>작성시간</td>
	<td><?=$row['regdate'];?></td>
</tr>
<tr>
	<td>이미지</td>
	<td>
<?
if(!empty($row2)) 
	echo "<img src='".$row2['path'].$row2['filename']."' />";
else 
	echo "이미지 없음";
?>
	</td>
</tr>
</table>
<p><b>전송완료</b></p>
<p><a href='list.php'>목록가기</a></p>
</body>
</html>


정말 간략한 예제입니다^^ 디자인에는 전혀 신경쓰지 않았으니 흐름만 참고하세여~


List of Articles
번호 제목 날짜 조회 수
300 GD를 이용한 스팸성 게시물 차단을 위한 보안 단어 입력 예제 2014.02.27 26945
299 glob 현재 디렉토리에서 pattern에 일치하는 경로 이름을 배열로 반환 2016.12.23 19636
298 headers_sent 헤더 전송 여부를 확인 2016.12.23 19405
297 HEREDOC <<< ( PHP에서 echo로 HTML쉽게 표시하기 ) 2021.03.26 371
296 htmlentities <-> html_entity_decode (엔티티 2014.04.12 30394
295 HTTP Protocol의 data method - GET / POST 2016.04.22 20637
294 HTTP 인증하기, 로그인창 띄우기 file 2021.03.26 214
293 http://홈주소/?mode=xxx 하는방법 2017.03.07 17642
292 iframe 사용시 iframe의 높이가 내용의 높이만큼 자동으로 조절 2014.04.12 21862
291 implode — 문자열로 배열 원소를 결합 2016.12.23 19951
290 include 와 namespace 2019.01.08 1087
289 ini_get - php.ini에 지정되어 있는 지시어의 값을 읽어온다 2016.12.23 19520
288 input 자동완성기능 끄기 2019.02.19 1217
287 is_array — 변수가 배열인지 확인 2016.12.23 18048
286 Javascript 두 좌표 사이의 거리 구하기, 두 좌표의 중앙 좌표 구하기 file 2020.09.23 535
285 JAVASCRIPT 차트, 그래프 모음 (php chart, graph ) 2021.03.26 1612
284 jQuery 개발자를 위한 메모 - 레퍼런스 2014.03.26 19522
283 jQuery 개발자를 위한 메모 - 플러그 인 2014.03.26 19257
282 jquery 이용 아이디 중복체크 실시간 2014.04.12 20341
281 JSON and JavaScript usage 2014.03.26 19064
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved