๊ด€๋ฆฌ ๋ฉ”๋‰ด

C-log

๐Ÿ˜์›น์‚ฌ์ดํŠธ์˜ ๋น„ํ•˜์ธ๋“œ PHP : Create ๋ณธ๋ฌธ

DB/๐Ÿ˜PHP

๐Ÿ˜์›น์‚ฌ์ดํŠธ์˜ ๋น„ํ•˜์ธ๋“œ PHP : Create

4:Bee 2023. 9. 7. 21:35
728x90

์•ž์„œ์„œ ์šฐ๋ฆฌ๋Š” Create๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด POST์— ๊ด€ํ•ด์„œ ๋ฐฐ์› ๋‹ค. ์ด์ „ ๊ฐ•์˜๋ฅผ ๋ณด๊ธฐ ์œ„ํ•ด์„  ์•„๋ž˜ ๋งํฌ๋ฅผ ํ†ตํ•ด์„œ ๋จผ์ € ํ•™์Šตํ•˜๊ณ  ๋ณด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. 

 

๐Ÿ˜์›น์‚ฌ์ดํŠธ์˜ ๋น„ํ•˜์ธ๋“œ PHP : POST

์šฐ๋ฆฌ๋Š” ์ด์ œ CRUD๋ฅผ php๋กœ ๊ตฌ์„ฑํ•ด๋ณผ ๊ฒƒ์ด๋‹ค. Create๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๊ธฐ ์ „์— ์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” POST๋ฅผ ๋‹ค๋ฃฐ ๊ฒƒ์ด๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ์—์„œ ์šฐ๋ฆฌ๊ฐ€ ์ฃผ์˜ ๊นŠ๊ฒŒ ๋ณด์•„์•ผํ•˜๋Š” ๊ฒƒ์€ $_GET['']์ฝ”๋“œ์ด๋‹ค. ์šฐ์„  ์‹ค์Šต์„ ํ•˜๊ธฐ์œ„ํ•ด

hi-code.tistory.com

์šฐ๋ฆฌ๊ฐ€ ์—ฌ๊ธฐ์„œ ์‚ฌ์šฉํ•ด์•ผํ•  ์ฝ”๋“œ๋Š” ์ง€๋‚œ๋ฒˆ์— ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ๋งŒ๋“ค์—ˆ๋˜ WEB ๋ฆฌ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ํ™œ์šฉํ•ด์„œ Create๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹์„ ๊ตฌํ˜„ํ•ด๋ณผ ๊ฒƒ์ด๋‹ค. ํ˜น์‹œ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ WEB๋ฆฌ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ์—†๋‹ค๋ฉด ์•„๋ž˜ ๋งํฌ๋ฅผ ํ†ตํ•ด ํ•™์Šตํ•ด๋ณด๋ฉด ์ข‹์„ ๋“ฏํ•˜๋‹ค.

 

๐Ÿ˜์›น์‚ฌ์ดํŠธ์˜ ๋น„ํ•˜์ธ๋“œ PHP : ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ

YouTube Link EB2-PHP-18-แ„’แ…กแ†ทแ„‰แ…ฎ แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต แ„‹แ…จแ„€แ…ฉphp https://youtu.be/XAVYo8uLlWM?si=3HttPRLe-TMgHK7x YouTube Link WEB2-PHP-19.1.แ„’แ…กแ†ทแ„‰แ…ฎแ„‹แ…ด แ„’แ…งแ†ผแ„‰แ…ตแ†จ 1/3 https://youtu.be/gfCyAy_kE7M?si=d6R5KCZohxQLs_C- YouTu

hi-code.tistory.com

index.php

<?php
function print_title()
{
  if (isset($_GET['id'])) {
    echo $_GET['id'];
  } else {
    echo "Welcome";
  }
}

function print_description()
{
  if (isset($_GET['id'])) {
    echo file_get_contents("data/" . $_GET['id']);
  } else {
    echo "Hello, PHP";
  }
}

