Trải qua 18 bài chúng ta học toàn lý thuyết nên có vẻ hơi nhàm chán, và để giảm căng thẳng thì hôm nay chúng ta sẽ đi tìm hiểu một vài thứ hấp dẫn hơn, đó là phương thức truyền dữ liệu từ Client  lên Server.

Như các bạn biết bộ mã nguồn web viết bằng PHP được đưa lên host và đó chính là Server, còn khi các bạn truy cập sử dụng website thì bạn chính là một Client. Khi các bạn đăng nhập hay đăng ký tài khoản, hoặc là các bạn đăng comment thì dữ liệu sẽ được gửi từ client lên Server, vậy làm sao để Server nhận được những thông tin của bạn? Server sẽ nhận được thông qua hai phương thức POST và GET.

Có 2 cách gửi dữ liệu từ Client lên Server đó là dùng phương thức GET hoặc phương thức POST, cả 2 cách này bản chất lập trình viên mới biết chứ người dùng họ không quan tâm đến nó là cái gì, trừ khi là hacker :D. Để không mất thời gian nữa ta sẽ đi vào tìm hiểu từng cách, so sánh chúng với nhau và bàn luận xem khi nào ta dùng POST và khi nào ta dùng GET nhé.

Nội dung bài học của chúng ta như sau:

  • Phương thức GET trong PHP
  • Phương thức POST trong PHP
  • So sánh giữa POST và GET

Nội dung chính

  • 1. Phương thức GET trong PHP
  • Client gửi lên
  • Server nhận dữ liệu
  • Thực hành:
  • Lưu ý quan trọng:
  • 2. Phương thức POST trong PHP
  • Client Gửi Lên
  • Server nhận dữ liệu
  • Thực hành
  • 3. So sánh giữa POST và GET
  • Giống nhau:
  • Khác nhau:
  • Khi nào dùng GET – POST
  • 4. Lời Kết
  1. Phương thức GET trong PHP

Phương thức GET rất dễ nhận thấy đó là trên URL sẽ kèm theo dữ liệu mà chúng ta muốn gửi

Client gửi lên

Phương thức GET là phương 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 đường dẫn đó và phân tích trả về kết quả cho bạn. Server sẽ phân tích tất cả những thông tin đằng sau dấu hỏi (?) chính là phần dữ liệu mà Client gửi lên.

Ví dụ:  Với URL tinhoccuaem.com?id=12thì Server sẽ nhận được giá trị id = 12

Để truyền nhiều dữ liệu lên Server ta dùng dấu & để phân cách giữa các cặp giá trị. Giả sử tôi muốn truyền id = 12và title = ‘method_get’ thì URL sẽ có dạng tinhoccuaem.com?id=12&title=method_get. Lưu ý với các bạn là vị trí các cặp giá trị không quan trọng, nghĩa là cặp title có thể nằm trước cặp id cũng được.

Server nhận dữ liệu

Tất cả các dữ liệu mà Client gửi lên bằng phương thức GET đều được lưu trong một biến toàn cục mà PHP tự tạo ra đó là biến $_GET, biến này là kiểu mảng kết hợp lưu trữ danh sách dữ liệu từ client gửi lên theo quy luật key => value. Ví du với URL tinhoccuaem.com?id=12&title=method_get thì dữ liệu sẽ được lưu trong biến $_GET dưới dạng:

 

1

2

3

4

$_GET = array(

‘id’ => ’12’,

‘title’ => ‘method_get’

);

 

Vì thế để lấy dữ liệu thì ta chỉ cần làm như sau:

 

1

2

3

4

5

6

7

// Lấy ID

$id = $_GET[‘id’];

echo $id; // kết quả là 12

 

// Lấy title

$title = $_GET[‘title’];

echo $title; // kết quả là method_get

 

Thực hành:

Bạn hãy tạo một file get.php nằm trong thư mục WWW của Vertrigo Server hoặc thư mục htdocs của Xampp, sau đó bạn copy đoạn code này vào:

 

1

2

3

4

5

echo ‘Dữ Liệu Chúng Tôi Nhận Được Là <br/>’;

foreach ($_GET as $key => $val)

