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 |