function print_list()
{
  $list = scandir('data'); // ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ํŒŒ์ผ์„ list๋ผ๋Š” ๋ณ€์ˆ˜ ์•ˆ์— ๋‹ด์•„ ๋‘”๋‹ค.
  $i = 0;

  while ($i < count($list)) {

    //count ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ํ•ด๋‹น list์˜ leng๊ธธ์ด๋ฅผ
    if ($list[$i] != '.') {
      if ($list[$i] != '..') {
?>
        <li><a href="index.php?id=<?= $list[$i] ?>"><?= $list[$i] ?></a></li>
<?php
      }
    }
    $i = $i + 1;
  }
}

?>
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>
    <?php
    print_title();
    ?>
  </title>
</head>

<body>
  <h1><a href="index.php">WEB</a></h1>
  <ol>
    <?php
    print_list();
    ?>
  </ol>
  <a href="create.php">create</a>
  <h2>
    <?php
    print_title();
    ?>
  </h2>
  <?php
  print_description();
  ?>
</body>

</html>

์ด ์ฝ”๋“œ์—์„œ ์šฐ๋ฆฌ๋Š” aํƒœ๊ทธ๋ฅผ ์ด์šฉํ•ด์„œ create.phpํŒŒ์ผ๋กœ ์ด๋™์„ ํ•  ๊ฒƒ์ด๋‹ค. ์ด๋™์„ ํ•˜๊ฒŒ๋˜๋ฉด phpํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด ๋†“์€ inputํƒœ๊ทธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ณด์ž

create.php

<?php
function print_title()
{
  if (isset($_GET['id'])) {
    echo $_GET['id'];
  } else {
    echo "Welcome";
  }
}

function print_description()
{
  if (isset($_GET['id'])) {
    echo file_get_contents("data/" . $_GET['id']);
  } else {
    echo "Hello, PHP";
  }
  // if ($_GET['id'] == ''){
  //   echo "NULL"
  // }
}

function print_list()
{
  $list = scandir('data'); // ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ํŒŒ์ผ์„ list๋ผ๋Š” ๋ณ€์ˆ˜ ์•ˆ์— ๋‹ด์•„ ๋‘”๋‹ค.
  $i = 0;

  while ($i < count($list)) {

    //count ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ํ•ด๋‹น list์˜ leng๊ธธ์ด๋ฅผ
    if ($list[$i] != '.') {
      if ($list[$i] != '..') {
?>
        <li><a href="index.php?id=<?= $list[$i] ?>"><?= $list[$i] ?></a></li>
<?php
      }
    }
    $i = $i + 1;
  }
}

?>
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>
    <?php
    print_title();
    ?>
  </title>
</head>

<body>
  <h1><a href="index.php">WEB</a></h1>
  <ol>
    <?php
    print_list();
    ?>
  </ol>
  <form action="create_process.php" method="post">
    <p>
      <input type="text" name="title" placeholder="Title">
    </p>
    <p>
      <textarea name="description" placeholder="Description"></textarea>
    </p>
    <p>
      <input type="submit">
    </p>
  </form>
  <h2>
    <?php
    print_title();
    ?>
  </h2>
  <?php
  print_description();
  ?>
</body>

</html>

์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์œผ๋ฉด ์ด์ „ index.php์ฝ”๋“œ์™€ ๋‹ฌ๋ฆฌ formํƒœ๊ทธ๊ฐ€ ์ถ”๊ฐ€๋˜์–ด submit์„ ํ•˜๊ฒŒ๋˜๋ฉด create_process.phpํŒŒ์ผ ๊ฒฝ๋กœ๋กœ ์ด๋™์„ํ•จ๊ณผ ๋™์‹œ์— ๋ฐ์ดํ„ฐ์™€ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ๋ฌผ๋ก  POST๋กœ ์ ‘๊ทผํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์œ ๋…ํ•ด์„œ ๋ณด๋ฉด ์ข‹์„ ๋“ฏํ•˜๋‹ค.

WEB๋ฆฌ์ŠคํŠธ ํŽ˜์ด์ง€์™€ createํŽ˜์ด์ง€์ด๋‹ค. ์ฃผ์†Œ๋ฅผ ์œ ์˜ํ•ด์„œ ๋ณด๋ฉด ์—„์—ฐํžˆ ๋‘˜์€ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

create_process.php

<?php
file_put_contents('data/' . $_POST['title'], $_POST['description']);
header('Location: index.php?id=' . $_POST['title']);

