Hướng dẫn yêu cầu GET / POST trong PHP chỉ ra cách
tạo và xử lý các yêu cầu GET và POST trong PHP. Chúng tôi sử dụng PHP thuần túy và
Khung Symfony, Slim và Laravel.

Bạn đang xem : lấy hoặc đăng php

Yêu cầu PHP GET / POST

sửa đổi lần cuối vào ngày 9 tháng 7 năm 2020

Hướng dẫn yêu cầu GET / POST trong PHP chỉ ra cách tạo và xử lý GET và POST
yêu cầu bằng PHP. Chúng tôi sử dụng các khung công tác PHP và Symfony, Slim và Laravel đơn giản.

HTTP

Giao thức truyền siêu văn bản (HTTP) là một ứng dụng
giao thức cho hệ thống thông tin siêu đa phương tiện, cộng tác, phân tán.
Giao thức HTTP là nền tảng của giao tiếp dữ liệu cho World Wide Web.

NHẬN HTTP

Phương thức HTTP GET yêu cầu biểu diễn tài nguyên được chỉ định.

NHẬN yêu cầu:

  • chỉ nên được sử dụng để yêu cầu tài nguyên
  • các tham số được hiển thị trong URL
  • có thể được lưu vào bộ nhớ đệm
  • vẫn còn trong lịch sử trình duyệt
  • có thể được đánh dấu trang
  • không bao giờ được sử dụng khi xử lý dữ liệu nhạy cảm
  • có giới hạn độ dài

BÀI ĐĂNG HTTP

Phương thức HTTP POST gửi dữ liệu đến máy chủ. Nó thường được sử dụng khi
tải lên một tệp hoặc khi gửi một biểu mẫu web hoàn chỉnh.

Yêu cầu ĐĂNG:

  • nên được sử dụng để tạo tài nguyên
  • các tham số không được hiển thị trong URL
  • không bao giờ được lưu vào bộ nhớ đệm
  • không còn trong lịch sử trình duyệt
  • không thể được đánh dấu trang
  • có thể được sử dụng khi xử lý dữ liệu nhạy cảm
  • không có giới hạn độ dài

PHP $ _GET và $ _POST

PHP cung cấp các superglobals $ _GET $ _POST .
$ _GET là một mảng kết hợp của các biến được chuyển đến
tập lệnh hiện tại thông qua các tham số URL (chuỗi truy vấn). $ _POST
là một mảng kết hợp của các biến được truyền tới tập lệnh hiện tại qua HTTP
Phương thức POST khi sử dụng application / x-www-form-urlencoded hoặc
multiart / form-data làm Loại-Nội dung HTTP trong yêu cầu.

Yêu cầu PHP GET

Trong ví dụ sau, chúng tôi tạo một yêu cầu GET với công cụ và quy trình curl
yêu cầu bằng PHP đơn giản.

get_req.php

& lt;? php

$ name = $ _GET ['name'];

if ($ name == null) {
    $ name = 'khách';
}

$ message = $ _GET ['message'];

if ($ message == null) {
    $ message = 'xin chào bạn';
}

echo "$ name nói: $ message";

Ví dụ lấy các tham số name message
từ biến $ _GET .

$ php -S localhost: 8000 get_req.php

Chúng tôi khởi động máy chủ.

$ curl 'localhost: 8000 /? name = Lucia & amp; message = Cau'
Lucia nói: Cau
$ curl 'localhost: 8000 /? name = Lucia'
Lucia nói: xin chào bạn

Chúng tôi gửi hai yêu cầu GET với curl.

Yêu cầu ĐĂNG PHP

Trong ví dụ sau, chúng tôi tạo một yêu cầu ĐĂNG bằng công cụ cuộn và quy trình
yêu cầu bằng PHP đơn giản.

post_req.php

& lt;? php

$ name = $ _POST ['name'];

if ($ name == null) {
    $ name = 'khách';
}

