[Normaltic's 취업반 과제] 게시판에 글 등록하기
2024. 5. 5. 18:15ㆍ정보보안 및 해킹/Normaltic's 취업반 과제
컨셉 한번 지독하다
앞서 글 쓴 것처럼 필자의 웹사이트는 뮤지컬 / 연극 / 콘서트 관극을 기록하는 웹사이트이므로, 관극한 날짜, 카테고리, 공연 이름, 리뷰(선택사항)을 사용자로부터 받아와서 DB에 저장하면 된다.
index.php - 글 등록 버튼 추가 및 등록 페이지로 이동하는 이벤트 발생
[생략]
<div class="repo-category repo-category-btn-header">
<div>
<div>
<button class="my-page-header mypage-btn-outline mypage-btn-skin-outline" name="write" value="writewatched">
Write </button><br>
<?php
if (isset($_POST['write'])) {
header("location: write_board.php?login_id=" . $user_id);
exit;
}
?>
</div>
</div>
[생략]
write_board.php - 글 등록 페이지. 관극한 날짜를 입력할 수 있도록 하고, DB에 있는 카테고리 enum값을 받아와서 Deopdown으로 띄우고, 공연 이름을 입력하고였고. 후기는 선택사항으로 입력할 수 있도록 NULL로 처리하였다.
<?php
require_once ('write_board_func.php');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap"
rel="stylesheet">
<link rel="stylesheet" href="/css/style.css" />
<link rel="stylesheet" href="/css/font.css" />
<title>Write Page</title>
</head>
<body class="header">
<div class="info">
<form action="" method="POST">
<?php
$user_id = $_GET['login_id'];
?>
<h1> <?php echo $user_id ?>님 즐거운 관극 되셨나요? 그 소중한 추억을 남겨주세요. </h1>
<label for="watcheddate">Watched Date</label><br>
<input type="date" name="watcheddate" /><br>
<label for="category">Category</label><br>
<select name="category">
<?php
$table_name = "category_table";
$categoryfield = 'Category';
$result = mysqli_query(connect_db(), 'SHOW COLUMNS FROM ' . $table_name . ' WHERE field="' . $categoryfield . '"');
while ($row = mysqli_fetch_row($result)) {
foreach (explode("','", substr($row[1], 6, -2)) as $option) {
print ("<option>$option</option>");
}
}
?>
<select><br>
<label for="watchedname">공연 이름</label><br>
<input type="text" name="watchedname" placeholder="watchedName" /><br>
<label for="watchedreview">관극 후기(선택)</label><br>
<input type="text" name="watchedreview" placeholder="watchedReview" /><br>
<button class="submit-button" name="write" value="writereview">등록하기</button>
<?php
if(isset($_POST['write'])) {
// echo "here";
write_watched_review($_POST['watcheddate'], $_POST['category'], $_POST['watchedname'], $_POST['watchedreview']);
}
?>
</form>
</div>
</body>
</html>
write_board_func.php - 등록 버튼을 누르면 쿼리 문을 통해 DB에 insert하는 함수가 있다
<?php
require_once('connect_db.php');
function write_watched_review($watched_date, $category, $name, $review)
{
$table_name = "category_table";
$sql_query = "INSERT INTO $table_name VALUES ('$watched_date', '$category', '$name', '$review')";
$sql_res = mysqli_query(connect_db(), $sql_query);
if ($sql_res) {
refresh_auto_indrement_num();
}
}
?>
'정보보안 및 해킹 > Normaltic's 취업반 과제' 카테고리의 다른 글
[Normaltic's 취업반 과제] jwt 로그인 유지 (0) | 2024.05.08 |
---|---|
[Normaltic's 취업반 과제] 게시판에 이미지 / 파일 등록하기 (0) | 2024.05.07 |
[Normaltic's 취업반 과제] jwt를 이용한 로그인 (0) | 2024.05.03 |
[Normaltic's 취업반 과제] jwt (1) | 2024.05.03 |
[Normaltic's 취업반 과제] 회원가입 시 비밀번호 해시처리하기 (0) | 2024.05.02 |