{

echo ‘<strong>’ . $key . ‘ => ‘ . $val . ‘</strong><br/>’;

}

 

Sau đó bạn ra trình duyệt gõ đường dẫn sau: localhost/get.php?id=12&title=method_get và ngắm nhìn thành quả nhé. Bạn hãy thử thay đổi hoặc thêm các giá trị xem có gì khác không.

Lưu ý quan trọng:

Trước khi lấy một dữ liệu nào đó bạn phải kiểm tra tồn tại không không mới lấy nhé, vì nếu bạn không kiểm tra thì giả sử người dùng không truyền dữ liệu qua mà bạn lại nhận thì sẽ bị báo lỗi ngay. Để kiểm tra ta dùng hàm isset($tenbien) trong php.

Ví dụ:

 

1

2

3

if (isset($_GET[‘id’])){

$id = $_GET[‘id’];

}<br><br>

 

  1. Phương thức POST trong PHP

Phương thức POST có tính bảo mật hơn vì dữ liệu gửi phải thông qua một form HTML nên nó bị ẩn, nghĩa là chúng ta không thể thấy các giá trị đó được.

Client Gửi Lên

Với phương thức GET thì dữ liệu được thấy trên URL thì phương thức POST thì hoàn toàn ngược lại, POST sẽ gửi dữ liệu qua một cái form HTML và các giá trị sẽ được định nghĩa trong các input gồm các kiểu (textbox, radio, checkbox, password, textarea, hidden) và được nhận dang thông qua tên (name) của các input đó.

Server nhận dữ liệu

Tất cả các dữ liệu gửi bằng phương thức POST đều được lưu trong một biến toàn cục $_POST do PHP tự tạo ra, vì thế để lấy dữ liệu thì bạn chỉ cần lấy trong biến này là được. Cũng như lưu ý với các bạn là trước khi lấy phải dùng hàm isset($bien) để kiểm tra có hay không nhé.

 

1

2

3

if (isset($_POST[‘id’])){

$id = $_POST[‘id’];

}

 

Thực hành

Bước 1: Bạn tạo một file post.php nằm trong thư mục WWW của Vertrigo Server hoặc thư mục htdocs của Xampp, sau đó nhập đoạn code tạo form này vào:

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<!DOCTYPE html>

<html>

<head>

<title></title>

<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>

</head>

<body>

<form method=”POST”>

Username: <input type=”text” name=”username” value=””/> <br/>

password: <input type=”password” name=”password” value=””/><br/>

<input type=”submit” name=”form_click” value=”Gửi Dữ Liệu”/>

</form>

</body>

</html>

 

Bước 2: Bạn mở trình duyệt gõ đường dẫn localhost/post.php và ngắm nghía cái form mình vừa tạo ra nhé.

Bước 3: Bạn sửa lại đoạn mã HTML đó bằng cách thêm vào một đoạn mã PHP như sau:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

<!DOCTYPE html>

<html>

<head>

<title></title>

<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>

</head>

<body>

<form method=”POST”>

Username: <input type=”text” name=”username” value=””/> <br/>

password: <input type=”password” name=”password” value=””/><br/>

<input type=”submit” name=”form_click” value=”Gửi Dữ Liệu”/><br/>

<?php

// Nếu người dùng click vào button Gửi Dữ Liệu

// Vì button đó tên là form_click nên đó cũng là

// tên của key nằm trong biến $_POST

if (isset($_POST[‘form_click’])){

echo ‘Tên đăng nhập là: ‘ . $_POST[‘username’];

echo ‘<br/>’;

echo ‘Mật khẩu là: ‘ . $_POST[‘password’];

}

?>

</form>

</body>

</html>

 

Bước 4: Bạn refresh lại trình duyệt rồi nhập tên đăng nhập và mật khẩu vào, sau đó nhấn vào button “Gửi Dữ Liệu” và nhìn thành quả của mình nhé.

  1. So sánh giữa POST và GET

Để các bạn hiểu rõ hơn về hai phương thức POST và GET thì chúng ta cùng so sánh một chút xíu.

Giống nhau:

Đều gửi dữ liệu lên Server

Khác nhau:

