저번에 이어서 이번에는 사용자가 DB에 글을 작성해 올리는 법을 다뤄보자.
지난 내용들은 아래 포스팅을 참고하자.
https://onejin-log.tistory.com/36
Fedora DB연동 사이트 만들기
DB가 연동된 사이트를 만들어보자 하기전에 지난번 포스트를 보고 미리 세팅해주자! https://onejin-log.tistory.com/31 Fedora에서 mariaDB 설치하고 사용해보기 Fedora에서 mariaDB를 사용해보자 만약 설정을 다
onejin-log.tistory.com
글 작성할 수 있는 페이지를 만들어보자.
터미널을 열고 현재 위치를 이동하자
cd /var/www/html
vi write.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="write.php" method="post">
제목 : <input type="text" name="title"> <br>
<textarea name="content"></textarea> <br>
<input type="submit" value="등록">
</form>
</body>
</html>
로그인 성공한 후 페이지 board.php에서 편하게 이동할 수 있도록 맨아래에 <a태그>를 추가해주자.
...
<a href="./write.html">Write New Blog!</a>
로그인을 성공하면 게시글 테이블이 보이게 되는데,
이때 로그인 성공한 유저의 아이디 값을 session을 통해 (클라이언트쪽)여기저기 코드파일에서 유저의 아이디 값 참조를 할 수 있게된다.
(전역변수 같은 느낌)
LoginBackEnd.php에 다음 노란줄(session)을 추가해주자.
<?php
include "dbconn.php";
session_start();
$uname = $_POST['uname']; //index.php의 <form> 태그를 통해 넘어옴, name 속성을 참조함
$psw = $_POST['psw'];
//result SQL 쿼리 결과를 저장
$result = mysqli_query($conn, "select * from tbLogin where userId = '$uname' and password = '$psw'");
if($result -> num_rows > 0){ //num_rows 반환된 행의 갯수 속성
//echo "Login OK";
$row = mysqli_fetch_assoc($result);
$_SESSION["uname"] = $row['userId']; //로그인 성공시 session에 result에 담긴 DB의 userId 필드값 삽입
header("Location: http://localhost/board.php"); //redirection
}
else
echo "Login Fail";
?>
이제 사용자가 글을 작성하면 그 값을 데이터베이스에 넘겨주자.
write.html에서 '등록' 버튼을 누르면 작동하는 php파일을 작성하자.
vi write.php
<?php
include "dbconn.php";
session_start();
if(isset($_SESSION["uname"]))
{
$title = $_POST['title'];
$content = $_POST['content'];
$tbUserID = $_SESSION['uname'];
$writer = $_SESSION['uname'];
$sql = "insert into tbBlog (tbUserID, title, content, writer) values ('$tbUserID', '$title', '$content', '$writer')";
mysqli_query($conn, $sql);
mysqli_close($conn);
}
?>
vi logout.php
session_start();
unset($_SESSION["uname"]);
기타)
board.php에
echo "<p>Current User ID: " . $_SESSION["uname"] . "</p>";
를 추가해 보기 좋게 해주자
"""
세션은 떨어져있는 웹을 하나처럼만들어준다.
로그인했을때 로그인페이지에다가 세션변수등록을 해준다.
로그아웃시에는 해제해주고
로그인 백엔드에서 세션시작 변수등록
"""
winmerge-깃 동기화 꼬였을때 시각적으로 해결하기 쉽게 해줌
'Fedora + DB' 카테고리의 다른 글
Fedora DB 게시글 보기 (0) | 2023.12.18 |
---|---|
Fedora DB연동 사이트 만들기 (1) | 2023.10.31 |
Fedora에서 mariaDB 설치하고 사용해보기 (0) | 2023.10.16 |
페도라 아파치 (0) | 2023.08.29 |