4. [2주차]-2 학생, 점수 페이지 만들기
보안공부/웹 모의해킹 공부2024. 4. 26. 11:01
* 과제
1. 복습(database, SQL)
2. 미니 미션
- 학생, 점수 데이터베이스 생성
- GET 방식으로 학생의 이름이 입력되면 그에 맞는 점수를 출력
- ex) "doldol 학생의 점수는 80입니다."
3. 로그인 페이지 (DB 연동
4. 회원가입 페이지 만들기 (기능 구현)
+ 추가 미션 (시간이 남으면)
1. 마이 페이지 기능
2. 미니 미션
- 학생, 점수 데이터베이스 생성
- GET 방식으로 학생의 이름이 입력되면 그에 맞는 점수를 출력
- ex) "doldol 학생의 점수는 80입니다."
먼저 위와 같이 DB내 테이블을 생성하였다.
<?php
$name = "";
// SQL 쿼리 결과가 있다는 플래그
$select_score = false;
// 처음 접근 시 학새 이름을 입력받는 폼을 보여주기 위한 플래그
$init_access = true;
if (isset($_GET["name"])) {
$name = $_GET["name"];
$ini_array = parse_ini_file("/etc/web_conf/.env");
$db_url = $ini_array["DB_URL"];
$db_user = $ini_array["DB_USER"];
$db_pw = $ini_array["DB_PW"];
$db_database = $ini_array["DB_DATABASE"];
$conn = mysqli_connect($db_url, $db_user, $db_pw, $db_database);
$sql = "select * from score where name='{$name}'";
$result = mysqli_query($conn, $sql);
if ($result) {
$row = mysqli_fetch_array($result);
// print_r($row);
// 결과 제대로 가져오면
if ($row) {
// 입력 폼 플래그 off
// SQL 결과 플래그 on
$init_access = false;
$select_score = true;
}
// 결과 없으면
else {
// 입력 폼 플래그 off
// SQL 결과 플래그 off
$init_access = false;
$select_score = false;
}
} else {
echo "에러 발생!";
echo mysqli_errno($conn);
exit;
}
} else {
// echo "학생 이름을 입력해주세요";
// exit;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<?php
// 처음 접근시 학생 이름 받는 폼
if ($init_access == true) {
?>
<form action="">
<input type="text" name="name" id="name" placeholder="학생 이름을 입력해주세요">
<button type="submit">점수 확인</button>
</form>
<?php
// 처음 접근이 아니고 SQL 결과 있으면
} else if ($init_access == false && $select_score == true) {
echo "{$row["name"]} 학생의 점수는 {$row["score"]} 입니다.";
}
// 처음 접근이 아니고 SQL 결과 없으면
else if ($init_access == false && $select_score == false) {
echo "해당 학생은 존재하지 않습니다.";
} else {
echo "문제가 발생했습니다.";
}
?>
</body>
</html>
페이지 내에서 학생 이름을 입력 폼으로 받아 GET 방식으로 재전송한다.
그 GET으로 받은 결과를 이용해 점수데이터를 가져와서 보여주는 방식으로 작성하였다.
처음 접근 시 학생의 이름을 입력받는다.
학생의 이름 입력 시 GET 방식으로 페이지로 재전송해 그에 맞는 점수를 보여준다.
존재하지 않는 학생의 경우 해당 문구를 보여주는 방식으로 개발하였다.
반응형
'보안공부 > 웹 모의해킹 공부' 카테고리의 다른 글
6. [2주차]-4 회원가입 페이지 만들기 (0) | 2024.04.28 |
---|---|
5. [2주차]-3 로그인 페이지 DB 연동 (0) | 2024.04.26 |
3. [2주차]-1 데이터베이스 및 명령어 (0) | 2024.04.25 |
2. [1주차]-1 간이 로그인 페이지 만들기 (0) | 2024.04.19 |
1. [0주차] Ubuntu 22.04에 APM 설치하기 (0) | 2024.04.09 |
댓글()