Hướng dẫn requests php
Show
Nội dung chính
Trong bài học này, chúng ta sẽ tìm hiểu xử lý form và gửi dữ liệu trong PHP bằng cách sử dụng các biến siêu toàn cục REQUEST, POST, GET.
Bài 10: Video xử lý form và gửi dữ liệu trong PHPHướng dẫn chi tiết"Người ta tắt AdsBlock không phải vì người ta dại, mà người ta quý mình nên coi quảng cáo" Hosting WordPress nhanh, rẻ và dễ sử dụng có free SLL hãy chọn Azdigi nhé. Link đăng ký: NHẬN NGAY ƯU ĐÃI Nếu các bạn mua hosting từ link trên, mình sẽ có một ít tiền để duy trì. Cảm ơn $GETMột mảng kết hợp của các biến được truyền cho tập lệnh hiện tại thông qua các tham số URL (còn gọi là chuỗi truy vấn). Lưu ý rằng mảng không chỉ được điền cho các yêu cầu GET, mà là cho tất cả các yêu cầu có chuỗi truy vấn. GET không thể được sử dụng để gửi dữ liệu nhị phân, như hình ảnh hoặc tài liệu từ, đến máy chủ. Gửi dữ liệu bằng tham số trên đường dẫn Link demo Nhận dữ liệu bằng cách truy cập vào biến $_GET trong file bai10-1.php trong cùng thư mục nhé. "Ra đời, cuộc sống bươm chải, có làm vẫn không có ăn" nên phải gắn QUẢNG CÁO Các bạn cần hosting WordPress nhanh, rẻ và dễ sử dụng có free SLL hãy chọn Azdigi nhé. Link đăng ký: NHẬN NGAY ƯU ĐÃI Nếu các bạn mua hosting từ link trên, mình sẽ có một ít tiền để duy trì. Cảm ơn if(isset($_GET['id'])){ $bien = $_GET['id']; echo $bien; } $POSTPhương thức POST là hình thức client gửi dữ liệu lên server kèm theo dữ liệu và dữ liệu sẽ bị ẩn chứ không hiển thị trên URL như phương thức GET. Gửi dữ liệu bằng form phương thức POST Nhận dữ liệu từ form, trong file bai10-2.php, chúng ta nên dùng isset để kiểm tra dữ liệu tồn tại hay chưa để tránh lỗi xảy ra. Sau dó, nhận giá trị từ form bằng $_POST[‘name của input’]; if (isset($_POST['username'])) { $name = $_POST['username']; echo $name; } $REQUESTMột mảng kết hợp theo mặc định chứa nội dung của $ _GET, $ _POST và $ _COOKIE. Trong ví dụ bên dưới, mình sẽ ví dụ 1 trường hợp dùng $_REQUEST thay cho $ _POST nhé. Ví dụ trên mình về GET và POST dùng hàm isset, còn bên dưới là ví dụ từ w3school dùng empty để kiểm tra. Để biết isset và empty khác nhau như thế nào, các bạn có thể tham khảo. Nếu có thắc mắc, hãy đặt câu hỏi bằng cách comment bên dưới, qua email, hoặc nhắn tin qua Fanpage Góc làm web. Liên hệ 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. Nội dung chính
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức. 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: Bài viết này được đăng tại [free tuts .net]
1. Phương thức GET trong PHPPhươ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ênPhươ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 Để
truyền nhiều dữ liệu lên Server ta dùng dấu Server nhận dữ liệuTấ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 $_GET = array( 'id' => '12', 'title' => 'method_get' ); Vì thế để lấy dữ liệu thì ta chỉ cần làm như sau: // 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: echo 'Dữ Liệu Chúng Tôi Nhận Được Là Sau đó
bạn ra trình duyệt gõ đường dẫn sau: 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ụ: if (isset($_GET['id'])){ $id = $_GET['id']; } 2. Phương thức POST trong PHPPhươ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ênVớ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ệuTấ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 if (isset($_POST['id'])){ $id = $_POST['id']; } Thực hànhBước 1: Bạn tạo một
file Bước 2: Bạn mở trình duyệt gõ đường dẫn 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: 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é. 3. 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 - POSTKhi 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. 4. Lời KếtViệ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. |