게시판 - 글쓰기 Backend

이태현·2025년 8월 29일

Web 개발

목록 보기
33/53
post-thumbnail

게시판 Class - DB

  • 게시판 Class를 만들어서 게시판 관련 된 작업을 여기서 다룹니다.
<?php
// 게시판 클래스

class Board
{
  private $conn;

  public function __construct($db)
  {
    $this->conn = $db;
  }

  // 글 등록
  // bcode, id, name, subject, content, hit, ip, create_at
  // NOW() -> 현재 시간 / 년-월-일 시:분:초
  public function input($arr)
  {
    $sql = "INSERT INTO board(
    bcode, id, name, subject, content, ip, create_at) VALUES(
    :bcode, :id, :name, :subject, :content, :ip, NOW())";
    $stmt = $this->conn->prepare($sql);
    $stmt->bindParam(":bcode", $arr["bcode"]);
    $stmt->bindParam(":id", $arr["id"]);
    $stmt->bindParam(":name", $arr["name"]);
    $stmt->bindParam(":subject", $arr["subject"]);
    $stmt->bindParam(":content", $arr["content"]);
    $stmt->bindParam(":ip", $arr["ip"]);

    $stmt->execute();
  }
}

게시판 - 글 등록 Backend

  • 제목과 내용을 입력하여 어떻게 처리되는지 확인해 보겠습니다.

Payload

  • 현재 데이터는 이러한 상태로 보내집니다.

Response

  • 받은 데이터를 가지고 아래와 같은 응답을 받았습니다.

DB

  • 글 등록이 정상적으로 처리되면 DB에 데이터가 들어가지는 걸 확인해 볼 수 있습니다.
<?php

include "../inc/common.php"; // 세션
include "../inc/dbconfig.php"; // DB
include "../inc/board.php"; // 게시판 Class
include "../inc/member.php"; // 멤버 Class

$subject = (isset($_POST["subject"]) && $_POST["subject"] != "") ? $_POST["subject"] : "";
$content = (isset($_POST["content"]) && $_POST["content"] != "") ? $_POST["content"] : "";
$bcode = (isset($_POST["bcode"]) && $_POST["bcode"] != "") ? $_POST["bcode"] : "";
$mode = (isset($_POST["mode"]) && $_POST["mode"] != "") ? $_POST["mode"] : "";

if ($mode == "") {
  $arr = ["result" => "empty_mode"];
  die(json_encode($arr));
}

if ($bcode == "") {
  $arr = ["result" => "empty_bcode"];
  die(json_encode($arr));
}

$board = new Board($db);
$member = new Member($db);

if ($mode == "input") {
  // bcode, id, name, subject, content, ip
  if ($subject == "") {
    $arr = ["result" => "empty_subject"];
    die(json_encode($arr));
  }
  if ($content == "" || $content == "<p><br></p>") {
    $arr = ["result" => "empty_content"];
    die(json_encode($arr));
  }
  $memberArr = $member->getInfo($ss_id);
  $name = $memberArr["name"];
  $arr = [
    "bcode" => $bcode,
    "id" => $ss_id,
    "name" => $name,
    "subject" => $subject,
    "content" => $content,
    "ip" => $_SERVER["REMOTE_ADDR"]
  ];
  $board->input($arr);
  die(json_encode(["result" => "success"]));
}

Member Class - 회원정보 관리

  // 아이디 가져오기
  public function getInfo($id)
  {
    $sql = "SELECT * FROM member WHERE id=:id";
    $stmt = $this->conn->prepare($sql);
    $stmt->bindParam(":id", $id);
    $stmt->setFetchMode(PDO::FETCH_ASSOC);
    $stmt->execute();
    return $stmt->fetch();
  }

board_process.php

$member = new Member($db);
$name = $memberArr["name"];
  • Board Class를 가져온 이유는 해당 클래스에 id 값을 가지고 회원정보를 가져오는 부분이 있기 때문입니다. 그 값을 가지고 DB에서 조건에 맞는 회원을 가져와 글 등록을 해줄 겁니다.

마무리

다음 시간에는 썸머노트 웹에디터에서 넘어온 이미지를 저장을 해보겠습니다.

감사합니다.

profile
이해하고 분석하고 지배한다

0개의 댓글