본문 바로가기

BackEnd/PHP

PHP에서의 입력과 출력, 그리고 폼

728x90
반응형

웹 프로그래밍에서 페이지와 페이지 간의 통신은 링크 방식과 form 방식을 통해서 데이터 전송이 이루어집니다. 

데이터 전송이 이루어지는 과정

일반적으로 사용을 많이 하는 회원가입, 게시판 글쓰기 등의 기능은 form을 통해서 데이터 통신을 합니다.

 

예를 들어 다음과 같은 HTML Form 태그가 있습니다.

form 태그의 기본 구조

HTML에서의 form 태그는 위 사진 처럼 작성합니다. 

form 태그는 두가지 방식을 이용하여 서버에 요청을 합니다. 

  1. POST 방식
  2. GET 방식

두 방식 모두 form 태그 안에 있는 input, textarea, select 태그와 함께 사용 할수 있는 HTML 요소들을 브라우저에서 서버로 정보를 저장합니다. 

다만 차이점이 있다면 GET 방식은 정보가 URL에 전송이 되고 POST는 HTTP의 body로 정보가 전송됩니다. 

이외에는 동일합니다. 

웹 페이지에서의 전송

예를 들어 다음 항목에 정보를 입력하고 전송을 누르게 되면 

GET으로 전달한 경우의 결과

GET 방식은 URL에 정보가 표시됩니다. POST는 표시가 되지 않습니다.

입력한 정보가 잘 전달 되었는지 그리고 요청이 잘 이루어졌는지 확인하는 방법으로 개발자 도구에서 확인 합니다.

F12 - 네트워크 - header 항목을 보게되면 다음과 같은 헤더의 내용을 볼 수 있습니다. 

네트워크 - header의 내용

위의 내용 중에서 중요한 부분이라면 HTTP 상태 코드입니다. 

상태 코드는 여러 코드가 있으며 코드마다 부여하는 HTTP 상태가 다릅니다. 

HTTP 상태 코드에 대해서는 아래 링크를 참고 하시면 됩니다.

https://developer.mozilla.org/ko/docs/Web/HTTP/Status

 

HTTP 상태 코드 - HTTP | MDN

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고

developer.mozilla.org

간단히 정리하면 test6.php 페이지에서 POST 방식으로 요청하였고 그 결과 정상적으로 요청됨을 확인 할 수 있습니다.

그렇다면 입력한 양식의 정보가 잘 들어왔는지 확인하는 방법으로는 payload 탭에서 확인합니다.

payload에서 데이터 확인하기

확인 결과 데이터가 잘들어왔음을 확인 할 수 있습니다.

이제 HTML의 Form 태그에 PHP의 글로벌 변수를 사용하여 GET과 POST를 하는 방법에 대해 알아봅시다.

PHP + Form 태그 조합

앞서 작성했던 test6.php를 복사하여 test6_result.php로 이름을 바꿔줍니다. 

test6의 Form 태그 안에는 이메일 항목을 추가해줍니다.

result의 내용에는 위 사진과 같이 작성을 합니다. 

저장을 한 뒤 결과를 확인해보면

 

글로벌 변수 $_GET을 사용

글로벌 변수 $_GET을 사용하여 Form의 결과를 보면 URL에는 key와 value가 함께 전달되어 브라우저에서 확인 할 수 있습니다. 

글로벌 변수 $_POST를 사용

POST 방식은 $_GET을 POST로 변경하여 사용하면 됩니다. 

POST의 경우 보여지지 않기 때문에 payload에서 확인 할 수 있습니다.

(GET의 경우도 확인 할 수 있습니다.)

728x90
반응형

'BackEnd > PHP' 카테고리의 다른 글

PHP의 변수와 상수  (0) 2021.12.02
PHP 설치하기(bitnami를 사용하기)  (0) 2021.10.01
PHP의 시작  (0) 2021.09.30