댓글 목록

PHP 폼 처리

페이지 정보

작성자 운영자 작성일 18-03-12 23:02 조회 1,967 댓글 0

동영상 강좌는 유튜브 채널 '웹학교'를 이용하시기 바랍니다.

PHP 슈퍼 전역(Superglobals) $_GET와 $_POST는 양식 데이터를 수집하는데 사용됩니다.


PHP - 간단한 HTML 양식(Form)


아래 예는 두 개의 입력 필드와 제출 버튼이 있는 간단한 HTML양식 문서입니다.

<html>
<body>

<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>

사용자가 위의 양식을 채우고 제출 버튼을 클릭하면 처리를 위해 양식 데이터가 "welcome.php" php파일로 전송됩니다. 양식 데이터는 HTTP POST메소드와 함께 전송됩니다.


제출된 데이터를 화면에 표시하려면 모든 변수에 echo문을 사용하면 됩니다.

"welcome.php"는 다음과 같이 보입니다.


<html>

<body>

<?php echo $_POST["name"]; ?>님, 반갑습니다.<br>

귀하의 email: <?php echo $_POST["email"]; ?>

</body>

</html>


출력 내용 :

홍길동님, 반갑습니다.

귀하의 email : text@example.com


HTTP GET메소드를 사용하여 동일한 결과를 얻을 수도 있습니다.

<html>
<body>

<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>

welcome_get.php 코드는 아래와 같습니다.


<html>

<body>

<?php echo $_GET["name"]; ?>님, 반갑습니다.<br>

귀하의 email: <?php echo $_GET["email"]; ?>

</body>

</html>


위의 코드는 간단하지만 가장 중요한 것은 빠졌습니다. 스크립트를 악성코드로부터 보호하려면 양식 데이터의 유효성을 검사해야 합니다.


PHP양식을 처리할 때는 보안에 신경을 써야 합니다.

이 페이지에는 양식 유효성 검사가 포함되어 있지 않으며 단지 양식 데이터를 보내고 가져오는 방법만을 보여줍니다. 

그러나 다음 페이지에서는 보안을 염두에 두고 PHP양식을 처리하는 방법을 보여줍니다. 해커 및 스팸 발송자로부터 양식을 보호하려면 양식 데이터의 올바른 확인이 중요합니다. 


GET vs POST

GET과 POST는 모두 배열을 만듭니다.(예: array (key => value, key2 => value2, key3 => value3, ...))

이 배열에는 키/값 쌍이 있으며 키는 양식 컨트롤의 이름이고 값은 사용자의 입력 데이터입니다.


GET 과 POST는 모두 $_GET과 $_POST로 처리됩니다. 이것은 슈퍼전역(Superglobals)이므로 범위에 관계없이 항상 접근할 수 있으며, 특별한 작업을 하지 않고도 함수, 클래스 또는 파일에서 접근할 수 있습니다.


$_GET은 URL매개변수를 통해 현재 스크립트에 전달된 변수의 배열입니다.

$_POST는 HTTP POST메소드를 통해 현재 스크립트에 전달된 변수의 배열입니다.


GET은 언제 사용할까요?

GET메소드로 양식에서 보낸 정보는 모든 사용자에게 표시됩니다.(모든 변수이름과 값은 URL에 표시됨)

또한, GET은 전송할 정보의 양에 제한이 있습니다. 제한은 약 2000자입니다. 그러나 변수가 URL에 표시되기 때문에 페이지를 책갈피에 추가할 수 있습니다. 이것은 때로 유용할 수 있습니다.


GET은 중요하지 않은 데이터를 보내는데 사용될 수 있습니다.


** 암호 또는 다른 중요한 정보를 보내는데 GET을 사용해서는 안됩니다!


POST는 언제 사용할까요?

POST메소드를 사용하여 양식에서 보낸 정보는 다른 사람들에게는 보이지 않으며(모든 이름/값은 HTTP요청의 본문에 포함됩니다) 보내려는 정보의 양에 제한이 없습니다.

또한, POST는 서버에 파일을 업로드하는 동안 multi-part바이너리 입력과 같은 더 고급 기능을 지원합니다.


그러나 변수가 URL에 표시되지 않으므로 페이지를 북마크에 추가할 수 없습니다.


그누보드/영카트


/adm/auth_list.php

/adm/board_copy.php

/adm/board_form.php

...


/bbs/alert.php

/bbs/move.php

/bbs/register_email.php

/bbs/register_form_update.php

/bbs/head.php


/theme/basic/skin/....



댓글목록 0

등록된 댓글이 없습니다.