728x90
SMALL
1. 다음은 게시판 폼 양식에 사용자가 입력한 정보를 DB에 저장하는 프로그램의 일부이다. 빈칸을 채워 프로그램을 완성하시오.
<?php /*생략 */ $subject = $_POST["subject"]; $content = $_POST["content"]; $regist_day = date("Y-m-d (H:i)"); // 현재의 '년-월-일-시-분'을 저장 $upload_dir = './data/'; $upfile_name = $_FILES["upfile"]["name"]; $upfile_tmp_name = $_FILES["upfile"]["tmp_name"]; $upfile_type = $_FILES["upfile"]["type"]; $upfile_size = $_FILES["upfile"]["size"]; $upfile_error = $_FILES["upfile"]["error"]; if ($upfile_name && !$upfile_error) { $file = ________(".", $upfile_name); $file_name = $file[0]; $file_ext = $file[1]; $new_file_name = date("Y_m_d_H_i_s"); $new_file_name = $new_file_name; $copied_file_name = $new_file_name.".".$file_ext; $uploaded_file = $upload_dir.$copied_file_name; ________($upfile_tmp_name, $uploaded_file); } else { $upfile_name = ""; $upfile_type = ""; $copied_file_name = ""; } $con = mysqli_connect("localhost", "user1", "12345", "sample"); $sql = "________ board (id, name, subject, content, regist_day, hit, file_name, file_type, file_copied) "; $sql .= "values('$userid', '$username', '$subject', '$content', '$regist_day', 0, "; $sql .= "'$upfile_name', '$upfile_type', '$copied_file_name')"; ________($con, $sql); // $sql 에 저장된 명령 실행 mysqli_close($con); // DB 연결 끊기 /*생략*/ ?>
정답보기
explode
move_uploaded_file
insert into
mysqli_query
<?php /*생략 */ $subject = $_POST["subject"]; $content = $_POST["content"]; $regist_day = date("Y-m-d (H:i)"); // 현재의 '년-월-일-시-분'을 저장 $upload_dir = './data/'; $upfile_name = $_FILES["upfile"]["name"]; $upfile_tmp_name = $_FILES["upfile"]["tmp_name"]; $upfile_type = $_FILES["upfile"]["type"]; $upfile_size = $_FILES["upfile"]["size"]; $upfile_error = $_FILES["upfile"]["error"]; if ($upfile_name && !$upfile_error) { $file = explode(".", $upfile_name); $file_name = $file[0]; $file_ext = $file[1]; $new_file_name = date("Y_m_d_H_i_s"); $new_file_name = $new_file_name; $copied_file_name = $new_file_name.".".$file_ext; $uploaded_file = $upload_dir.$copied_file_name; move_uploaded_file($upfile_tmp_name, $uploaded_file); } else { $upfile_name = ""; $upfile_type = ""; $copied_file_name = ""; } $con = mysqli_connect("localhost", "user1", "12345", "sample"); $sql = "insert into board (id, name, subject, content, regist_day, hit, file_name, file_type, file_copied) "; $sql .= "values('$userid', '$username', '$subject', '$content', '$regist_day', 0, "; $sql .= "'$upfile_name', '$upfile_type', '$copied_file_name')"; mysqli_query($con, $sql); // $sql 에 저장된 명령 실행 mysqli_close($con); // DB 연결 끊기 /*생략*/ ?>
2. 다음은 게시판의 글 목록을 보여주는 프로그램의 일부이다. 빈칸을 채워 프로그램을 완성하시오.
<div id="board_box"> <h3> 게시판 > 목록보기 </h3> <ul id="board_list"> <li> <span class="col1">번호</span> <span class="col2">제목</span> <span class="col3">글쓴이</span> <span class="col4">첨부</span> <span class="col5">등록일</span> <span class="col6">조회</span> </li> <?php $con = mysqli_connect("localhost", "user1", "12345", "sample"); $sql = "select * from board order by num desc"; $result = ____________($con, $sql); $total_record = ____________($result); // 전체 글 수 $scale = 10; // 전체 페이지 수($total_page) 계산 if ($____________ % $scale == 0) $total_page = floor($total_record/$scale); else $total_page = floor($total_record/$scale) + 1; // 표시할 페이지($page)에 따라 $start 계산 //최 중요 코드 페이징 $start = ($page - 1) * $scale; $number = $total_record - $start; for ($i=$start; $i<$start+$scale && $i < $total_record; $i++) { ____________($result, $i); // 가져올 레코드로 위치(포인터) 이동 ____________ = mysqli_fetch_array($result); // 하나의 레코드 가져오기 $num = $row["num"]; $id = $row["id"]; $name = $row["name"]; $subject = $row["subject"]; $regist_day = $row["regist_day"]; $hit = $row["hit"]; if ($row["file_name"]) $file_image = "<img src='./img/file.gif'>"; else $file_image = " "; ?> <li> <span class="col1"><?=$number?></span> <span class="col2"><a href="board_view.php?num=<?=$num?>&page=<?=$page?>"><?=____________?></a></span> <span class="col3"><?=$name?></span> <span class="col4"><?=$file_image?></span> <span class="col5"><?=$regist_day?></span> <span class="col6"><?=$hit?></span> </li> <?php $number--; } mysqli_close($con); ?> </div>
정답보기
mysqli_query
mysqli_num_rows
total_record
mysqli_data_seek
$row
$subject
<div id="board_box"> <h3> 게시판 > 목록보기 </h3> <ul id="board_list"> <li> <span class="col1">번호</span> <span class="col2">제목</span> <span class="col3">글쓴이</span> <span class="col4">첨부</span> <span class="col5">등록일</span> <span class="col6">조회</span> </li> <?php $con = mysqli_connect("localhost", "user1", "12345", "sample"); $sql = "select * from board order by num desc"; $result = mysqli_query($con, $sql); $total_record = mysqli_num_rows($result); // 전체 글 수 $scale = 10; // 전체 페이지 수($total_page) 계산 if ($total_record % $scale == 0) $total_page = floor($total_record/$scale); else $total_page = floor($total_record/$scale) + 1; // 표시할 페이지($page)에 따라 $start 계산 //최 중요 코드 페이징 $start = ($page - 1) * $scale; $number = $total_record - $start; for ($i=$start; $i<$start+$scale && $i < $total_record; $i++) { mysqli_data_seek($result, $i); // 가져올 레코드로 위치(포인터) 이동 $row = mysqli_fetch_array($result); // 하나의 레코드 가져오기 $num = $row["num"]; $id = $row["id"]; $name = $row["name"]; $subject = $row["subject"]; $regist_day = $row["regist_day"]; $hit = $row["hit"]; if ($row["file_name"]) $file_image = "<img src='./img/file.gif'>"; else $file_image = " "; ?> <li> <span class="col1"><?=$number?></span> <span class="col2"><a href="board_view.php?num=<?=$num?>&page=<?=$page?>"><?=$subject?></a></span> <span class="col3"><?=$name?></span> <span class="col4"><?=$file_image?></span> <span class="col5"><?=$regist_day?></span> <span class="col6"><?=$hit?></span> </li> <?php $number--; } mysqli_close($con); ?> </div>
3. 게시판 기능을 구현하는 데 사용되는 PHP 함수에 관한 물음에 답하시오.
① 문자열을 분리하여 배열로 반환하는 함수는 무엇인가?
② 업로드된 파일을 새로운 위치의 파일(경로 포함)로 이동하는 데 사용하는 함수는 무엇인가?
③ 파일을 열어서 그 파일이 지시하는 파일 포인터를 얻는 데 사용하는 함수는 무엇인가?
④ 현재 파일 포인터가 지시하는 위치부터 끝까지 파일을 읽어 출력 버퍼에 저장하는 함수는 무엇인가?
정답보기
① explode()
② move_uploaded_file()
③ fopen()
④ fpassthru()
728x90
LIST
'PHP' 카테고리의 다른 글
PHP 프로그래밍 입문 3판 연습문제 15장 정답 정리 (0) | 2023.12.22 |
---|---|
PHP 프로그래밍 입문 3판 연습문제 13장 정답 정리 (0) | 2023.12.22 |
PHP 프로그래밍 입문 3판 연습문제 12장 정답 정리 (1) | 2023.12.22 |
PHP 프로그래밍 입문 3판 연습문제 11장 정답 정리 (1) | 2023.12.22 |
PHP 프로그래밍 입문 3판 연습문제 10장 MySQL 조작 정답 정리 (2) | 2023.05.04 |