Phương thức POST bảo mật hơn GET vì dữ liệu được gửi ngầm bằng mắt thường không thể nhìn thấy được.

Phương thức GET dữ liệu được gửi tường minh, chúng ta có thể thấy trên URL nên nó không bảo mật.

Phương thức GET luôn luôn nhanh hơn POST vì dữ liệu gửi đi được Browser giữ lại trong cache. Khi thực thi với POST thì Server luôn thực thi lệnh rồi trả về cho Client, còn với GET thì Browser sẽ kiểm tra trong cache có chưa, nếu có thì trả về ngay chứ không cần gửi lên Server.

Khi nào dùng GET – POST

Khi dữ liệu bạn muốn SEO thì phải sử dụng phương thức GET.

Khi dữ liệu bạn không cần bảo mật thì dùng phương thức GET, ngược lại dữ liệu bảo mật thì dùng phương thức POST.

Ví dụ khi đăng nhập, Comment, đăng tin dùng phương thức POST. Còn khi lấy tin ra thì dùng phương thức GET…

Khi request sử dụng câu lệnh select thì dùng GET, khi request có sử dụng lệnh insert update, delete thì nên dùng POST.

  1. Lời Kết

Việc sử dụng phương thức GET và phương thức POST còn tùy thuộc vào từng bài toán cụ thể mà ta chọn lựa chứ không thể xác định chính xác được. Tuy nhiên những dấu hiệu mình nói ở trên có thể giúp ta một phần nào quyết định để có sự lựa chọn chính xác. Bài tiếp theo chúng ta sẽ tìm hiểu các hàm xử lý chuỗi trong php, chúc các bạn vui vẻ và thành công.

 

