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

 

+ Recent posts