PHP / $_GET, $_POST - 양식(form)으로 전송된 데이터 받기

GET과 POST

HTML의 form을 이용하여 값을 전송하는 방식은 get과 post 두 가지가 있습니다. PHP로 그 값을 받아서 사용하는 방법을 알아봅니다.

GET 방식으로 전송한 경우

  • 다음은 GET 방식으로 값을 전송하는 간단한 예제입니다.

form.php

<!doctype html>
<html lang="ko">
  <head>
  <meta charset="utf-8">
    <title>HTML</title>
    <style>
      * {
        font-size: 16px;
        font-family: Consolas, sans-serif;
      }
    </style>
  </head>
  <body>
    <form method="get" action="form-action.php">
      <p><label>Color : <input type="text" name="color"></label></p>
      <p><label>Sport : <input type="text" name="sport"></label></p>
      <p><input type="submit" value="Submit"></p>
    </form>
  </body>
</html>
  • 값을 입력하고 Submit 버튼을 클릭하면...

  • ?와 &를 이용하여 값을 전달합니다.

  • GET 방식으로 전송된 값은 $_GET으로 받습니다.

form-action.php

<?php
  $color = $_GET['color'];
  $sport = $_GET['sport'];
?>

<!doctype html>
<html lang="ko">
  <head>
  <meta charset="utf-8">
    <title>HTML</title>
    <style>
      * {
        font-size: 16px;
        font-family: Consolas, sans-serif;
      }
    </style>
  </head>
  <body>
    <p>Color is <?php echo $color ?>.</p>
    <p>Sport is <?php echo $sport ?>.</p>
  </body>
</html>

POST 방식으로 전송한 경우

  • 다음은 POST 방식으로 값을 전송하는 간단한 예제입니다.

form.php

<!doctype html>
<html lang="ko">
  <head>
  <meta charset="utf-8">
    <title>HTML</title>
    <style>
      * {
        font-size: 16px;
        font-family: Consolas, sans-serif;
      }
    </style>
  </head>
  <body>
    <form method="post" action="form-action.php">
      <p><label>Color : <input type="text" name="color"></label></p>
      <p><label>Sport : <input type="text" name="sport"></label></p>
      <p><input type="submit" value="Submit"></p>
    </form>
  </body>
</html>
  • POST 방식으로 값을 전달할 경우, URL에 아무 흔적이 남지 않습니다.
  • POST 방식으로 전송된 값은 $_POST으로 받습니다.

form-action.php

<?php
  $color = $_POST['color'];
  $sport = $_POST['sport'];
?>

<!doctype html>
<html lang="ko">
  <head>
  <meta charset="utf-8">
    <title>HTML</title>
    <style>
      * {
        font-size: 16px;
        font-family: Consolas, sans-serif;
      }
    </style>
  </head>
  <body>
    <p>Color is <?php echo $color ?>.</p>
    <p>Sport is <?php echo $sport ?>.</p>
  </body>
</html>

Related Posts

PHP / 반복문 / foreach

PHP / 반복문 / foreach

foreach foreach는 배열의 각 값에 대하여 반복 작업을 합니다. 문법 foreach ( array_expression as $value ) { statement; } foreach ( array_expression as $value ) : statement; endforeach; 예제 배열 jba의 각 값을 변수 jbv에 넣습니다. 변수 jbv를 두 배하고 1을 뺀 값을 변수 jbr에 넣습니다. 변수 jbr을 출력합니다. <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> ...

PHP / 함수 / var_dump() / 변수의 정보를 출력하는 함수

PHP / 함수 / var_dump() / 변수의 정보를 출력하는 함수

개요 var_dump는 변수의 정보를 출력하는 함수입니다. PHP 4 이상에서 사용할 수 있습니다. 문법 var_dump( $var1, $var2, ... ); 결과의 해석은 다음과 같습니다. int(1) : 정수이고, 값은 1입니다. float(1.1) : 실수이고, 값은 1.1입니다. string(5) "hello" : 5개의 문자로 이루어진 문자열이고, 값은 hello입니다. array(2) { => float(1.1) } : 2개의 값을 가진 배열이고, 첫번째 값은 정수 1, 두번째 값은 ...

PHP / 함수 / mysqli_connect() / MySQL server 또는 MariaDB Server에 연결하는 함수

PHP / 함수 / mysqli_connect() / MySQL server 또는 MariaDB Server에 연결하는 함수

개요 mysqli_connect는 MySQL server 또는 MariaDB Server에 연결하는 함수입니다. 문법 mysqli_connect( host, username, password, databasename, port, socket ); 예제 1 데이터베이스 서버에 연결하고 결과를 출력합니다. <?php $jb_connect = mysqli_connect( 'localhost', 'jb', '1234', 'employees' ); var_dump( $jb_connect ); ?> 연결에 성공한 경우입니다. 연결에 실패하면 false를 반환합니다. 예제 2 연결에 성공하면 Success, 실패하면 Failure를 출력합니다. <!doctype html> <html lang="ko"> <head> ...

