html을 조금 살펴 볼 필요가 있겠다.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

● form 요소

웹 페이지에서는 form 요소를 사용하여 사용자로부터 입력을 받을 수 있습니다.

또한, 사용자가 입력한 데이터를 서버로 보낼 때에도 form 요소를 사용합니다.

form 요소는 다음과 같은 문법으로 사용합니다.

<form action="처리할페이지주소" method="get|post"></form>

action 속성은 입력받은 데이터를 처리할 서버 상의 스크립트 파일의 주소를 명시합니다.

이렇게 전달받은 데이터를 처리하는 스크립트 파일을 폼 핸들러(form-handler)라고 합니다.

method 속성은 입력받은 데이터를 서버에 전달할 방식을 명시합니다.

따라서 사용자가 form 요소를 통해 입력한 데이터는 action 속성에 명시된 위치로 method 속성의 방식을 통해 전달됩니다.

● method 속성

method 속성을 통해 명시할 수 있는 form 요소의 전달 방식은 GET 방식과 POST 방식으로 나눠집니다.

GET 방식은 주소에 데이터(data)를 추가하여 전달하는 방식입니다.

데이터가 주소 입력창에 그대로 나타나며, 전송할 수 있는 데이터의 크기 또한 제한적입니다.

따라서 검색 엔진의 쿼리(query)와 같이 크기가 작고 중요도가 낮은 정보를 보낼 때 주로 사용합니다.

POST 방식은 데이터(data)를 별도로 첨부하여 전달하는 방식입니다.

데이터가 외부에 드러나지 않으며, 전송할 수 있는 데이터의 크기 또한 제한이 없습니다.

따라서 보안성 및 활용성이 GET 방식보다 좋습니다.

● input 요소

1. 텍스트 입력(text)

2. 비밀번호 입력(password)

3. 라디오 버튼(radio)

4. 체크박스(checkbox)

5. 파일 선택(file)

6. 선택 입력(select)

7. 문장 입력(textarea)

8. 버튼 입력(button)

9. 전송 버튼(submit)

10. 필드셋(fieldset)

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

아래와 같은 html 문서가 있다고 할 때 action 부분의 request.php로 method가 post이므로 정보를 보낸다라고 보면된다.

<html> <body> <form action="request.php" method="post"> 이름 : <input type="text" name="name"><br> 이메일 : <input type="text" name="email"><br> <input type="submit"> </form> </body> </html>

그럼 submit 버튼으로 보내어진 정보는 request.php로 가공할 수 있게 된다.

$name = $_POST["name"]; $email = $_POST["email"]; echo $name."님의 이메일 주소는 ".$email."입니다.";

이렇게 말이다.

이 때 html에서 php로 보낼 때는 get과 post로 데이터를 문자열로 담아 보낼 수 있다.

다만 get은 주소에 데이터를 실어서 보내므로 당연히 보안에 취약할 수 있게 되겠다.

예를 들면 vue로 영화사이트를 만들 때 영화 품번을 url로 담아서 보냈던 것처럼 말이다.


'PHP' 카테고리의 다른 글

php 쿠키  (0) 2019.09.12
php form검증  (0) 2019.09.12
php 제어문  (0) 2019.09.12
php 배열  (0) 2019.09.12
php 클래스  (0) 2019.09.12

+ Recent posts