Fedora + DB

Fedora DB에 글작성하기

OnejinSim 2023. 11. 7. 21:41

저번에 이어서 이번에는 사용자가 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