WebDB(II) 실습예제 소스 #10

By | 2014년 10월 23일
<?php session_start(); ?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>examSQL-19.php</title>
    </head>
    <body>
        <?php
        require './dbConn.php';

        $link = mysqli_connect($dbHost, $dbUser, $dbPass); // MySQL 서버 연결
        if (!$link) { // DB연결에 실패한 경우 ($!link, $link!=true, $link==false 모두 동일)
            echo "DB 연결에 실패했습니다.";
            exit();   // 프로그램 종료
        }

        $db = mysqli_select_db($link, $dbName); // Database 선택
        if (!$db) {  // DB선택에 실패한 경우 ($!$db, $db!=true, $db==false 모두 동일)
            echo "{$dbName} 이름의 DB를 찾을 수 없습니다.";
            exit();  // 프로그램 종료
        }

        $char = mysqli_set_charset($link, "utf8"); // DB 문자셋 설정
        if (!$char) { // 문자셋 설정에 실패한 경우 ($!$char, $char!=true, $char==false 모두 동일)
            echo "UTF-8 문자셋을 설정하지 못했습니다.";
            exit();   // 프로그램 종료
        }

        $sql = "SELECT `userid` FROM `user` WHERE `userid` = '{$_POST["a"]}' AND `passwd` = '{$_POST["b"]}'";
        echo $sql;

        $result = mysqli_query($link, $sql); // SQL 실행
        if (!$result) { // SQL에 오류가 있는 경우
            echo "SQL에 오류가 있습니다.";
            exit();     // 프로그램 종료
        }

        $num = mysqli_num_rows($result);
        if ($num != 0) {
            echo "인증되었습니다.";
            $row = mysqli_fetch_array($result);
            $_SESSION["session_loginid"] = $row["userid"];
        } else {
            echo "인증에 실패했습니다.";
        }

        mysqli_close($link); // MySQL 연결 종료
        ?>
        <a href="./examSQL-13.php">목록으로</a>
    </body>
</html>
<?php session_start(); ?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <style>
            h1 {text-align: center;}
            table {margin: 0 auto;}
        </style>
        <title>examSQL-13.php</title>
    </head>
    <body>
        <h1>회원목록</h1>
        <table>
            <thead>
                <tr>
                    <th>순번</th>
                    <th>아이디</th>
                    <th>성명</th>
                    <th>비밀번호</th>
                    <th>이메일</th>
                    <th>동작</th>
                </tr>
            </thead>
            <tbody>
                <?php
                require './dbConn.php';

                $link = mysqli_connect($dbHost, $dbUser, $dbPass); // MySQL 서버 연결
                if (!$link) { // DB연결에 실패한 경우 ($!link, $link!=true, $link==false 모두 동일)
                    echo "DB 연결에 실패했습니다.<br/>";
                    exit();   // 프로그램 종료
                }

                $db = mysqli_select_db($link, $dbName); // Database 선택
                if (!$db) {  // DB선택에 실패한 경우 ($!$db, $db!=true, $db==false 모두 동일)
                    echo "{$dbName} 이름의 DB를 찾을 수 없습니다.<br/>";
                    exit();  // 프로그램 종료
                }

                $char = mysqli_set_charset($link, "utf8"); // DB 문자셋 설정
                if (!$char) { // 문자셋 설정에 실패한 경우 ($!$char, $char!=true, $char==false 모두 동일)
                    echo "UTF-8 문자셋을 설정하지 못했습니다.<br/>";
                    exit();   // 프로그램 종료
                }

                $sql = "SELECT `userid`, `passwd`, `name`, `email` FROM `user`";

                $result = mysqli_query($link, $sql); // SQL 실행
                if (!$result) { // SQL에 오류가 있는 경우
                    echo "SQL에 오류가 있습니다.<br/>";
                    exit();     // 프로그램 종료
                }

                $no = 1;
                while ($row = mysqli_fetch_array($result)) { // 루프를 돌며 검색된 결과에서 마지막이 될 때까지 레코드를 하나씩 가져옴
                    ?>
                    <tr>
                        <td><?= $no ?></td>
                        <td><?= $row["userid"] ?></td>
                        <td><?= $row["passwd"] ?></td>
                        <td><?= $row["name"] ?></td>
                        <td><?= $row["email"] ?></td>
                        <td>
                            <?php if ($_SESSION["session_loginid"] == $row["userid"]) { ?>
                                <a href='./examSQL-14.php?userid=<?= $row["userid"] ?>'>삭제</a>
                            <?php } ?>
                        </td>
                        <td>
                            <?php if ($_SESSION["session_loginid"] == $row["userid"]) { ?>
                                <a href='./examSQL-16.php?userid=<?= $row["userid"] ?>'>수정</a>
                            <?php } ?>
                        </td>
                    </tr>
                    <?php
                    $no ++;
                }

                mysqli_close($link); // MySQL 연결 종료
                ?>
            </tbody>
        </table>
    </body>