30 BÌNH LUẬN

  1. Внимание! Создана новая модификация 3D БОТОВ для сайтов и ЧАТ ботов, теперь они визуальные – почти живые, работают 24/7 и БЕСПЛАТНО. Зарабатывают для Вас деньги в Интернет на полном АВТОМАТЕ и полуавтомате. Цена: вопроса от 270$ примеры здесь

  2. Компания ООО ИКЦ «ПРОГРЕС» ИНН 5903997924 построена за счет обмана людей, не качественной работе и вообще подходят ко всему формально. Собственник гражданин РФ Беринцев Михаил Викторович. Увидите объявление где адрес 614068, Пермский край, город Пермь, улица Ленина, дом 89 и/или номер телефона +7 (342) 202-59-49 бегите.
    Руководитель Органа по Сертификации: Шостак Максим Сергеевич г. Пермь, ул.Пушкина, дом №1/1.
    ТСЖ и управляющие компании, не дайте себя обмануть!

  3. I was curious if you ever thought of changing the page
    layout of your blog? Its very well written; I love what
    youve got to say. But maybe you could a little more in the way of content
    so people could connect with it better. Youve got an awful lot of text for only having 1 or 2 pictures.
    Maybe you could space it out better?

  4. I do believe all the concepts you’ve presented in your post.
    They are really convincing and can certainly work.
    Still, the posts are too short for newbies. May just you please prolong them
    a little from subsequent time? Thank you for the post.

  5. This is very attention-grabbing, You are an excessively skilled blogger.
    I’ve joined your feed and look forward to in quest of more of your excellent post.
    Also, I have shared your web site in my social networks

  6. 2020 PC Install v4.16 Win serial key or numberBy admin 2020 PC Install v4.16 Win serial key or number 0 Comments2020 PC Install v4.16 Win serial key or number
    2020 PC Install v4.16 Win serial key or number

    Where can I find the Activation Key and File Installation Key (FIK) for my license?
    IMPORTANT: If you are looking for the File Installation Key for the purposes of installing MATLAB on an offline machine, see “How can I install MATLAB or other MathWorks products on an offline machine?” for complete instructions. Entering a File Installation Key into a MATLAB installer downloaded directly from the MathWorks website will not enable you to install MATLAB on an offline machine.

    Administrators

    License administrators can obtain the Activation Key and File Installation Keys through through the “Advanced Options” button in the license center. To retrieve your Activation Key and File Installation Key, follow the steps below:

  7. Have you ever thought about adding a little bit more than just your articles?
    I mean, what you say is valuable and everything. Nevertheless just imagine if you added some great
    images or videos to give your posts more, “pop”!

    Your content is excellent but with pics and clips, this
    site could definitely be one of the greatest in its niche.
    Amazing blog!

  8. After checking out a number of the blog posts on your blog,
    I truly like your technique of writing a blog. I bookmarked it to
    my bookmark site list and will be checking back
    soon. Please visit my website too and let me know what you think.

  9. Just wish to say your article is as amazing. The clarity in your post is just nice
    and i can assume you are an expert on this subject. Fine with your permission allow
    me to grab your RSS feed to keep updated with forthcoming post.
    Thanks a million and please continue the enjoyable work.

  10. Plany tudzież własność dzieł
    Omówienia podyplomowe spośród obszaru „Wycena bierności” wyprawiają wychowanków do racjonalnego nadzorowania majętnościami, w współczesnym przede którymkolwiek do określenia ich zalet. Uwieńczenie atelier podyplomowych spośród profilu „Taksacja majętności” zaprawia do krwawicy w sztukach dyrekcji królewskiej natomiast municypalnej, agendach rozwoju, ekspozyturach nieaktywności, reputacjach konsultingowych plus konsultacyjnych dodatkowo do rozporządzania miejscowych nazw, oraz też do punktacji majętności.

    Umiejętność: W konstrukcjach rozpoczynanych opracowań podyplomowych spośród kresu „Rachuba posiadłości” wychowanek uzyskuje myśl formalną, oszczędną i politechniczną przymusową do weryfikacji nieaktywności. Noeza ostatnia wyjaśniana stanowi o nauki interdyscyplinarne z kręgu pośrednictwa na kiermaszu posesje, poplecznictwa w toku posiadłościami, zaś także decydowania posiadłościami.
    Predyspozycji: Wychowanek arcydzieł podyplomowych z zasięgu „Wycena bierności” sprosta rozróżnić wygląd prawny zaś technologiczny działki, dokonać ocenę sektorze działek gwoli niezbędności wyceny, wziąć doboru wybornego ujęcia, maniery oraz technologie rachuby, urządzić certyfikat z weryfikacje tzn. elaborat kwalifikacyjny.
    Postawy/kompetencje: Prezencje tudzież kwalifikacje uzyskane poprzez wychowanków przygotowań podyplomowych z poziomu „Kalkulacja inercji” uznają na uskutecznianie operatywności spośród zbioru ewaluacji nieruchomości.
    Po przeprowadzeniu arcydzieł podyplomowych spośród poziomu „Symulacja działek” wychowanek doświadcza stwierdzenie skończenia arcydzieł podyplomowych.

    Kalendarz przygotowań podyplomowych z szczytu „Kwalifikacja majętności” dokonuje dezyderaty najmniej rytmicznego wprowadzonego w Prawu Premiera Bazy także Boomie spośród dnia 12 czerwca 2014 r. w myśli niewyraźnych przymusów metodycznych gwoli atelier podyplomowych w kręgu ewaluacji parcele (poz. 826).

    Odbiorcy
    Arcydzieła podyplomowe spośród zakresu „Kwalifikacja posiadłości” wyprawiane są do ról przeciwników pobraniem niereligijnych pozwoleń w zarobku macherzy majątkowego, jako ponad do rzeczonych, którzy preferują nasilić własną erudycję z kresu rynku posiadłości także dogodnych aspektów uzależnionych z ceną nieaktywności a metodami jej kwalifikacji. Dzieła podyplomowe z pułapu „Wycena majętności” dedykowane są tudzież gwoli pracobiorców banków, śmiertelników firm miejskich, kooperatyw domowych, spójni lokalowych, podmiotów finansowych w których aktywa nieruchomościowe przychodzą na liczba podmiotu.

    twoj-pomysl.pl

  11. I like the valuable information you provide in your articles.
    I’ll bookmark your weblog and check again here regularly.

    I am quite certain I’ll learn a lot of new stuff right here!

    Good luck for the next!

THOÁT KHỎI BÌNH LUẬN

Please enter your comment!
Please enter your name here