Phương thức GET và POST trong PHP

Có 2 cách để Client có thể gửi thông tin lên Server:

  • Phương thức GET: Là phương thức thức gửi dữ liệu thông qua đường dẫn URL nằm trên thanh địa chỉ của Browser. Server sẽ nhận dữ liệu thông qua các biến GET được gửi theo trên đường dẫn phía Client gửi lên.
  • Phương thức POST: gửi dữ liệu gửi thông qua một form HTML, chúng ta không thể thấy các giá trị đó nên POST được đánh giá có tính bảo mật hơn GET.

Khi nào sử dụng GET?

Sử dụng GET khi thông tin gửi đi không nhạy cảm(không cần che giấu) vì tất cả các tên biến và giá trị được hiển thị trên URL của trình duyệt, sử dụng khi số lượng thông tin gửi đi ít khoảng dưới 2000 ký tự.

Khi nào sử dụng POST?

Sử dụng POST khi thông tin gửi đi là nhạy cảm(cần che giấu) vì tất cả các tên biến và giá trị sẽ được ẩn đi trên URL của trình duyệt, sử dụng khi số lượng thông tin gửi đi lớn.

Ví dụ: Sử dụng method GET

    <?php
       if( isset($_GET["name"]) || isset($_GET["age"]) )
       {
          echo "Chào mừng ". $_GET['name']. "<br />";
          echo "Bạn ". $_GET['age']. " tuổi.";

          exit();
       }
    ?>
    <html>
       <body>

          <form action="<?php $_PHP_SELF ?>" method="GET">
             Họ tên: <input type="text" name="name" />
             Tuổi: <input type="text" name="age" />
             <input type="submit" />
          </form>

       </body>
    </html>
Xem ví dụ »

Ví dụ: Sử dụng method POST

    <?php
       if( isset($_POST["name"]) || isset($_POST["age"]) )
       {
          if (preg_match("/[^A-Za-z'-]/",$_POST['name'] ))
          {
             die ("Biến name không hợp lệ - nên là các chữ cái");
            }
          echo "Chào mừng ". $_POST['name']. "<br />";
          echo "Bạn ". $_POST['age']. " tuổi.";

          exit();
       }
    ?>
    <html>
       <body>

          <form action="<?php $_PHP_SELF ?>" method="POST">
             Họ tên: <input type="text" name="name" />
             Tuổi: <input type="text" name="age" />
             <input type="submit" />
          </form>

       </body>
    </html>
Xem ví dụ »