PHP / 연산자 / 할당 연산자

PHP / 연산자 / 할당 연산자

PHP의 할당 연산자는 =입니다. 등호 오른쪽을 등호 왼쪽에 저장합니다.(같다를 표현할 때는 ==를 사용합니다.  비교 연산자를 참고하세요.) $a = 10; 변수 a에 10을 할당합니다. $a = 10; $a = 20; 여러 번 할당하면 마지막에 할당된 것이 값이 됩니다. 즉 변수 a의 값은 20입니다. $a = 10; $a = $a + 10; 기존 값을 사용할 수 있습니다. 변수 a의 값은 ...

PHP / 함수 / 날짜, 시간 / date(), localtime(), mktime(), time()

PHP / 함수 / 날짜, 시간 / date(), localtime(), mktime(), time()

date() 개요 Timestamp를 원하는 형식으로 출력하는 함수입니다. 문법 date( format, timestamp ) format : 필수 항목입니다. 출력할 형식을 정합니다. timestamp : 선택 항목입니다. 값이 없으면 현재 timestamp를 사용합니다. 예제 <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>PHP</title> <style> body { ...

PHP / 반복문 / while, do-while, for

PHP / 반복문 / while, do-while, for

while 문법 while ( condition ) {   statement; } condition을 만족할 때까지 중괄호 안에 있는 statement를 실행합니다. 중괄호 대신 콜론(:)과 endwhile을 사용할 수도 있습니다. while ( condition ) :   statement; endwhile; 예제 <?php   $i = 1; // 초기값 설정   while ( $i < 10 ) ...

PHP / 함수 / implode() / 배열을 하나의 문자열로 만드는 함수

PHP / 함수 / implode() / 배열을 하나의 문자열로 만드는 함수

개요 implode()는 배열에 속한 문자열을 하나의 문자열로 만드는 함수입니다. PHP 4 이상에서 사용할 수 있습니다. 문법 implode ( glue, pieces ) glue : 배열의 원소 사이에 들어갈 문자열입니다. pieces : 배열입니다. $jbary = array( 'one', 'two', 'three' ); $jbstr = implode( '/', $jbary ); 원소 사이에 /을 넣어 하나의 문자열로 만듭니다. 즉 $jbstr은 one/two/three입니다. 예제 <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>PHP</title> <style> body { font-family: ...

PHP / Session / 로그인, 로그아웃, 로그인 상태에서만 보이는 콘텐츠 만들기

PHP / Session / 로그인, 로그아웃, 로그인 상태에서만 보이는 콘텐츠 만들기

PHP의 세션을 이용하여 로그인, 로그아웃을 만들 수 있습니다. 그리고 로그인한 사용자만 볼 수 있는 콘텐츠를 만들 수도 있습니다. 다음은 이를 구현한 아주 간단한 예제입니다. inc_head.php 모든 페이지에 들어갈 코드입니다. include 함수로 각 페이지에서 불러올 것입니다. 세션의 username 값이 있다면, 즉 로그인 상태라면 $jb_login에 TRUE를 할당합니다. <?php session_start(); if( isset( $_SESSION ...

PHP / MariaDB / 데이터베이스에서 데이터 삭제하기

PHP / MariaDB / 데이터베이스에서 데이터 삭제하기

이 강좌에서 사용하는 데이터베이스는 employees입니다. (employees 설치 하기) 직원 추가 데이터베이스에 데이터 입력하기 강좌에 있는 방식으로 직원을 추가합니다. 연봉, 직책 등이 연결된 기존 직원을 삭제하면 문제가 생길 수 있으므로, 새로 직원을 추가한 후 그 직원을 삭제합니다. 직원 삭제하기 - employees.php 직원 정보를 출력하는 페이지에 직원을 삭제하는 기능을 추가해보겠습니다. Delete 버튼을 클릭하면 바로 삭제되고 페이지가 다시 ...

PHP / Ubuntu / Apache / HTML 확장자에도 PHP 코드 인식되도록 설정하는 방법

PHP / Ubuntu / Apache / HTML 확장자에도 PHP 코드 인식되도록 설정하는 방법

Ubuntu에 Apache로 웹서버를 만들고 PHP를 사용할 수 있게 만든 경우, 기본적으로 확장자가 php인 경우에만 PHP 코드를 인식합니다. 만약 확장자가 html일 때로 PHP 코드가 인식되도록 하고 싶다면, Apache 설정을 바꿔줘야 합니다. /etc/apache2/mods-enabled/mime.conf 파일을 엽니다. 다음 코드를 추가합니다. AddType application/x-httpd-php .html 확장자가 htm인 경우에도 PHP를 인식하도록 하고 싶다면 다음처럼 합니다. AddType application/x-httpd-php .html .htm 웹서버를 다시 로드합니다. service apache2 ...

PHP 강좌