$ message = $ _POST ['message'];

if ($ message == null) {
    $ message = 'xin chào bạn';
}


echo "$ name nói: $ message";

Ví dụ lấy các tham số name message
từ biến $ _POST .

$ php -S localhost: 8000 post_req.php

Chúng tôi khởi động máy chủ.

$ curl -d "name = Lucia & amp; message = Cau" localhost: 8000
Lucia nói: Cau

Chúng tôi gửi một yêu cầu ĐĂNG với cuộn tròn.

PHP gửi yêu cầu GET với Symfony HttpClient

Symfony cung cấp thành phần HttpClient cho phép chúng tôi
tạo các yêu cầu HTTP trong PHP.

Xem Thêm  Python JSON: Mã hóa (kết xuất), Giải mã (tải) & Đọc tệp JSON - làm thế nào để giải mã json trong python

$ composer req symfony / http-client

Chúng tôi cài đặt thành phần symfony / http-client .

send_get_req.php

& lt;? php

request ('nhà cung cấp / autoload.php');

sử dụng Symfony \ Component \ HttpClient \ HttpClient;

$ httpClient = HttpClient :: create ();
$ response = $ httpClient- & gt; request ('GET', 'http: // localhost: 8000', [
    'truy vấn' = & gt; [
        'name' = & gt; 'Lucia',
        'message' = & gt; 'Cau',
    ]
]);

$ content = $ response- & gt; getContent ();
echo $ nội dung. "\N";

Ví dụ gửi một yêu cầu GET với hai tham số truy vấn tới
localhost: 8000 / get_request.php .

$ php -S localhost: 8000 get_req.php

Chúng tôi khởi động máy chủ.

$ php send_get_req.php
Lucia nói: Cau

Chúng tôi chạy tập lệnh send_get_req.php .

PHP gửi yêu cầu POST với Symfony HttpClient

Trong ví dụ sau, chúng tôi gửi một yêu cầu POST với Symfony HttpClient.

send_post_req.php

& lt;? php

request ('nhà cung cấp / autoload.php');

sử dụng Symfony \ Component \ HttpClient \ HttpClient;

$ httpClient = HttpClient :: create ();
$ response = $ httpClient- & gt; request ('POST', 'http: // localhost: 8000', [
    'body' = & gt; [
        'name' = & gt; 'Lucia',
        'message' = & gt; 'Cau',
    ]
]);

$ content = $ response- & gt; getContent ();
echo $ nội dung. "\N";

Ví dụ gửi một yêu cầu POST với hai tham số tới
localhost: 8000 / post_req.php .

$ php -S localhost: 8000 post_req.php

Chúng tôi khởi động máy chủ.

$ php send_post_req.php
Lucia nói: Cau

Chúng tôi chạy tập lệnh send_post_req.php .

Yêu cầu PHP GET trong Symfony

Trong ví dụ sau, chúng tôi xử lý yêu cầu GET trong ứng dụng Symfony.

$ symfony new symreq
$ cd symreq

Một ứng dụng mới được tạo.

$ composer req annot
$ composer req maker --dev

Chúng tôi cài đặt các thành phần annot maker .

$ php bin / console make: controller HomeController

Chúng tôi tạo một bộ điều khiển mới.

src / Controller / HomeController.php

& lt;? php

không gian tên App \ Controller;

sử dụng Symfony \ Bundle \ FrameworkBundle \ Controller \ AbstractController;
sử dụng Symfony \ Component \ Routing \ Annotation \ Route;
sử dụng Symfony \ Component \ HttpFoundation \ Response;
sử dụng Symfony \ Component \ HttpFoundation \ Request;

