ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [PHP] 17. Form Handling - PHP 강좌, PHP5
    Web/PHP 2015. 6. 13. 13:48

     

    PHP 5 Form Handling

     PHP Superglobal $_GET과 $_POST는 서식 데이터를 수집하는데 사용됩니다.





    1. PHP - A Simple HTML Form

     아래 예제는 두 개의 입력 필드와 전송 버튼을 가진 간단한 HTML 서식 예제입니다.




    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <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>
    cs

     



     위의 서식을 채우고 전송 버튼을 클릭할 때, 서식 데이터는 "welcome.php"라는 이름의 PHP 파일에 처리되기 위해 보내집니다.

     서식 데이터는 HTML POST 메소드 방식으로 보내집니다.


     아래는 welcome.php 를 나타냅니다.



     

    1
    2
    3
    4
    5
    6
    7
    8
    <html>
    <body>
     
    Welcome <?php echo $_POST["name"];?><br>
    Your email address is: <?php echo $_POST["email"];?>
     
    </body>
    </html>
    cs

     


     







     아래 예제는 POST방식이 아닌 GET 방식으로 작성된 예제입니다. 결과는 위와 같습니다.




    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <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>
    cs

     



     

    1
    2
    3
    4
    5
    6
    7
    8
    <html>
    <body>
     
    Welcome <?php echo $_GET["name"];?><br>
    Your email address is: <?php echo $_GET["email"];?>
     
    </body>
    </html>
    cs

     






     위의 코드는 꽤 간단합니다. 그러나, 가장 중요한 걸 놓쳤네요.


     악성 코드로부터 스크립트를 보호하기 위한 서식 유효성 검사가 필요합니다.


     * PHP 서식을 처리할 때, 보안을 생각하세요!

      이번 장에서는 어느 서식 유효성 검사든 포함하지 않습니다, 단지 서식 데이터가 보내지고 받는 것에 대한 것만 보여줄 뿐이지요.

      그러나, 다음 장에서는 보안을 염두한 PHP 서식을 처리하는 방법을 보여줄 것 입니다.  



    2. GET vs. POST

     GET과 POST 둘다 배열을 생성합니다(e.g. array( key => value, key2 => value2, ...).

     

     이 배열은 키 / 값 쌍을 가지고 있고, 키는 서식 제어의 이름이고, 값은 사용자로부터의 입력 데이터 입니다.


     $_GET은 URL 파라미터를 통하여 현재 스크립트의 변수 배열을 넘깁니다.


     $_POST는 HTTP POST 메소드를 통하여 현재 스크립트의 변수 배열을 넘깁니다.






    3. When to use GET?

     GET 메소드를 통하여 보내진 서식 정보는 누구나 볼 수 있습니다. ​GET은 또한 정보를 보내는 양이 제한되어 있습니다.

     한정된 수는 2000 문자 정도입니다. 그러나, 변수가 URL에 보여지는 점 때문에, 페이지를 북마크 할 수 있다는 점이 있습니다.






    4. When to use POST?

     POST 메소드를 통해 보내지는 서식 정보는 다른 사용자에게 보여지지 않습니다. ​또한 보내는 정보의 양이 제한되지 않습니다.

     게다가, POST는 서버에 파일이 업로딩되는 동안 mulit-part 바이너리를 위한 지원같은 진보된 기능성을 제공합니다.

     

     그러나, 변수가 URL에 보여지지 않는 점 때문에, 페이지를 북마크 할 수가 없습니다.













     * 이 강좌는 'w3schools'를 참조하여 작성하였습니다.

    댓글

Designed by Tistory.