2023. 5. 6. 22:32ㆍWEB/PHP
안녕하세요.
저번 시간에는 게시판 리스트와 글 조회 기능을 간단히 만들어보았죠.
이번에는 글 등록 페이지를 만들어 보겠습니다.
글 등록도 생각보다 간단쓰 하죠.
일단 페이지를 만들기 전 쿼리문을 생각해봅시다.
Insert into board(title,content,createdate)
values(?,?,?);
이런 식으로 들어가겠네요.
이제 board/register.php를 만들어봅시다.
프론트 작업부터 해주죠!
<!DOCTYPE html>
<html>
<head>
<title>Board register</title>
</head>
<body>
<h1>Write page</h1>
<form method="post" action="">
<input type="text" name = "title" placeholder="Enter title">
<textarea name = "content" rows="10" cols="100" placeholder="Enter content"></textarea>
<br>
<input type="submit" value="write"></input>
</form>
</body>
</html>
form에서 title과 content를 입력받고 버튼을 누르면 자신에게 보내군요!
하지만 우리가 못보던 속성이 몇가지 있습니다.
placeholder 속성은 뭘까요? 바로 실행을 시켜보시면 아시겠지만
아무런 글자를 입력하지 않았을때 출력시킬 글자를 설정하는겁니다.
id를 입력해야할 입력란에 처음부터 아무런 안내가 되어있지 않으면 어떤것을 입력해야 할 지 모르겠지요?
그럴때 id를 입력하세요 라고 뜨는것이 placeholder입니다.
text area 태그는 사진과 같이 조절이 가능하고 보다 더 큰 텍스트 박스를 생성 가능합니다.
rows,cols속성은 크기 조절입니다.
이렇게 깔끔한 입력 페이지가 구성되었습니다!
이제 입력을 하면 입력된 값이 DB에 꽃이게 해봅시다.
register.php 상단에
<?php
$title = $_POST['title'];
$content = $_POST['content'];
$date = date("Y-m-d");
$sql = "Insert into board(title,content,createdate) values('$title','$content','$date')";
echo $sql;
echo "<br>";
?>
이러한 코드를 넣어서 입력값에 따라 쿼리문이 잘 제작되는지 확인 하시구요.
date는 현재 날짜를 반환합니다. Y-m-d 형식으로 포멧합니다. 따라서 날짜가 2023-05-06 이런식으로 나옵니다.
게시글 작성 날짜에 쓰입니다.
이제 DB연결하시고 실행까지 해보죠!
개발은 뭐다? 재사용이다.
회원가입쪽에 코드 그대로 복사해서 가지고 옵시다../ㅋㅋ
참고로 재사용도 잘쓴 코드를 재사용해야지 못쓴거는 폐기가 답입니다.
일단 나중에 고칠 예정입니다.
<?php include "../connect.php"; ?>
<?php
$title = $_POST['title'];
$content = $_POST['content'];
$date = date("Y-m-d");
$sql = "Insert into board(title,content,createdate) values('$title','$content','$date')";
echo $sql;
echo "<br>";
$result = mysqli_query($conn,$sql);
if (mysqli_error($conn)) { //id
echo "<script>alert('board register error please check error message.');</script>";
}
if($result){
echo "<script>alert('board register success');</script>";
}
?>
하지만 이 코드는 우리의 의도와는 다르게 페이지를 들어갈때마다 실행되고
새로고침을 할 때마다 쓰레기값이 들어갑니다.
not null 제약을 걸었는데도 들어가는것을 보아하니 인식이 되나봄니다..
따라서 우리는 입력을 했을때만 저 코드를 실행시켜야 합니다.
어떻게 할까요? 저번 회원가입 시간에서는 그냥 모든 값이 null이 아니면 통과시켰습니다.
이번에는 다른 방법을 사용 해 봅시다.
페이지를 들어갈때는 get 방식으로 요청하고
게시글을 등록할때는 post방식으로 요청하네요. 즉 post 방식으로 요청을 할 때만 저 코드를 실행한다면 ??
<?php include "../connect.php"; ?>
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$title = $_POST['title'];
$content = $_POST['content'];
$date = date("Y-m-d");
$sql = "Insert into board(title,content,createdate) values('$title','$content','$date')";
echo $sql;
echo "<br>";
$result = mysqli_query($conn,$sql);
if($result){
echo "<script>alert('board register success');</script>";
}
}
?>
REQUEST_METHOD로 요청 방식을 알 수 있습니다. POST로 요청했다면 저 코드를 실행시킵니다.
이렇게 한다면 땜빵식으로 제작 가능!
마지막으로 글을 쓰면 자동으로 조회쪽으로 이동하도록 location.href를 사용해서 list로 이동하게 수정하고요
echo "<script>alert('board register success');
location.href='list.php';</script>";
이제 직접 글을 써보고 게시판에서 조회를 해봅시다.
write를 누르면
이런식으로 게시판이 출력되구요
아주 잘 나오네요! GOOD!
'WEB > PHP' 카테고리의 다른 글
PHP - 게시판 제작 5 - 게시글 수정 (0) | 2023.05.07 |
---|---|
PHP - 게시판 제작 3 - 조회 페이지 제작 (0) | 2023.05.05 |
PHP - 게시판 제작 2 - 조회 페이지 제작 (0) | 2023.05.05 |