class HomeController mở rộng AbstractController
{
    / **
     * @Route ("/", name = "home", method = {"GET"})
     * /
    chỉ mục chức năng công khai (Yêu cầu $ request): Phản hồi
    {
        $ name = $ request- & gt; query- & gt; get ('name', 'guest');
        $ message = $ request- & gt; query- & gt; get ('message', 'hello there');

        $ output = "$ name cho biết: $ tin nhắn";

        trả về Phản hồi mới ($ output, Response :: HTTP_OK,
            ['content-type' = & gt; 'văn bản / đơn giản']);
    }
}

Bên trong phương thức index của HomeController,
chúng tôi nhận các tham số truy vấn và tạo phản hồi.

$ name = $ request- & gt; query- & gt; get ('name', 'guest');

Tham số GET được truy xuất bằng $ request- & gt; query- & gt; get .
Tham số thứ hai của phương thức là một giá trị mặc định được sử dụng khi không
giá trị đã được truy xuất.

$ symfony serve

Chúng tôi khởi động máy chủ.

$ curl 'localhost: 8000 /? name = Lucia & amp; message = Cau'
Lucia nói: Cau

Chúng tôi tạo ra một yêu cầu GET với curl.

Yêu cầu ĐĂNG PHP trong Symfony

Trong ví dụ sau, chúng tôi xử lý yêu cầu ĐĂNG trong ứng dụng Symfony.

src / Controller / HomeController.php

& lt;? php

không gian tên App \ Controller;

sử dụng Symfony \ Bundle \ FrameworkBundle \ Controller \ AbstractController;
sử dụng Symfony \ Component \ Routing \ Annotation \ Route;
sử dụng Symfony \ Component \ HttpFoundation \ Response;
sử dụng Symfony \ Component \ HttpFoundation \ Request;

class HomeController mở rộng AbstractController
{
    / **
     * @Route ("/", name = "home", method = {"POST"})
     * /
    chỉ mục chức năng công khai (Yêu cầu $ request): Phản hồi
    {
        $ name = $ request- & gt; request- & gt; get ('name', 'guest');
        $ message = $ request- & gt; request- & gt; get ('message', 'hello there');

        $ output = "$ name cho biết: $ tin nhắn";

        trả về Phản hồi mới ($ output, Response :: HTTP_OK,
            ['content-type' = & gt; 'văn bản / đơn giản']);
    }
}

Chúng tôi thay đổi bộ điều khiển để xử lý yêu cầu ĐĂNG.

$ name = $ request- & gt; request- & gt; get ('name', 'guest');

Tham số POST được truy xuất bằng $ request- & gt; request- & gt; get .
Tham số thứ hai của phương thức là một giá trị mặc định được sử dụng khi không
giá trị đã được truy xuất.

$ symfony serve

Chúng tôi khởi động máy chủ.

$ curl -d "name = Lucia" localhost: 8000
Lucia nói: xin chào bạn

Chúng tôi tạo một yêu cầu POST với curl.

Yêu cầu PHP GET trong Slim

Trong ví dụ sau, chúng tôi sẽ xử lý một yêu cầu GET trong Slim
khuôn khổ.

$ composer req slim / slim
$ composer req slim / psr7
$ composer req slim / http

Chúng tôi cài đặt slim / slim , slim / psr7 slim / http
các gói.

public / index.php

& lt;? php
sử dụng Psr \ Http \ Message \ ResponseInterface làm phản hồi;
sử dụng Psr \ Http \ Message \ ServerRequestInterface làm Yêu cầu;
sử dụng Slim \ Factory \ AppFactory;

yêu cầu __DIR__. '/../vendor/autoload.php';

$ app = AppFactory :: create ();

$ app- & gt; get ('/', function (Request $ request, Response $ response): Phản hồi {

    $ name = $ request- & gt; getQueryParam ('name', 'guest');
    $ message = $ request- & gt; getQueryParam ('message', 'hello there');
    $ output = "$ name cho biết $ tin nhắn";

    $ response- & gt; getBody () - & gt; write ($ output);
    trả về $ phản hồi;
});

$ app- & gt; run ();

Chúng tôi nhận các thông số và trả về phản hồi trong Slim.

