게시판 만들기(4): [모의해킹_실습] - Php로 웹 개발하기 : 게시판 만들기(4)에서 글을 작성할 수 있는 기능을 만들었는데, 임시로 사용자는 'test', 날짜와 시간은 2021-00-00, 00:00으로 삽입해주었었다. 이번 포스팅에서는 글을 생성할 때, 사용자에는 현재 로그인된 아이디를 넣고 글을 읽는 페이지에서 자신이 작성한 글을 읽는다면 삭제 버튼을 표시해볼 것이다. 추가로 날짜와 시간도 현재 날짜와 시간으로 바꿔보자.
① 로그인 아이디 가져오기
메인 페이지에서 세션을 검증하기 위해 session_start()를 사용했었다.
session_start();
if($_SESSION['id']) $username = $_SESSION['id'];
else $username = "anonymous";
board_create.php 파일에서 session_start()로 세션 아이디가 존재하면 username에 넣어주고, 존재하지 않는다면 익명의 사용자로 넣어준다.
admin으로 로그인한 후 글을 작성해보자.
자동으로 User ID admin으로 들어간 것을 확인할 수 있다.
② 삭제 버튼 활성화
현재 admin이 쓴 글을 클릭해보면 다음과 같은 화면을 볼 수 있다.
기존의 read.php 파일에서 글 작성자를 $username으로 받아오고 세션 ID와 일치하면 삭제 버튼을 만들어준다.
<?php
if(isset($_GET['id'])){
$id = $_GET['id'];
$sql = "SELECT * FROM board where id = {$id}";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($result);
$username = $row['username'];
$title = $row['title'];
$content = $row['content'];
mysqli_close($conn);
}
?>
<div class = "posting_title"><?=$title?></div>
<div class = "posting_contents"><?=$content?></div>
<button class = "writeBtn" onclick = "location.href = 'board.php'">게시판</button>
<?php
session_start();
if ($_SESSION['id'] == $username) {
echo "<button class = 'writeBtn'>삭제</button>";
}
?>
admim 글을 들어갔을 때와 hanus91041 글에 들어갔을 때 삭제 버튼의 활성화 차이를 확인할 수 있다.
③ 날짜와 시간 넣기
이제 DB에 현재 날짜와 시간을 넣어보자.
날짜는 getdate() 함수를 이용하면 쉽게 구할 수 있다.
<?php
$date = getdate();
echo $date["year"];
echo $date["mon"];
echo $date["mday"];
?>
시간도 출력해보자.
<?php
date_default_timezone_set('Asia/Seoul');
$date = getdate();
echo $date["year"]."-".$date["mon"]."-".$date["mday"],"<br/>";
echo $date["hours"].":".$date["minutes"];
?>
시간이 미국으로 되어있어서 timezone을 설정해주는 코드를 추가해주었다.
이제 board_create.php의 $date와 $time을 현재 날짜와 시간으로 넣어주자.
session_start();
$title = $_POST['create_title'];
$content = $_POST['create_body'];
if($_SESSION['id']) $username = $_SESSION['id'];
else $username = "anonymous";
date_default_timezone_set('Asia/Seoul');
$current_date = getdate();
$date = $current_date["year"]."-".$current_date["mon"]."-".$current_date["mday"];
$time = $current_date["hours"].":".$current_date["minutes"];
글을 작성해보자.
date와 time이 현재 시간으로 잘 들어간 것을 확인할 수 있다.
'WEB HACKING > 웹 해킹[실습]' 카테고리의 다른 글
Php로 웹 개발하기 : 게시판(8) - Update (0) | 2021.11.20 |
---|---|
Php로 웹 개발하기 : 게시판(7) - Delete (0) | 2021.11.19 |
Php로 웹 개발하기 : 게시판(5) - Read (0) | 2021.11.17 |
Python 자동화 코드 구현하기 : Blind SQL Injection (1) | 2021.11.16 |
Php로 웹 개발하기 : 게시판(4) - Create (0) | 2021.11.11 |
댓글