1. 다음은 실습 사이트의 메인 페이지에 게시판의 최근 게시판 목록을 불러오는 프로그램의 일부이다. 빈칸을 채워 프로그램을 완성하시오.

<?php
    $con =________________("localhost", "user1", "12345", "sample");
    $sql = "select * from board order by num desc ________________ 5";
    $result = mysqli_query($con, $sql);

    if (!$result)
        echo "게시판 DB 테이블(board)이 생성 전이거나 아직 게시글이 없습니다!";
    else
    {
        while( $row = ________________($result) )
        {
            $regist_day = _______________($row["regist_day"], 0, 10);
?>
                <li>
                    <span><?=$row["subject"]?></span>
                    <span><?=$row["name"]?></span>
                    <span><?=$regist_day?></span>
                </li>
<?php
        }
    }
?>
더보기

mysqli_connect
limit
mysqli_fetch_array
substr

<?php
    $con = mysqli_connect("localhost", "user1", "12345", "sample");
    $sql = "select * from board order by num desc limit 5";
    $result = mysqli_query($con, $sql);

    if (!$result)
        echo "게시판 DB 테이블(board)이 생성 전이거나 아직 게시글이 없습니다!";
    else
    {
        while( $row = mysqli_fetch_array($result) )
        {
            $regist_day = substr($row["regist_day"], 0, 10);
?>
                <li>
                    <span><?=$row["subject"]?></span>
                    <span><?=$row["name"]?></span>
                    <span><?=$regist_day?></span>
                </li>
<?php
        }
    }
?>

2. 다음은 관리자 모드에서 회원을 삭제하는 프로그램의 일부이다. 빈칸을 채워 프로그램을 완성하시오.