์œ„์˜ ์ด๋ฏธ์ง€์—์„œ ์ œ์ถœ์„ ๋ˆ„๋ฅด๋ฉด create_process.phpํŒŒ์ผ๋กœ ๋„˜์–ด๊ฐ€์ง€๋งŒ headerํ•จ์ˆ˜๋กœ ์ธํ•ด ๋น„์–ด์žˆ๋Š” ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ€์ง€ ์•Š๊ณ  ๋ฐ”๋กœ index.php๋กœ ์ „ํ™˜๋œ๋‹ค. ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด headrํ•จ์ˆ˜๋ฅผ ์ง€์šฐ๊ฑฐ๋‚˜ ์ฃผ์„์ฒ˜๋ฆฌํ•ด์„œ ์‹คํ–‰๋ณด๋ฉด ๋น„์–ด ์žˆ๋Š” ํŽ˜์ด์ง€๊ฐ€ ๋ฌด์Šจ ๋ง์ธ์ง€ ์ดํ•ด ํ•  ๊ฒƒ์ด๋‹ค.

๊ฐ•์˜๋ฅผ ๋‹ค ๋“ฃ๊ณ  ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์€ ๋ถ€๋ถ„์ด ๊ฐœ์ธ์ ์œผ๋กœ ์žˆ์—ˆ๋‹ค. ์ œ๋ชฉ๊ณผ ๋‚ด์šฉ์„ ๋น„์–ด ์žˆ๋Š” ์ƒํƒœ์—์„œ ์ œ์ถœ์„ ํ•˜๊ฒŒ ๋˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฑธ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ œ๋ชฉ๊ณผ ๋‚ด์šฉ์„ ๋‘˜๋‹ค ๊ธฐ์ž…ํ•˜์ง€ ์•Š๊ณ  ์ œ์ถœ ํ–ˆ์„ ๊ฒฝ์šฐ '๋น„์–ด ์žˆ๋‹ค.'๋ผ๋Š” ๋ฉ”์„ธ์ง€๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ์ด๋ฅผ ํ™•์ธ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น index.php์˜ print_descriptionํ•จ์ˆ˜๋ฅผ ์ˆ˜์ •ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ณด์ž.

function print_description()
{
  if (isset($_GET['id']) && !$_GET['id'] == '') {
    echo file_get_contents("data/" . $_GET['id']);
  } else if (isset($_GET['id']) && $_GET['id'] == '') {
    echo "Empty description. Retry!";
  } else {
    echo "Hello, PHP";
  }
}

if๋ฌธ์— ์˜ค๋กœ์ง€ isset($_GET['id'])๋งŒ ์กฐ๊ฑด์œผ๋กœ ๋‘์—ˆ์„ ๋•Œ ๊ฐ€์ ธ ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค. ๊ทธ๋ž˜์„œ $_GET['id']์˜ ๊ฐ’์ด ์•„๋ฌด๊ฒƒ๋„ ์—†์ง€ ์•Š์„ ๋•Œ๋ผ๋Š” ์กฐ๊ฑด์„ ๋งŒ๋“ค์–ด์ฃผ๊ณ  else if์—์„œ๋Š” $_GET['id']๊ฐ€ ๋ณ€์ˆ˜๊ฐ€ (์ฃผ์†Œ์ฐฝ์—)์กด์žฌํ•˜๋ฉด์„œ $_GET['id']์˜ ๊ฐ’์ด ๋น„์–ด ์žˆ์„ ๋•Œ๋ผ๋Š” ์กฐ๊ฑด์„ ๋งŒ๋“ค์–ด์ฃผ๋ฉด ํ•ด๋‹น ๋ฉ”์„ธ์ง€๊ฐ€ echo๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

 

์ด๋ ‡๊ฒŒ ์šฐ๋ฆฌ๋Š” CRUD์˜ Create๋ฅผ php๋ฅผ ํ†ตํ•ด์„œ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ฐฐ์› ๋‹ค. ๋‹ค์Œ์€ CRUD์˜ Read๋ถ€๋ถ„์„ ๋ฐฐ์›Œ ๋ณผ ๊ฒƒ์ด๋‹ค.

728x90
Comments