$ name = $ request- & gt; getQueryParam ('name', 'guest');

Tham số truy vấn được truy xuất bằng getQueryParam ; các
tham số thứ hai là giá trị mặc định.

$ response- & gt; getBody () - & gt; write ($ output);

Chúng tôi ghi đầu ra vào phần thân phản hồi bằng write .

$ php -S localhost: 8000 -t public

Chúng tôi khởi động máy chủ.

$ curl 'localhost: 8000 /? name = Lucia & amp; message = Cau'
Lucia nói: Cau

Chúng tôi tạo ra một yêu cầu GET với curl.

Yêu cầu ĐĂNG PHP trong Slim

Trong ví dụ sau, chúng tôi sẽ xử lý một yêu cầu ĐĂNG trong Slim
khuôn khổ.

public / index.php

& lt;? php
sử dụng Psr \ Http \ Message \ ResponseInterface làm phản hồi;
sử dụng Psr \ Http \ Message \ ServerRequestInterface làm Yêu cầu;
sử dụng Slim \ Factory \ AppFactory;

yêu cầu __DIR__. '/../vendor/autoload.php';

$ app = AppFactory :: create ();

$ app- & gt; post ('/', function (Request $ request, Response $ response): Phản hồi {

    $ data = $ request- & gt; getParsedBody ();
    
    $ name = $ data ['name'];
    $ message = $ data ['message'];

    if ($ name == null) {
        $ name = 'khách';
    }

    if ($ message == null) {
        $ message = 'xin chào bạn';
    }
    
    $ output = "$ name cho biết: $ tin nhắn";

    $ response- & gt; getBody () - & gt; write ($ output);
    trả về $ phản hồi;
});

$ app- & gt; run ();

Chúng tôi nhận được các tham số POST và trả lại phản hồi trong Slim.

$ data = $ request- & gt; getParsedBody ();

Các tham số POST được truy xuất bằng getParsedBody .

$ php -S localhost: 8000 -t public

Chúng tôi khởi động máy chủ.

$ curl -d "name = Lucia" localhost: 8000
Lucia nói: xin chào bạn

Chúng tôi tạo một yêu cầu POST với curl.

Yêu cầu PHP GET trong Laravel

Trong ví dụ sau, chúng tôi xử lý một yêu cầu GET trong Laravel.

$ laravel mới larareq
$ cd larareq

Chúng tôi tạo một ứng dụng Laravel mới.

route / web.php

& lt;? php

sử dụng Illuminate \ Support \ Facades \ Route;
sử dụng Illuminate \ Http \ Request;

Route :: get ('/', function (Request $ request) {
    
    $ name = $ request- & gt; query ('name', 'guest');
    $ message = $ request- & gt; query ('message', 'hello there');
    $ output = "$ name cho biết $ tin nhắn";

    trả về sản lượng $;
});

Chúng tôi nhận các tham số GET và tạo một phản hồi.

$ php nghệ nhân phục vụ

Chúng tôi khởi động máy chủ.

$ curl 'localhost: 8000 /? name = Lucia & amp; message = Cau'
Lucia nói Cau

Chúng tôi gửi một yêu cầu GET với cuộn tròn.

Yêu cầu ĐĂNG PHP trong Laravel

Trong ví dụ sau, chúng tôi gửi một yêu cầu ĐĂNG từ một biểu mẫu HTML.

resources / views / home.blade.php