<?php
    _________________;
    if (isset($_SESSION["userlevel"])) $userlevel = $_SESSION["userlevel"];
    else $userlevel = "";

    if ( _________________ != 1 )
    {
        echo("
            <script>
            alert('관리자가 아닙니다! 회원 삭제는 관리자만 가능합니다!');
            history.go(-1)
            </script>
        ");
                exit;
    }

    $num   = $_GET["num"];

    $con = _________________("localhost", "user1", "12345", "sample");
    $sql = "_________________ from members where num = $num";
    _________________($con, $sql);

    mysqli_close($con);

   /*생략*/
?>
더보기

session_start()
$userlevel
mysqli_connect
delete
mysqli_query

<?php
    session_start();
    if (isset($_SESSION["userlevel"])) $userlevel = $_SESSION["userlevel"];
    else $userlevel = "";

    if ( $userlevel != 1 )
    {
        echo("
            <script>
            alert('관리자가 아닙니다! 회원 삭제는 관리자만 가능합니다!');
            history.go(-1)
            </script>
        ");
                exit;
    }

    $num   = $_GET["num"];

    $con = mysqli_connect("localhost", "user1", "12345", "sample");
    $sql = "delete from members where num = $num";
    mysqli_query($con, $sql);

    mysqli_close($con);

   /*생략*/
?>

3. 문자열에서 특정 문자셋을 기준으로 문자열을 추출하는 데 사용하는 함수는 무엇인가?

더보기

mb_substr()

 

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()

1. 다음은 쪽지를 DB에 저장하는 프로그램의 일부이다. 빈칸을 채워 프로그램을 완성하시오.

<?php
    $send_id = $_GET["send_id"];

    $rv_id = $_POST['rv_id'];
    $subject = $_POST['subject'];
    $content = $_POST['content'];
	$content = ____________________($content, ENT_QUOTES);
	$regist_day = _______("Y-m-d (H:i)");  // 현재의 '년-월-일-시-분'을 저장

	$con =_______("localhost", "user1", "12345", "sample");
	$sql = "select * from members where id='$rv_id'";
	$result = mysqli_query($con, $sql);
	$num_record = _______($result);

	if($num_record)
	{
		$sql = "insert into message (send_id, rv_id, subject, content,  regist_day) ";
		$sql .= "values('$send_id', '$rv_id', '$subject', '$content', '$regist_day')";
		_______($con, $sql);  // $sql 에 저장된 명령 실행
	} else {
		echo("
			<script>
			alert('수신 아이디가 잘못 되었습니다!');
			history.go(-1)
			</script>
			");
		exit;
	}

	mysqli_close($con);                // DB 연결 끊기
?>
더보기

htmlspecialchars

date

mysqli_connect

mysqli_num_rows

mysqli_query

<?php
    $send_id = $_GET["send_id"];

    $rv_id = $_POST['rv_id'];
    $subject = $_POST['subject'];
    $content = $_POST['content'];
	$content = htmlspecialchars($content, ENT_QUOTES);
	$regist_day = date("Y-m-d (H:i)");  // 현재의 '년-월-일-시-분'을 저장

	$con = mysqli_connect("localhost", "user1", "12345", "sample");
	$sql = "select * from members where id='$rv_id'";
	$result = mysqli_query($con, $sql);
	$num_record = mysqli_num_rows($result);

	if($num_record)
	{
		$sql = "insert into message (send_id, rv_id, subject, content,  regist_day) ";
		$sql .= "values('$send_id', '$rv_id', '$subject', '$content', '$regist_day')";
		mysqli_query($con, $sql);  // $sql 에 저장된 명령 실행
	} else {
		echo("
			<script>
			alert('수신 아이디가 잘못 되었습니다!');
			history.go(-1)
			</script>
			");
		exit;
	}

	mysqli_close($con);                // DB 연결 끊기
?>

2. 다음은 수신/송신 쪽지함에서 DB에 저장된 쪽지의 목록을 보여주는 프로그램의 일부이다. 빈칸을 채워 프로그램을 완성하시오.

<?php
	$con = mysqli_connect("localhost", "user1", "12345", "sample");
	$result = mysqli_query($con, $sql);
	$total_record = __________($result); // 전체 글 수
	$scale = 10;

	// 전체 페이지 수($total_page) 계산 
	if ($total_record % __________ == 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"];
	  $subject     = $row["subject"];
      $regist_day  = $row["regist_day"];

	  if ($mode=="send")
	  	$msg_id = $row["rv_id"];
	  else
	  	$msg_id = $row["send_id"];
	  
	  $result2 = __________($con, "select name from members where id='$msg_id'");
	  $record = mysqli_fetch_array($result2);
	  $msg_name     = $record["name"];	  

/*생략 */

   	   $number--;
   }
   mysqli_close($con);
?>
더보기

mysqli_num_rows
$scale
mysqli_data_seek
$row
mysqli_query

<?php
	$con = mysqli_connect("localhost", "user1", "12345", "sample");
	$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"];
	  $subject     = $row["subject"];
      $regist_day  = $row["regist_day"];

	  if ($mode=="send")
	  	$msg_id = $row["rv_id"];
	  else
	  	$msg_id = $row["send_id"];
	  
	  $result2 = mysqli_query($con, "select name from members where id='$msg_id'");
	  $record = mysqli_fetch_array($result2);
	  $msg_name     = $record["name"];	  

/*생략 */

   	   $number--;
   }
   mysqli_close($con);
?>

3. 다음은 쪽지의 내용을 보여주는 프로그램의 일부이다. 빈칸을 채워 프로그램을 완성하시오.

   	<div id="message_box">
	    <h3 class="title">
<?php
	$mode = $_GET["mode"];
	$num  = $_GET["num"];

	$con = _________("localhost", "user1", "12345", "sample");
	$sql = "_________ * from message where num=$num";
	$result = _________($con, $sql);

	$row = _________($result);
	$rv_id      = $row["rv_id"];
	$regist_day = $row["regist_day"];
	$subject    = $row["subject"];
	$content    = $row["content"];

	$content = _________(" ", "&nbsp;", $content);
	$content = _________("\n", "<br>", $content);

	if ($mode=="send")
		$result2 = mysqli_query($con, "select name from members where id='$rv_id'");
	else
		$result2 = mysqli_query($con, "select name from members where id='$send_id'");

	$record = ________($result2);
	$msg_name = $record["name"];

	if ($mode=="send")	    	
	    echo "송신 쪽지함 > 내용보기";
	else
		echo "수신 쪽지함 > 내용보기";
?>
		</h3>
	    <ul id="view_content">
			<li>
				<span class="col1"><b>제목 :</b> <?=$subject?></span>
				<span class="col2"><?=$msg_name?> | <?=$regist_day?></span>
			</li>
			<li>
				<?=$content?>
			</li>		
	    </ul>
	</div>
더보기

mysqli_connect
select
mysqli_query
mysqli_fetch_array
str_replace
str_replace
mysqli_fetch_array

   	<div id="message_box">
	    <h3 class="title">
<?php
	$mode = $_GET["mode"];
	$num  = $_GET["num"];

	$con = mysqli_connect("localhost", "user1", "12345", "sample");
	$sql = "select * from message where num=$num";
	$result = mysqli_query($con, $sql);

	$row = mysqli_fetch_array($result);
	$rv_id      = $row["rv_id"];
	$regist_day = $row["regist_day"];
	$subject    = $row["subject"];
	$content    = $row["content"];

	$content = str_replace(" ", "&nbsp;", $content);
	$content = str_replace("\n", "<br>", $content);

	if ($mode=="send")
		$result2 = mysqli_query($con, "select name from members where id='$rv_id'");
	else
		$result2 = mysqli_query($con, "select name from members where id='$send_id'");

	$record = mysqli_fetch_array($result2);
	$msg_name = $record["name"];

	if ($mode=="send")	    	
	    echo "송신 쪽지함 > 내용보기";
	else
		echo "수신 쪽지함 > 내용보기";
?>
		</h3>
	    <ul id="view_content">
			<li>
				<span class="col1"><b>제목 :</b> <?=$subject?></span>
				<span class="col2"><?=$msg_name?> | <?=$regist_day?></span>
			</li>
			<li>
				<?=$content?>
			</li>		
	    </ul>
	</div>

4. 쪽지 기능을 구현하는 데 사용되는 PHP 함수에 관한 물음에 답하시오.

① 문자열에 포함된 특수 문자를 HTML 특수 기호로 변환하는 함수는 무엇인가?

② 소수점 이하를 내림한 정수를 반환하는 함수는 무엇인가?

③ 레코드 집합 내로 포인터를 이동하는 함수로, 이 함수를 수행한 후 mysqli_fetch_array() 함수가 호출되면 포인터가 지시하는 레코드를 가져오는 것은 무엇인가?

더보기

① htmlspecialchars() 

② floor()

③ mysqli_data_seek()

 

1. 다음은 세션을 이용하여 로그인을 처리하는 프로그램의 일부이다. 빈칸을 채워 프로그램을 완성하시오.

<?php
    $id   = $_POST["id"];
    $pass = $_POST["pass"];

   $con = mysqli_connect("localhost", "user1", "12345", "sample");
 ______ = "select * from members where id='$id'";
 ______ = mysqli_query($con, $sql);
 ______ = mysqli_num_rows($result);

   if(!$num_match) 
   {
     echo("
           <script>
             window.alert('등록되지 않은 아이디입니다!')
             history.go(-1)
           </script>
         ");
    }
    else
    {
        $row = _________($result);
        $db_pass = $row["pass"];

        mysqli_close($con);

        if($pass != _________)
        {

           echo("
              <script>
                window.alert('비밀번호가 틀립니다!')
                history.go(-1)
              </script>
           ");
           exit;
        }
        else
        {
            session_start();
            $_SESSION["userid"] = $row["id"];
           
           /* 생략 */
        }
     }        
?>
더보기

$sql

$result

$num_match

$mysqli_fetch_array

$db_pass

<?php
    $id   = $_POST["id"];
    $pass = $_POST["pass"];

   $con = mysqli_connect("localhost", "user1", "12345", "sample");
   $sql = "select * from members where id='$id'";
   $result = mysqli_query($con, $sql);

   $num_match = mysqli_num_rows($result);

   if(!$num_match) 
   {
     echo("
           <script>
             window.alert('등록되지 않은 아이디입니다!')
             history.go(-1)
           </script>
         ");
    }
    else
    {
        $row = mysqli_fetch_array($result);
        $db_pass = $row["pass"];

        mysqli_close($con);

        if($pass != $db_pass)
        {

           echo("
              <script>
                window.alert('비밀번호가 틀립니다!')
                history.go(-1)
              </script>
           ");
           exit;
        }
        else
        {
            session_start();
            $_SESSION["userid"] = $row["id"];
           
           /* 생략 */
        }
     }        
?>

2. 다음은 웹 페이지 상단 헤더의 프로그램 중 일부로, 세션을 이용하여 로그인 상태를 파악하는 부분이다. 빈칸을 채워 프로그램을 완성하시오.

<?php
    ___________;
    if (___________($_SESSION["userid"])) $userid = $_SESSION["userid"];
    else $userid = "";
    if (___________($_SESSION["username"])) $username = $_SESSION["username"];
    else $username = "";
    if (___________($_SESSION["userlevel"])) $userlevel = $_SESSION["userlevel"];
    else $userlevel = "";
?>		
        <div id="top">
            <h3>
                <a href="index.php">PHP 프로그래밍 입문</a>
            </h3>
            <ul id="top_menu">  
<?php
    if(!___________) {
?>                
                <li><a href="member_form.php">회원 가입(11장)</a> </li>
                <li> | </li>
                <li><a href="login_form.php">로그인(12장)</a></li>
<?php
    } ___________ {
                $logged = $username."(".$userid.")님[Level:".$userlevel.", Point:".$userpoint."]";
?>
                <li><?=$logged?> </li>
                <li> | </li>
                <li><a href="logout.php">로그아웃</a> </li>
                <li> | </li>
                <li><a href="member_modify_form.php">정보 수정</a></li>
<?php
    }
?>

            </ul>
        </div>
더보기

session_start()

isset

isset

isset

$userid

else

<?php
    session_start();
    if (isset($_SESSION["userid"])) $userid = $_SESSION["userid"];
    else $userid = "";
    if (isset($_SESSION["username"])) $username = $_SESSION["username"];
    else $username = "";
    if (isset($_SESSION["userlevel"])) $userlevel = $_SESSION["userlevel"];
    else $userlevel = "";
?>		
        <div id="top">
            <h3>
                <a href="index.php">PHP 프로그래밍 입문</a>
            </h3>
            <ul id="top_menu">  
<?php
    if(!$userid) {
?>                
                <li><a href="member_form.php">회원 가입(11장)</a> </li>
                <li> | </li>
                <li><a href="login_form.php">로그인(12장)</a></li>
<?php
    } else {
                $logged = $username."(".$userid.")님[Level:".$userlevel.", Point:".$userpoint."]";
?>
                <li><?=$logged?> </li>
                <li> | </li>
                <li><a href="logout.php">로그아웃</a> </li>
                <li> | </li>
                <li><a href="member_modify_form.php">정보 수정</a></li>
<?php
    }
?>

            </ul>
        </div>

3. 다음은 사용자가 회원 정보 수정 폼 양식에서 정보를 수정한 후 완료 버튼을 클릭하면 수정된 데이터로 DB를 업데이트하는 프로그램의 일부이다. 빈칸을 채워 프로그램을 완성하시오.

<?php
    $id = $_GET["id"];

   ________= $_POST["pass"];
    $name = $_POST["name"];
    $email1  = $_POST["email1"];
    $email2  = $_POST["email2"];

   ________ = $email1."@".$email2;
          
    $con = mysqli_connect("localhost", "user1", "12345", "sample");
    $sql = "________ members set pass='$pass', name='$name' , email='$email'";
    $sql .= " where id='$id'";
   ________($con, $sql);

    mysqli_close($con);     

/*생략 */
?>
더보기

$pass

$email

$update

mysqli_query

<?php
    $id = $_GET["id"];

    $pass = $_POST["pass"];
    $name = $_POST["name"];
    $email1  = $_POST["email1"];
    $email2  = $_POST["email2"];

    $email = $email1."@".$email2;
          
    $con = mysqli_connect("localhost", "user1", "12345", "sample");
    $sql = "update members set pass='$pass', name='$name' , email='$email'";
    $sql .= " where id='$id'";
    mysqli_query($con, $sql);

    mysqli_close($con);     

/*생략 */
?>

4. 로그인과 회원 정보 수정에 사용되는 PHP 함수에 관한 물음에 답하시오.

① 변수 값을 검사하여 true 또는 false를 반환하는 함수는 무엇인가?

② 문자열을 분리하여 배열에 저장하는 함수는 무엇인가?

더보기

① isset()

② explode()

 

1. 다음은 회원 가입 양식에 사용자가 입력한 데이터를 members 테이블에 저장하는 프로그램의 일부이다. 빈칸을 채워 프로그램을 완성하시오.

<?php
    $id   = $_POST["id"];
    $pass = $_POST["pass"];
    $name = $_POST["name"];
    $email1  = $_POST["email1"];
    $email2  = $_POST["email2"];

    $email = $email1."@".$email2;
    $regist_day = __________("Y-m-d (H:i)");  // 현재의 '년-월-일-시-분'을 저장

              
    $con = __________("localhost", "user1", "12345", "sample");

	$sql = "__________ members(id, pass, name, email, regist_day, level, point) ";
	$sql .= "values('$id', '$pass', '$name', '$email', '$regist_day', 9, 0)";

	__________($con, $sql);  // $sql 에 저장된 명령 실행
    mysqli_close($con);     
/*생략*/
?>
더보기

date

mysqli_connect

insert into

mysqli_query

<?php
    $id   = $_POST["id"];
    $pass = $_POST["pass"];
    $name = $_POST["name"];
    $email1  = $_POST["email1"];
    $email2  = $_POST["email2"];

    $email = $email1."@".$email2;
    $regist_day = date("Y-m-d (H:i)");  // 현재의 '년-월-일-시-분'을 저장

              
    $con = mysqli_connect("localhost", "user1", "12345", "sample");

	$sql = "insert into members(id, pass, name, email, regist_day, level, point) ";
	$sql .= "values('$id', '$pass', '$name', '$email', '$regist_day', 9, 0)";

	mysqli_query($con, $sql);  // $sql 에 저장된 명령 실행
    mysqli_close($con);     
 
/*생략*/
?>

2. 다음은 회원 가입 시 아이디의 중복을 확인하는 프로그램의 일부이다. 빈칸을 채워 프로그램을 완성하시오.

<?php
   $id = $_GET["id"];

   if(!$id) 
   {
      echo("<li>아이디를 입력해 주세요!</li>");
   }
   else
   {
      $con = _________("localhost", "user1", "12345", "sample");
      $sql = "_________ * from members where id='$id'";
      $result = mysqli_query($con, $sql);
     _________ = mysqli_num_rows($result);

      if ($num_record)
      {
         echo "<li>".$id." 아이디는 중복됩니다.</li>";
         echo "<li>다른 아이디를 사용해 주세요!</li>";
      }
      else
      {
         echo "<li>".$id." 아이디는 사용 가능합니다.</li>";
      }
    
      mysqli_close($con);
   }
?>
더보기

mysqli_connect

select

$num_record

<?php
   $id = $_GET["id"];

   if(!$id) 
   {
      echo("<li>아이디를 입력해 주세요!</li>");
   }
   else
   {
      $con = mysqli_connect("localhost", "user1", "12345", "sample");
      $sql = "select * from members where id='$id'";
      $result = mysqli_query($con, $sql);
      $num_record = mysqli_num_rows($result);

      if ($num_record)
      {
         echo "<li>".$id." 아이디는 중복됩니다.</li>";
         echo "<li>다른 아이디를 사용해 주세요!</li>";
      }
      else
      {
         echo "<li>".$id." 아이디는 사용 가능합니다.</li>";
      }
    
      mysqli_close($con);
   }
?>

3. MySQL 관련 PHP 함수에 관한 물음에 답하시오.

① PHP 프로그램 내에서 MySQL 서버에 연결하는 함수는 무엇인가?

② 설정된 MySQL 연결에서 MySQL 명령을 실행하는 함수는 무엇인가?

③ 설정된 MySQL 연결을 해제하는 함수는 무엇인가?

더보기

① mysqli_connect

② mysqli_query

③ mysqli_close

2023 정보처리기사 실기 예상 문제 모음

 

C언어 기출문제 모음

JAVA 기출문제 모음

Python 기출문제 모음

정보처리기사 실기 SQL 기출문제 모음

 

정보처리산업기사(정처산기) 실기 C언어 기출문제 모음

정보처리산업기사(정처산기) 실기 Java 기출문제 모음

정보처리산업기사(정처산기) 실기 Python 기출문제 모음

정보처리산업기사(정처산기) 실기 SQL 기출문제 모음


22년 1회

15. <인사팀>의 인원이 총 20명이고, 그 중 3명은 20대, 6명은 30대, 나머지는 40대일 때, 다음 <SQL문>으로 검색될 수 있는 튜플의 개수(인원 수)를 쓰시오.

SELECT 이름 FROM 인사팀 WHERE 나이 BETWEENE 35 AND 49;

답 : (     ) 명 이상, (     )명 이하

더보기

11, 17


22년 1회

18. 다음은 <Student> 테이블에서 학생 수가 5명 이상인 과목에 대해 중간고사 평균을 조회하는 <SQL문>이다. 괄호에 알맞은 답을 적어 <SQL문>을 완성하시오.

SELECT sub_Code As 과목코드, ( 가 ) (mid) AS 중간평균
FROM Students
GROUP BY sub_Code
HAVING ( 나 ) ( * ) >=5;
더보기

가 : AVG

나 : COUNT


22년 2회

3. 다음 테이블(salaries)에서 사원번호(emp_num)가 2073인 사원의 급여(salary)를 2500으로 갱신하는 SQL문을 작성하시오. (단, 문장 마지막의 세미콜론(;)의 여부는 채점에 영향을 주지 않는다)

emp_num name salary
2071 White 2400
2072 Red 2315
2073 Brown 2478
2074 Green 3100
2075 PurPle 4200
더보기

UPDATE salaries SET salary =2500 WHERE emp_num=2073;


22년 2회

18. 다음 관계 대수식을 해석하여 SQL문으로 작성하시오.

더보기

SELECT FNAME, LNAME,SALARY FROM EMP WHERE DNO=1005;


22년 3회

18. SQL에 대한 다음 설명에서 괄호에 들어갈 알맞은 명령어를 쓰시오.

SQL의 하나인 DDL은 DB 구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어로, 다음 3가지 명령어를 사용하여 표현한다.
(  가  ) : 스키마, 도메인, 테이블 등의 개체를 정의하는 데 사용하는 명령어
(  나  ) : 개체에 대한 정의를 변경하는 데 사용하는 명령어
(  다  ) : 스키마, 도메인, 테이블 등의 개체를 삭제하는 데 사용하는 명령어
더보기

(가) : CREATE

(나) : ALTER

(다) : DROP


23년 1회

19. 다음은 Company 테이블을 생성하는 SQL문이다. company 테이블의 TITLE 속성에는 Intern, Staff, Manager, Director, President 값만 허용할 수 있도록 <SQL문> (가) 와 (나)에 적합한 단어를 쓰시오

CREATE TABLE COMPANY(
           ID INT NOT NULL,
           NAME VARCHAR(20) NOT NULL,
           AGE INT NOT NULL,
           TITLE VARCHAR(20) (가) (TITLE(나) ('Intern','Staff','Manager','Director','President'))
       );
더보기

(가) CHECK

(나) IN


23년 2회

6. 아래 처리조건을 보고 SQL문을 작성하시오.

<처리조건>
-학생 테이블에서 학년이 3학년 이상이 수강하는 과목을 검색한다
-검색 결과 중복을 제거한다
더보기

SELECT DISTINCT 과목 FROM 학생 WHERE 학년 >= 3;


23년 2회

19. SQL문에서 특정 속성의 값을 제한하기 위해 사용하는 문법으로 도메인이 가질 수 있는 값의 범위를 제약할 때 사용하는 제약조건을 쓰시오.

더보기

CHECK


23년 3회

3. 아래 처리조건을 보고 SQL문을 작성하시오.

<처리조건>
-customer 테이블에서 학년(GRADE) 속성을 중복 없이 검색한다
더보기

SELECT DISTINCT GRADE FROM CUSTOMER;


2023 정보처리기사 실기 예상 문제 모음

 

C언어 기출문제 모음

JAVA 기출문제 모음

Python 기출문제 모음

정보처리기사 실기 SQL 기출문제 모음

 

정보처리산업기사(정처산기) 실기 C언어 기출문제 모음

정보처리산업기사(정처산기) 실기 Java 기출문제 모음

정보처리산업기사(정처산기) 실기 Python 기출문제 모음

정보처리산업기사(정처산기) 실기 SQL 기출문제 모음

2023 정보처리기사 실기 예상 문제 모음

 

C언어 기출문제 모음

JAVA 기출문제 모음

Python 기출문제 모음

정보처리기사 실기 SQL 기출문제 모음

 

정보처리산업기사(정처산기) 실기 C언어 기출문제 모음

정보처리산업기사(정처산기) 실기 Java 기출문제 모음

정보처리산업기사(정처산기) 실기 Python 기출문제 모음

정보처리산업기사(정처산기) 실기 SQL 기출문제 모음


22년 1회

11. 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

x=10
y= 'test'
print(type(x))
print(type(y))

22년 3회

5. 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. 

def f(n) :
  return lambda a:a*n
k=f(3)
print(k(10))

22년 3회

10. 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

def af(a,b):
  return a+b
def sf(a,b):
  return a-b
print(sf(af(4,5),6))

23년 1회

20. 다음 (가)에 무엇이 들어갈지 쓰시오

wallet=['credit','id']
card=True
if('cash'in wallet):
	print('택시')
(가)(card):	
	print('버스')
else:
	print('도보')
지갑안에 신용카드(credit)와 신분증(id)이 있고 카드(card)를 가지고 있다.
대중교통을 이용하는데
지갑 안에 현급(cash)이 있다면 택시를 이용하고
현금이 없는 경우 카드가 있는지 확인하고
카드가 있다면 버스를 이용한다
만약 현금과 카드 둘다 없다면 도보를 이용한다
더보기

elif


23년 2회

11. 다음 보기에서 Python 언어의 특징을 모두 고르시오

<보기>
ㄱ. 변수 선언 시 자료형 작성은 필수
ㄴ. 세미콜론을 사용하지 않아도 된다
ㄷ. 변수에 연속하여 값을 저장하는 것이 가능하다
ㄹ. 같은 수준의 코드는 반드시 동일한 여백을 가져야 한다
ㅁ. gcc를 이용해 컴파일하기 때문에 인터프리터 언어가 아니다
더보기

ㄴ, ㄷ, ㄹ


2023 정보처리기사 실기 예상 문제 모음

 

C언어 기출문제 모음

JAVA 기출문제 모음

Python 기출문제 모음

정보처리기사 실기 SQL 기출문제 모음

 

정보처리산업기사(정처산기) 실기 C언어 기출문제 모음

정보처리산업기사(정처산기) 실기 Java 기출문제 모음

정보처리산업기사(정처산기) 실기 Python 기출문제 모음

정보처리산업기사(정처산기) 실기 SQL 기출문제 모음

2023 정보처리기사 실기 예상 문제 모음

 

C언어 기출문제 모음

JAVA 기출문제 모음

Python 기출문제 모음

정보처리기사 실기 SQL 기출문제 모음

 

정보처리산업기사(정처산기) 실기 C언어 기출문제 모음

정보처리산업기사(정처산기) 실기 Java 기출문제 모음

정보처리산업기사(정처산기) 실기 Python 기출문제 모음

정보처리산업기사(정처산기) 실기 SQL 기출문제 모음


22년 1회

19. 다음 Java로 구현된 프로그램을 분석하여 그 실행결과를 쓰시오.

public class Test {
	public static void main(String args[]) {
    	int a=0, ss=0;
        while(true) {
        if(ss>100) break;
        ++a;
        ss+=a;
        }
        System.out.print(a+ss);
     }
 }

22년 1회

20. 다음 Java로 구현된 프로그램을 분석하여 그 실행결과를 쓰시오. 

public class Test {
	public static void main(String args[]) {
    	int x=1, T_x=0, t_x=0;
        T_x= (x>=0) ? x:-x;
        if(x>=0)
        	t_x=x;
        else
        	t_x=-x;
        System.out.println(T_x + " " + t_x);
        }
 }

22년 2회

10. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

class Test {  
  public static void main(String args[]) { 
    int i=17;
    i+=1;
    i-=2;
    i*=3;
    i/=4;
    i%=5;
    System.out.print(i); 
  } 
}

22년 2회

16. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

class Test {  
  public static void main(String args[]) { 
    int a=26;
    int b=91;
    int g=0;
    int c=a<b?a:b;
    for(int i=1; i<c;i++){
      if(a%i==0 && b%i==0)
        g=i;
    }
    System.out.print(g);
  } 

}

22년 3회

3. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

class Main {  
  public static void main(String args[]) { 
    int[] a=new int[8];
    int i=0;
    int n=11;
    while(n>0){
      a[i++]=n%2;
      n/=2;
    }
    for(i=7;i>=0;i--)
      System.out.print("%d",a[i]);
  } 
}
더보기

00001011


22년 3회

15. 다음 JAVA로 구현된 프로그램을 분석하여 그 실행결과를 쓰시오.

class Main {  
  public static void main(String args[]) { 
    int a[][]=new int [3][3];
    init(a);
    data(a);
    prnt(a);
  } 

  static void init(int a[][]){
    for(int i=0; i<3;i++)
      for(int j=0; j<3;j++)
        a[i][j]=0;
  }

    static void data(int a[][]){
      int v=1;
    for(int i=0; i<3;i++)
      for(int j=i; j<3;j++)
        a[i][j]=v++;
  }

    static void prnt (int a[][]){
    for(int i=0; i<3;i++){
      for(int j=0; j<3;j++){
        if(a[i][j]==0)
          System.out.printf(" ");
      else
          System.out.printf("%d", a[i][j]);
     }
      System.out.println();
    } 
  }
}
더보기

123

  45

    6


23년 1회

12. 다음 코드의 출력결과를 쓰시오

public class Main {
	public static void main(String[] args) {   // true, false
		int x = 1;
		System.out.println(!(x>0));
		System.out.println((x!=0) || (x>0));
		System.out.println(x << 2);
		System.out.println(x & 2);
		System.out.println(x %= 3);
	}
}
더보기

false
true
4
0
1


23년 2회

15. 출력결과

class Main {
    public static void main(String[] args) {
    	int[] a = {4, 7, 1, 2};
    	for(int i=0; i<3; i++) {
    		for(int j=i+1; j<4; j++) {
    			if(a[i] > a[j]) {
    				int temp = a[j];
    				a[j] = a[i];
    				a[i] = temp;
    			}
    		}
    	}
    	for(int i=0; i<4; i++) {
    		System.out.print(a[i] + "a");
    	}
    }
}
더보기

1a2a4a7a


23년 3회

10. 출력결과

class Berry {
	String Str;
	void meth() {
		func();
	}
	void func() {
		System.out.println(Str);
	}
}
class Apple extends Berry {
	String Str;
	void func() {
		Str = "Apple";
		super.Str = "Berry";
		super.func();
		System.out.println(Str);
	}
}
public class Main {
	public static void main(String[] args) {
		Berry A = new Apple();
		A.meth();
	}
}
더보기

Berry
Apple


23년 3회

15. 출력결과

public class Main {
	static int  a = 0;
	static int func(int t) {
		a = a+t;
		return a;
	}
	public static void main(String[] args) {
		for(int i=0; i<5; i++) {
			func(i);
		}
		System.out.print(a);
	}
}

23년 3회

17. 출력결과

class A {
	int f(int a, int b) {
		return a+b;
	}
}
public class Main {
	public static void main(String[] args) {
		A a = new A();
		System.out.print(a.f(25, 25));
	}
}

2023 정보처리기사 실기 예상 문제 모음

 

C언어 기출문제 모음

JAVA 기출문제 모음

Python 기출문제 모음

정보처리기사 실기 SQL 기출문제 모음

 

정보처리산업기사(정처산기) 실기 C언어 기출문제 모음

정보처리산업기사(정처산기) 실기 Java 기출문제 모음

정보처리산업기사(정처산기) 실기 Python 기출문제 모음

정보처리산업기사(정처산기) 실기 SQL 기출문제 모음

+ Recent posts