Hướng dẫn php post not working - bài php không hoạt động

If you're just refreshing the page, do:

action=''

instead of:

action=""

Also, add this to line 2 to see what's being stored (if anything) in the $_POST array:

var_dump( $_POST );

Hmm... so it's empty on submit? Try adding this to the top of your php file:

if(empty($_SERVER['CONTENT_TYPE']))
{ 
  $_SERVER['CONTENT_TYPE'] = "application/x-www-form-urlencoded"; 
}

Okay, now check your php.ini (normally requires sudo or root in /etc):

post_max_size = 8M
variables_order = "EGPCS"

Do you have those two rules set? If so, be careful of how much memory you're allocating. Anything over 2048MB could start to give you trouble, depending on your system specs.

NOTE: If you make changes to your php.ini file and PHP is running as an apache module, you'll need to restart apache. Something along the lines of:

sudo /etc/init.d/httpd restart

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.phương thức truyền dữ liệu từ Client lên Server.

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:
  • Lưu ý quan trọng:
  • 2. Phương thức POST trong PHP
  • Client Gửi Lên
  • Thực hành
  • 3. So sánh giữa POST và GET

Giống nhau:freetuts.net, không được copy dưới mọi hình thức.

Khác nhau:

Khi nào dùng GET - POST

4. Lời Kết

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:

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

Bài viết này được đăng tại [free tuts .net]

Client gửi lên

Server nhận dữ liệu

Thực hành:Với URL

action=""
3thì Server sẽ nhận được giá trị
action=""
4

Lưu ý quan trọng:nhiều dữ liệu lên Server ta dùng dấu

action=""
5 để phân cách giữa các cặp giá trị. Giả sử tôi muốn truyền
action=""
6và
action=""
7 thì URL sẽ có dạng
action=""
8. 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
action=""
9 có thể nằm trước cặp
var_dump( $_POST );
0 cũng được.

Server nhận dữ liệu

Thực hành:$_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

var_dump( $_POST );
1. Ví du với URL
action=""
8 thì dữ liệu sẽ được lưu trong biến $_GET dưới dạng:

$_GET = array(
    'id' => '12',
    'title' => 'method_get'
);

Lưu ý quan trọng:

// 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:

Lưu ý quan trọng: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à 
'; foreach ($_GET as $key => $val) { echo '' . $key . ' => ' . $val . '
'; }

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

Lưu ý quan trọng:

2. Phương thức POST trong PHPisset($tenbien) trong php.

Client Gửi Lên

if (isset($_GET['id'])){
    $id = $_GET['id'];
}

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

Client Gửi Lên

Client Gửi Lên

Thực hành

Server nhận dữ liệu

3. So sánh giữa POST và GET$_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

var_dump( $_POST );
4 để kiểm tra có hay không nhé.

action=""
0

Thực hành:

Lưu ý quan trọng:

action=""
1

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

Client Gửi Lên

action=""
2

Thực hànhGửi Dữ Liệu" và nhìn thành quả của mình nhé.

Lưu ý quan trọng:

Để 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.

4. 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.