</html>
<?php session_start(); ?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>examSQL-07.php</title>
    </head>
    <body>
        <?php
        require './dbConn.php';
        if ($_SESSION["session_loginid"] == $_GET["userid"]) {
            $link = mysqli_connect($dbHost, $dbUser, $dbPass); // MySQL 서버 연결
            if (!$link) { // DB연결에 실패한 경우 ($!link, $link!=true, $link==false 모두 동일)
                echo "DB 연결에 실패했습니다.";
                exit();   // 프로그램 종료
            }

            $db = mysqli_select_db($link, $dbName); // Database 선택
            if (!$db) {  // DB선택에 실패한 경우 ($!$db, $db!=true, $db==false 모두 동일)
                echo "{$dbName} 이름의 DB를 찾을 수 없습니다.";
                exit();  // 프로그램 종료
            }

            $char = mysqli_set_charset($link, "utf8"); // DB 문자셋 설정
            if (!$char) { // 문자셋 설정에 실패한 경우 ($!$char, $char!=true, $char==false 모두 동일)
                echo "UTF-8 문자셋을 설정하지 못했습니다.";
                exit();   // 프로그램 종료
            }

            $sql = "DELETE FROM `user` WHERE `userid` = '{$_GET["userid"]}'";
            echo $sql;

            $result = mysqli_query($link, $sql); // SQL 실행
            if (!$result) { // SQL에 오류가 있는 경우
                echo "SQL에 오류가 있습니다.";
                exit();     // 프로그램 종료
            }

            mysqli_close($link); // MySQL 연결 종료
        }
        else {
            echo "다른 사용자의 정보는 삭제할 수 없습니다.";
        }
        ?>
    </body>
    <a href="./examSQL-13.php">목록으로</a>
</html>
<?php
session_start();

require './dbConn.php';

