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

C-log

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

DB/๐Ÿ˜PHP

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

4:Bee 2023. 9. 7. 00:40
728x90

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

form.html

<!DOCTYPE html>
<html>

<body>
  <form action="./form.php" method="get">
    <p><input type=" text" name="title" placeholder="Title"></p>
    <p><textarea name="description"></textarea><br></p>
    <p><input type="submit"></p>
  </form>
</body>

</html>

์œ„์˜ ์ฝ”๋“œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋งŽ์ด ์ ‘ํ•ด๋ณธ html์ฝ”๋“œ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๊ฐ€ ์ฃผ์˜ ๊นŠ๊ฒŒ ๋ด์•ผํ•  ํƒœ๊ทธ๋Š” formํƒœ๊ทธ๋กœ formํƒœ๊ทธ๋Š” input ํƒœ๊ทธ๋ฅผ ๊ฐ์‹ธ๊ณ  ์žˆ์œผ๋ฉฐ formํƒœ๊ทธ์˜ ์†์„ฑ์ธ action๊ณผ method ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ฒ˜์Œ html์„ ์ ‘ํ•  ๋•Œ ํฌ๊ฒŒ ๋‹ค๋ฃจ์ง€ ์•Š์•˜์•˜๊ฑฐ๋‚˜ ๊ฐ€๋ณ๊ฒŒ ๋„˜์–ด ๊ฐ”์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” php์™€ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํƒœ๊ทธ์ด๋‹ค. ์šฐ์„  actionํƒœ๊ทธ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ  ์žˆ๋“ฏ์ด ํ•ด๋‹น ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋Š” ์˜๋ฏธ์ด๋‹ค. ํ•œ ๋ฒˆ์ฏค ์‘์šฉํ•ด์„œ ์‚ฌ์šฉํ•ด๋ณธ์  ์žˆ์„ ๊ฒƒ์ด๋‹ค. method๋Š” ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด์„œ ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.(์ฐธ๊ณ ๋กœ ์—ฌ๊ธฐ์„œ html์€ Live Server๋ฅผ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ 127.0.01:PortNumber/~๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค.)

form.php

 
echo "<p>title : " . $_GET['title'] . "</p>";
echo "<p>description : " . $_GET['description'] . "</p>";
 

์ด์ œ ์šฐ๋ฆฌ๋Š” phpํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์šฐ๋ฆฌ๊ฐ€ ์•ž์„œ ๋ฐฐ์› ๋˜ ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” GET์„ ์ด์šฉ ํ•  ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ GET์•ˆ์— ์žˆ๋Š” ๋ฌธ์ž๋Š” ํ•ด๋‹น formํƒœ๊ทธ์˜ name์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ $_GET['title']์€ input์˜ ์†์„ฑ name์ธ 'title'์„ ๊ฐ€์ง€๊ณ  ์˜ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜ ์ด๋ฏธ์ง€๋ฅผ ํ†ตํ•ด์„œ ํ™•์ธํ•˜์ž.

์›น์˜ ํ”„๋ก ํŠธ๋กœ ๋‚˜์˜ค๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์•„๋‹Œ ์ฃผ์†Œ๋ฅผ ์ฃผ์˜ ๊นŠ๊ฒŒ ๋ด์•ผํ•œ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์œ„์˜ php์ฝ”๋“œ์—์„œ GET์„ ํ†ตํ•ด์„œ ๊ฐ€์ ธ์˜จ ๊ฐ’๋“ค์ด ์ฃผ์†Œ์— ๋ฐ˜์˜์ด ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ์ด ์ฃผ์†Œ์ธ URL์„ ๊ณต์œ ํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ง์ž‘ํ•ด๋ณผ ์ˆ˜ ์žˆ๋””. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์œ„์˜ ์ฃผ์†Œ์ฐฝ์ธ title์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์›น ํ”„๋ก ํŠธ์—์„œ๋„ ๋ฐ˜์˜์ด ๋  ๊ฒƒ์ด๋‹ค.

์ด์ „ ํŽ˜์ด์ง€์—์„œ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ์˜ค๋กœ์ง€ ์ฃผ์†Œ์ฐฝ์—์„œ ๋ณ€๊ฒฝํ•œ ๊ฒƒ์ด๋‹ค.

์ด๋ฅผ ํ†ตํ•ด์„œ ์šฐ๋ฆฌ๋Š” ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋ณด์•ˆ์— ๊ต‰์žฅํžˆ ์ทจ์•ฝํ•ด์งˆ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค๋Š” ๊ฒƒ์„ ๋ง์ด๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์•ž์„œ ๋ณด์•˜๋˜ html์ฝ”๋“œ์—์„œ formํƒœ๊ทธ์˜ method๋ฅผ ์ฃผ์˜ ๊นŠ๊ฒŒ ๋ณด์•„์•ผ ํ–ˆ๋˜ ๊ฑฐ์ด๋‹ค. ์ง€๊ธˆ์€ ์šฐ๋ฆฌ๊ฐ€ GET์œผ๋กœ ์„ค์ • ๋˜์–ด ์žˆ์ง€๋งŒ (๊ธฐ๋ณธ ๋””ํดํŠธ๋กœ GET์„ ์ถ”๊ตฌํ•œ๋‹ค.) ์ด๊ฒƒ์„ ์šฐ๋ฆฌ๊ฐ€ POST๋กœ ๋ณ€๊ฒฝํ•˜๊ฒŒ๋˜๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ํ™•์ธํ•ด ๋ณด์ž.

์šฐ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ ๊ฐ’๋“ค์ด ์ฃผ์†Œ์—๋Š” ๋ณด์ด์ง€ ์•Š๊ณ  ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์˜ NetWork์˜ Form Data์—์„œ ๊ฐ’์ด ์ ์šฉ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์šฐ๋ฆฌ๋Š” ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ์†Œ์ฐฝ์œผ๋กœ๋ถ€ํ„ฐ ์€๋‹‰ํ•ด์„œ ์›น ๋’ค์—์„œ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ฒƒ์ด๋‹ค. ๋” ๋‚˜์•„๊ฐ€์„œ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ Createํ•˜๋Š” ํ•จ์ˆ˜๊นŒ์ง€ ๊ตฌํ˜„ํ•ด์ฃผ๋ฉด CRUD์˜ Create๋ฅผ ๊ตฌํ˜„ ํ•  ์ˆ˜ ์žˆ๋Š” ์ค€๋น„๋ฅผ ๋งˆ์น˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด์„œ ํ™•์ธํ•ด ๋ณด์ž.

 
<?php
file_put_contents('data/' . $_POST['title'], $_POST['description']);
 

์›น์—์„œ ๊ฐ’์„ ์ž…๋ ฅํ•˜๊ณ  ํ•ด๋‹น phpํŒŒ์ผ๋กœ ์ด๋™ํ•˜๋ฉด์„œ ํ•จ์ˆ˜์— ์ง€์ •ํ•œ dataํŒŒ์ผ์— ์ž…๋ ฅํ•œ ๊ฐ’์˜ ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ”„๋ก ํŠธ๋ฅผ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์„ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •๊นŒ์ง€ ํ™•์ธํ•ด ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

728x90
Comments