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
$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()
'PHP' 카테고리의 다른 글
PHP 프로그래밍 입문 3판 연습문제 14장 정답 정리 (0) | 2023.12.22 |
---|---|
PHP 프로그래밍 입문 3판 연습문제 13장 정답 정리 (0) | 2023.12.22 |
PHP 프로그래밍 입문 3판 연습문제 11장 정답 정리 (1) | 2023.12.22 |
PHP 프로그래밍 입문 3판 연습문제 10장 MySQL 조작 정답 정리 (2) | 2023.05.04 |
PHP 프로그래밍 입문 3판 연습문제 9장 MySQL 데이터베이스 정답 정리 (0) | 2023.05.03 |