if ($_SESSION["session_loginid"] == $_GET["userid"]) {
    $link = mysqli_connect($dbHost, $dbUser, $dbPass); // MySQL 서버 연결
    if (!$link) { // DB연결에 실패한 경우 ($!link, $link!=true, $link==false 모두 동일)
        echo "DB 연결에 실패했습니다.<br/>";
        exit();   // 프로그램 종료
    }

    $db = mysqli_select_db($link, $dbName); // Database 선택
    if (!$db) {  // DB선택에 실패한 경우 ($!$db, $db!=true, $db==false 모두 동일)
        echo "{$dbName} 이름의 DB를 찾을 수 없습니다.<br/>";
        exit();  // 프로그램 종료
    }

    $char = mysqli_set_charset($link, "utf8"); // DB 문자셋 설정
    if (!$char) { // 문자셋 설정에 실패한 경우 ($!$char, $char!=true, $char==false 모두 동일)
        echo "UTF-8 문자셋을 설정하지 못했습니다.<br/>";
        exit();   // 프로그램 종료
    }

    $sql = "SELECT `userid`, `passwd`, `name`, `email` FROM `user` WHERE `userid` = '{$_GET["userid"]}'";

    $result = mysqli_query($link, $sql); // SQL 실행
    if (!$result) { // SQL에 오류가 있는 경우
        echo "SQL에 오류가 있습니다.<br/>";
        exit();     // 프로그램 종료
    }

    $row = mysqli_fetch_array($result); // 검색된 회원정보를 가져옴

    mysqli_close($link); // MySQL 연결 종료
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>examSQL-16.php</title>
            <style>
                .field-name {float:left; width:100px;text-align:right;}
                .field-input input {margin-left: 10px;}
            </style>
        </head>
        <body>
            <h1>회원정보수정</h1>
            <form method="post" action="examSQL-17.php">
                <div class="field-name">아이디 : </div>
                <div class="field-input"><input type="text" value="<?= $row["userid"] ?>" disabled />
                    <input type="hidden" name="a" value="<?= $row["userid"] ?>" /></div>
                <div class="field-name">비밀번호 : </div>
                <div class="field-input"><input type="password" name="b" value="<?= $row["passwd"] ?>"/></div>
                <div class="field-name">성명 : </div>
                <div class="field-input"><input type="text" name="c" value="<?= $row["name"] ?>"/></div>
                <div class="field-name">이메일 : </div>
                <div class="field-input"><input type="text" name="d" value="<?= $row["email"] ?>"/></div>
                <div class="field-name">&nbsp</div>
                <div class="field-input"><input type="submit" value="등록" /></div>
            </form>
        </body>
    </html>
    <?php
}
?>
<?php session_start(); ?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>examSQL-17.php</title>
    </head>
    <body>
        <?php
        require './dbConn.php';
        if ($_SESSION["session_loginid"] == $_GET["userid"]) {
            $link = mysqli_connect($dbHost, $dbUser, $dbPass); // MySQL 서버 연결
            if (!$link) { // DB연결에 실패한 경우 ($!link, $link!=true, $link==false 모두 동일)
                echo "DB 연결에 실패했습니다.";
                exit();   // 프로그램 종료
            }

            $db = mysqli_select_db($link, $dbName); // Database 선택
            if (!$db) {  // DB선택에 실패한 경우 ($!$db, $db!=true, $db==false 모두 동일)
                echo "{$dbName} 이름의 DB를 찾을 수 없습니다.";
                exit();  // 프로그램 종료
            }

            $char = mysqli_set_charset($link, "utf8"); // DB 문자셋 설정
            if (!$char) { // 문자셋 설정에 실패한 경우 ($!$char, $char!=true, $char==false 모두 동일)
                echo "UTF-8 문자셋을 설정하지 못했습니다.";
                exit();   // 프로그램 종료
            }

            $sql = "UPDATE `user` SET `passwd` = '{$_POST["b"]}', `name` = '{$_POST["c"]}', `email` = '{$_POST["d"]}' WHERE `userid` = '{$_POST["a"]}'";
            echo $sql;

            $result = mysqli_query($link, $sql); // SQL 실행
            if (!$result) { // SQL에 오류가 있는 경우
                echo "SQL에 오류가 있습니다.";
                exit();     // 프로그램 종료
            }

            $num = mysqli_affected_rows($link);
            if ($num == 0) {
                echo "수정된 내용이 없습니다.";
            } else {
                echo "정보가 수정되었습니다.";
            }

            mysqli_close($link); // MySQL 연결 종료
        }
        else {
            echo "다른 사용자의 정보는 수정할 수 없습니다.";
        }
        ?>
        <a href="./examSQL-13.php">목록으로</a>
    </body>
</html>
<?php
session_start();
session_unset();
?>
<?php start_session() ?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>examSQL-20.php</title>
    </head>
    <body>
        로그아웃 되었습니다.
    </body>
</html>