10/10/2018, 09:49

xin hỏi về phương thức post và get trong php

tuy có đọc sách nói về các phương thức này nhưng ko hiểu lắm nên mới hỏi 1 câu như vậy. mong mọi người giải thích rõ giúp mình với, mình vẫn ko phân biệt đc sự khác nhau giữa chúng.
có 1 ý này nữa, mình đọc 1 bài mẫu, khi lấy các thông tin từ form gửi đến thì dùng mảng $_POST["tên"] để lấy giá trị, nhưng cũng có 1 bài lại kiểm tra giá trị của nút Submit này được nhấn hay ko (trong trường hợp có nhiều nút submit chẳng hạn) thì lại dùng isset($_GET["tên nút submit"]). như vậy nghĩa là sao ạ?
phamduyvt viết 11:58 ngày 10/10/2018
hàm isset kiểm tra có khai báo biến hay chưa
exam: if(!isset($name)) echo "name is empty";
neverstop viết 12:03 ngày 10/10/2018
như vậy thì cả get và post đều dùng để gửi dữ liệu, chỉ có điều là post thì không cho phép nhìn thấy dữ liệu trên url, còn get thì cho phép nhìn thấy, hơn nữa còn có thể thay đổi url để gửi nữa.
mình nói như vậy có phải không nhỉ?
bọn họ lấy tên post với get làm mình cứ nghĩ 1 cái là lấy, 1 cái là gửi, cứ rối tung cả lên.
dungdeveloper viết 11:53 ngày 10/10/2018
Được gửi bởi phamduyvt
hàm isset kiểm tra có khai báo biến hay chưa
exam: if(!isset($name)) echo "name is empty";
Hàm isset không phải để kiểm tra có khai báo biến hay chưa đâu bạn ơi. Xem thêm ở đây nhé : http://www.php.net/manual/en/types.comparisons.php
amida viết 12:05 ngày 10/10/2018
http://www.php.net/manual/en/function.isset.php
Không phải kiểm tra khai báo thì làm gì nhỉ . That is, returns TRUE if var exists, FALSE otherwise.
nkkha viết 11:52 ngày 10/10/2018
theo tui thì như sau. Giả sử ta có mã:
$truong = $_POST['ten']
khi server thực hiện, nó sẽ lấy dữ liệu tại TextBox ten, dữ liệu dạng Text được truyền vào biến $truong.

$submit1 = $_GET['ten_submit'];
khi server xử lý, nó sẽ trả về 1 (true) cho biến $submit1, để xử lý theo yêu cầu. Và các biến khác (các nút submit khác) sẽ trả về giá trị 0 (false). Như vậy tùy theo nút submit bạn nhấp vào mà server sẽ chuyển đến một yêu cầu (request) khác nhau...
neverstop viết 11:55 ngày 10/10/2018
ừ, phương thức post mình cũng nghĩ như thế, cụ thể hơn thì thế này: khi nhập xong dữ liệu và gửi đi thì server sẽ lấy thông tin ở các thẻ trong form thông qua mảng $_POST[].
còn về phương thức get, server cũng lấy thông tin ở các thẻ trong form được, chỉ có điều dùng mảng $_GET[] thôi. ngoài ra ở phương thức get trình duyệt có thể gửi thông tin đến server mà ko cần qua các thẻ trong form mà qua trực tiếp url trên trình duyệt.

mình nghĩ vậy có đúng ko nhỉ? còn có điểm nào thiếu sót mong các bạn giúp đỡ. xin cảm ơn.
chimtrum viết 11:58 ngày 10/10/2018
Hạn chế của phương thức GET là chuỗi query bị hạn chế về chiều dài (bao nhiêu thì không nhớ rõ lắm).còn POST thì không.
nbminh viết 12:03 ngày 10/10/2018
Tại server, việc lấy thông tin của biến trên form thông qua $_GET hay $_POST tùy thuộc vào thuộc tính method của form.

<form action="" method="GET">
Dữ liệu sẽ được gửi lên server qua phương thức GET. Biến và giá trị của biến sẽ được gửi lên server thông qua URL. Người dùng có thể nhìn thấy tên biến và giá trị của biến đó trên URL. Có thể sửa bằng tay được tên biến và giá trị. Tại server mảng $_GET sẽ chứa các biến của form.

<form action="" method="POST">
Dữ liệu sẽ được gửi lên server qua phương thức POST. Tại server mảng $_POST sẽ chứa các biến của form.
neverstop viết 12:06 ngày 10/10/2018
cám ơn các bạn đã trả lời giúp mình.
Bài liên quan
0