& lt;! DOCTYPE html & gt;
& lt; html lang = "vi" & gt;
    & lt; đầu & gt;
        & lt; meta charset = "utf-8" & gt;
        & lt; meta name = "viewport" content = "width = device-width, initial-scale = 1" & gt;
        & lt; title & gt; Trang chủ & lt; / title & gt;
        & lt; phong cách & gt;
            .alert {color: red}
        & lt; / style & gt;
    & lt; / head & gt;
    & lt; body & gt;
        @if ($ error- & gt; any ())
        & lt; div class = "alert" & gt;
            & lt; ul & gt;
                @foreach ($ error- & gt; all () as $ error)
                    & lt; li & gt; {{$ error}} & lt; / li & gt;
                @endforeach
            & lt; / ul & gt;
        & lt; / div & gt;
        @endif
         & lt; form action = "process_form" method = "post" & gt;
            @csrf
            & lt; label for = "name" & gt; Tên & lt; / label & gt; & lt; input id = "name"
                value = "{{old ('name')}}" type = "text" name = "name" & gt;
            & lt; label for = "message" & gt; Message & lt; / label & gt; & lt; input id = "message"
                value = "{{old ('message')}}" type = "text" name = "message" & gt;
            & lt; button type = "submit" & gt; Gửi & lt; / button & gt;
        & lt; / form & gt;
    & lt; / body & gt;
& lt; / html & gt;

Chúng tôi có một biểu mẫu ĐĂNG trong một mẫu Blade. Laravel yêu cầu bảo vệ CSRF cho
ĐĂNG yêu cầu. Chúng tôi bật tính năng bảo vệ CSRF với @csrf .

route / web.php

& lt;? php

sử dụng Illuminate \ Support \ Facades \ Route;
sử dụng Illuminate \ Http \ Request;

Route :: get ('/', function () {
    return view ('home');
});


Route :: post ('/ process_form', function (Request $ request) {

    $ request- & gt; validate ([
        'name' = & gt; 'bắt buộc | tối thiểu: 2',
        'message' = & gt; 'bắt buộc | tối thiểu: 3'
    ]);
    
    $ name = $ request- & gt; input ('name');
    $ message = $ request- & gt; input ('message');
    
    $ output = "$ name cho biết: $ tin nhắn";

    trả về sản lượng $;
});

Chúng tôi xác thực và truy xuất các tham số POST và gửi chúng trong phản hồi.
Ví dụ này nên được thử nghiệm trong một trình duyệt.

Trong hướng dẫn này, chúng tôi đã làm việc với các yêu cầu GET và POST bằng PHP thuần túy,
Symfony, Slim và Laravel.

Liệt kê tất cả các hướng dẫn PHP .


Xem thêm những thông tin liên quan đến chủ đề php get hoặc post

Learn PHP: GET and POST

  • Tác giả: Codecourse
  • Ngày đăng: 2013-12-01
  • Đánh giá: 4 ⭐ ( 1944 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Want more? Explore the library at https://www.codecourse.com/lessons

    Official site
    https://www.codecourse.com

    Twitter
    https://twitter.com/teamcodecourse

Bài 17: Tìm hiểu về GET và POST trong PHP

  • Tác giả: laptrinhvienphp.com
  • Đánh giá: 5 ⭐ ( 2650 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong bài học này, bạn sẽ tìm hiểu cách gửi thông tin đến máy chủ bằng các phương thức HTTP GET và POST và truy xuất chúng bằng PHP.

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

  • Tác giả: quachquynh.com
  • Đánh giá: 3 ⭐ ( 2008 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

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

  • Tác giả: vietjack.com
  • Đánh giá: 5 ⭐ ( 4571 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

PHP GET and POST

  • Tác giả: www.w3schools.in
  • Đánh giá: 5 ⭐ ( 8452 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: This lesson shows how to collect submitted form-data from users using POST and GET method.

Phương Thức Truyền và Nhận Dữ Liệu POST, GET Trong PHP — PHP

  • Tác giả: www.stdio.vn
  • Đánh giá: 4 ⭐ ( 7024 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Cơ chế truyền dữ liệu với phương thức POST và GET trong PHP.

Phương thức get và post trong php

  • Tác giả: freetuts.net
  • Đánh giá: 3 ⭐ ( 1118 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tìm hiểu phương thức post và phương thức get trong php, thực hành các phương thức truyền dữ liệu của post và get trong php

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

By ads_php