Cách lấy thông tin từ trình duyệt: GET, POST và COOKIE
Trang 1 trong tổng số 1 trang
Cách lấy thông tin từ trình duyệt: GET, POST và COOKIE
Dữ liệu của người dùng từ trình duyệt sẽ được gửi lên máy chủ dưới dạng từng cặp biến=giá_trị và có thể đi theo 3 con đường khác nhau. Tuỳ theo từng con đường cụ thể, trên máy chủ ta cũng có các cách khác nhau để lấy dữ liệu được gửi lên.. 3 con đường đó là: GET, POST và COOKIES. Vậy GET, POST và COKIES là gì?
1. Truyền dữ liệu thông qua phương thức GET
Dữ liệu gửi từ trình duyệt lên qua phương thức GET là phần dữ liệu được nhập trực tiếp theo sau địa chỉ URL do trình duyệt gửi lên, được phân biệt với tên file script bằng dấu hỏi chấm (?). Ví dụ, khi ta gõ vào trình duyệt địa chỉ URL sau:
Chúng ta cũng có thể đưa lên nhiều cặp biết=giá_trị bằng cách phân cách chúng bởi dấu &:
Khi trình duyệt gửi các thông tin này lên máy chủ, PHP sẽ tự động sinh ra một mảng có tên là $HTTP_GET_VARS[] để nắm giữ tất cả các cặp biến và giá trị đó, trong đó, chỉ số của mảng chính là một chuỗi mang tên của tên biến và giá trị của chỉ số đó chính là giá trị của biến do trình duyệt gửi lên. Ví dụ, với địa chỉ URL sau:
PHP Code:
Hãy xem kết quả hiển thị trên màn hình, sau đó thay chữ sinh bằng một cái tên gì đó xem kết quả ra sao.
II. Phương thức POST
Post là phần dữ liệu được gửi qua các form HTML có method ="POST" (xin xem lại bài về HTML).
Để lấy các biến theo kiểu POST, PHP sẽ tự động sinh ra mảng có tên là $HTTP_POST_VARS[]. Mảng này có chỉ số chính là tên của các phần tử trong form (các thẻ input, select... có thuộc tính name) và giá trị là nội dung giá trị do người sử dụng nhập vào các phần tử có tên tương ứng. Chẳng hạn với mẫu biểu HTML sau:
PHP Code:
Sau khi lấy được các giá trị này rồi, các bạn có thể thoải mái sử dụng.
Đây là ví dụ một chương trình giải phương trình bậc nhất (cho nó đơn giản )
PHP Code:
III Cookie và cách sử dụng Cookie
Cookies là một phần dữ liệu được lưu trên máy khách. Mỗi khi máy khách gửi một yêu cầu tới máy chủ nào đó, thì nó sẽ gửi phần dữ liệu được lưu trong cookie tương ứng với máy chủ đó.
Trong Cookie có một số thông số sau:
- Địa chỉ URL mà trình duyệt sẽ gửi cookie tới
- Thời gian hết hạn của cookie
- Các cặp biến:giá trị được lưu trữ liên tục
Người ta thường dùng cookies để lưu trữ các thông tin có liên quan đến nhiều "phiên" làm việc khác nhau. Vi giao thức HTTP là giao thức không lưu trạng thái (Mỗi khi xử lý xong một yêu cầu từ máy khách là nó phủi tay tự ngắt kết nối luôn và chẳng thèm quan tâm đến máy khách làm gì ), nên cookies được sinh ra để làm nhiệm vụ lưu trữ một số biến trạng thái để khắc phục nhược điểm này.
Khác với dữ liệu gửi từ form (Post hay Get) thì cookies sẽ được trình duyệt tự động gửi đi theo mỗi lần truy cập lên máy chủ. Trong quá trình làm việc, cookie có thể bị thay đổi giá trị. Cookie sẽ bị vô hiệu hoá nếu cửa sổ trình duyệt điều khiển cookie đóng lại và cookie hết thời gian có hiệu lực. Theo mặc định, thời gian "sống" của cookies là tồn tại cho đến khi cửa sổ trình duyệt sử dụng cookies bị đóng. Tuy nhiên người ta có thể thiết lập tham số thời gian để cookie có thể sống lâu hơn (6 tháng chẳng hạn). Ví dụ như chế độ Remember ID & Password của 1 số trang web.
Cách ghi thông tin vào cookie và gửi xuống trình duyệt
Trong PHP, để gửi cookie xuống trình duyệt, ta có thể sử dụng hàm setcookie:
PHP Code:
setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
Trong đó:
- string name: Chuỗi mang tên của cookie
- string value: Chuỗi mang giá trị của cookie tương ứng với tên đã cho
- int expire: Thời gian hết hạn của cookie
- string path: Đường dẫn của cookie (đến 1 thư mục nào đó trên máy chủ. Tham số này cho biết cookie sẽ chỉ được truyền đi nếu như trang web mà trình duyệt yêu cầu nằm trên thư mục đó, thay vì lúc nào cũng phải gửi đi tới bất kỳ khu vực nào).
- string domain: cookie này sẽ được gửi tới domain nào?
- int secure: Chế độ bảo mật.
Các tham số trong cặp dấu ngoặc vuông là tuỳ chọn
Ví dụ: setcookie ("ten_truy_cap","lan gio vo tinh");
Chú ý: Hàm setcookie phải được gọi trước khi bạn gửi bất kỳ một nội dung nào xuống trình duyệt:
VD: Cách dùng đúng:
PHP Code:
Chi tiết hơn các bạn có thể xem trong PHP Manual.
1. Truyền dữ liệu thông qua phương thức GET
Dữ liệu gửi từ trình duyệt lên qua phương thức GET là phần dữ liệu được nhập trực tiếp theo sau địa chỉ URL do trình duyệt gửi lên, được phân biệt với tên file script bằng dấu hỏi chấm (?). Ví dụ, khi ta gõ vào trình duyệt địa chỉ URL sau:
- Code:
http://sinhvienit.net/topic.php?TOPIC_ID=161
Chúng ta cũng có thể đưa lên nhiều cặp biết=giá_trị bằng cách phân cách chúng bởi dấu &:
- Code:
http://sinhvienit.net/index.php?meth...61&FORUM_ID=20
Khi trình duyệt gửi các thông tin này lên máy chủ, PHP sẽ tự động sinh ra một mảng có tên là $HTTP_GET_VARS[] để nắm giữ tất cả các cặp biến và giá trị đó, trong đó, chỉ số của mảng chính là một chuỗi mang tên của tên biến và giá trị của chỉ số đó chính là giá trị của biến do trình duyệt gửi lên. Ví dụ, với địa chỉ URL sau:
- Code:
http://sinhvienit.net/post.php?method...61&FORUM_ID=20
- Code:
PHP Code:
$HTTP_GET_VARS["method"] = "Reply" // tương ứng với cặp method=Reply
$HTTP_GET_VARS["TOPIC_ID"] = 161 // tương ứng với cặp TOPIC_ID=161
$HTTP_GET_VARS["FORUM_ID"] = 20 // tương ứng với cặp FORUM_ID=20
PHP Code:
- Code:
<?
// Hàm isset được sử dụng để kiểm tra xem một biến đã được thiết lập hay chưa
if (isset ($HTTP_GET_VARS["user"]))
{
if ($HTTP_GET_VARS["user"]=="sinh")
{
echo "Hello, my boss. Good morning!";
}
else
{
echo "Hello, " . $HTTP_GET_VARS["user"] . ". Good morning!";
}
}
else
{
echo "Hello, guest. How do you do?";
}
?>
- Code:
http://localhost/welcome.php?user=sinh
Hãy xem kết quả hiển thị trên màn hình, sau đó thay chữ sinh bằng một cái tên gì đó xem kết quả ra sao.
II. Phương thức POST
Post là phần dữ liệu được gửi qua các form HTML có method ="POST" (xin xem lại bài về HTML).
Để lấy các biến theo kiểu POST, PHP sẽ tự động sinh ra mảng có tên là $HTTP_POST_VARS[]. Mảng này có chỉ số chính là tên của các phần tử trong form (các thẻ input, select... có thuộc tính name) và giá trị là nội dung giá trị do người sử dụng nhập vào các phần tử có tên tương ứng. Chẳng hạn với mẫu biểu HTML sau:
PHP Code:
- Code:
<form method="POST">
<p>
User Name:<input type="text" name="T1" size="20"> </p>
<p>
Password:
<input type="password" name="T2" size="20"></p>
<p>Sex: <Select name ="sex">
<option value =1>Male </option>
<option value =0>Female </option>
</select>
</p>
<input type="submit" value="Gui di" name="B1">
</form>
Khi người dùng nhập user name (giả sử là Sinh), password (giả sử là 123456) và chọn sex là Male, khi đó, mảng $HTTP_POST_VARS sẽ có các phần tử sau:
PHP Code:
$HTTP_POST_VARS["T1"] = Sinh
$HTTP_POST_VARS["T2"] = 123456
$HTTP_POST_VARS["sex"] = 1
Sau khi lấy được các giá trị này rồi, các bạn có thể thoải mái sử dụng.
Đây là ví dụ một chương trình giải phương trình bậc nhất (cho nó đơn giản )
PHP Code:
- Code:
<form method="POST">
<p style="margin-top: 0; margin-bottom: 0">
Nhập a:<input type="text" name="a" size="20"></p>
<p style="margin-top: 0; margin-bottom: 0">Nhập b:<input type="text" name="b" size="20"></p>
<p style="margin-top: 0; margin-bottom: 0">
<input type="submit" value="Tính" name="B1"></p>
</form>
<?php
$a=0;
$b=0;
if (isset ($HTTP_POST_VARS["a"]))
{
$a =$HTTP_POST_VARS["a"];
}
if (isset ($HTTP_POST_VARS["b"]))
{
$b =$HTTP_POST_VARS["b"];
}
if ($a<>0)
{
echo "<BR>Nghiem la: " . $b/$a;Chỗ này là -$b/$a
}
else
{
if ($b==0)
{
echo "<BR>Vo so nghiem";
}
else
{
echo "<BR>Vo nghiem";
}
}
?>
III Cookie và cách sử dụng Cookie
Cookies là một phần dữ liệu được lưu trên máy khách. Mỗi khi máy khách gửi một yêu cầu tới máy chủ nào đó, thì nó sẽ gửi phần dữ liệu được lưu trong cookie tương ứng với máy chủ đó.
Trong Cookie có một số thông số sau:
- Địa chỉ URL mà trình duyệt sẽ gửi cookie tới
- Thời gian hết hạn của cookie
- Các cặp biến:giá trị được lưu trữ liên tục
Người ta thường dùng cookies để lưu trữ các thông tin có liên quan đến nhiều "phiên" làm việc khác nhau. Vi giao thức HTTP là giao thức không lưu trạng thái (Mỗi khi xử lý xong một yêu cầu từ máy khách là nó phủi tay tự ngắt kết nối luôn và chẳng thèm quan tâm đến máy khách làm gì ), nên cookies được sinh ra để làm nhiệm vụ lưu trữ một số biến trạng thái để khắc phục nhược điểm này.
Khác với dữ liệu gửi từ form (Post hay Get) thì cookies sẽ được trình duyệt tự động gửi đi theo mỗi lần truy cập lên máy chủ. Trong quá trình làm việc, cookie có thể bị thay đổi giá trị. Cookie sẽ bị vô hiệu hoá nếu cửa sổ trình duyệt điều khiển cookie đóng lại và cookie hết thời gian có hiệu lực. Theo mặc định, thời gian "sống" của cookies là tồn tại cho đến khi cửa sổ trình duyệt sử dụng cookies bị đóng. Tuy nhiên người ta có thể thiết lập tham số thời gian để cookie có thể sống lâu hơn (6 tháng chẳng hạn). Ví dụ như chế độ Remember ID & Password của 1 số trang web.
Cách ghi thông tin vào cookie và gửi xuống trình duyệt
Trong PHP, để gửi cookie xuống trình duyệt, ta có thể sử dụng hàm setcookie:
PHP Code:
setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
Trong đó:
- string name: Chuỗi mang tên của cookie
- string value: Chuỗi mang giá trị của cookie tương ứng với tên đã cho
- int expire: Thời gian hết hạn của cookie
- string path: Đường dẫn của cookie (đến 1 thư mục nào đó trên máy chủ. Tham số này cho biết cookie sẽ chỉ được truyền đi nếu như trang web mà trình duyệt yêu cầu nằm trên thư mục đó, thay vì lúc nào cũng phải gửi đi tới bất kỳ khu vực nào).
- string domain: cookie này sẽ được gửi tới domain nào?
- int secure: Chế độ bảo mật.
Các tham số trong cặp dấu ngoặc vuông là tuỳ chọn
Ví dụ: setcookie ("ten_truy_cap","lan gio vo tinh");
Chú ý: Hàm setcookie phải được gọi trước khi bạn gửi bất kỳ một nội dung nào xuống trình duyệt:
VD: Cách dùng đúng:
PHP Code:
- Code:
// Thực hiện các câu lệnh nào đó, nhưng không được phép gửi gì xuống trình duyệt
setcookie ("ten_truy_cap","lan gio vo tinh");
setcookie ("password","thumotti");
// Thực hiện các câu lệnh tiếp theo, có thể xuất dữ liệu xuống trình duyệt:
PHP Code:
echo "<html><body>Xin chào lan gio vo tinh";
VD: Cách dùng sai:
PHP Code:
// Thực hiện các câu lệnh nào đó
echo ("cái gì đó");
setcookie ("ten_truy_cap","lan gio vo tinh");
setcookie ("password","thumotti");
// các câu lệnh khác.
Ví dụ trên sai vì bạn đã trót gửi dòng "cái gì đó" xuống trình duyệt trước khi gọi hàm setcookie.
Cách lấy dữ liệu lưu trong cookie:
Để lấy dữ liệu đã lưu trong cookies do trình duyệt gửi lên, ta có thể dùng mảng PHP Code:
PHP Code:
$HTTP_COOKIE_VARS["tên_cookie"]
Chẳng hạn, với câu lệnh setcookie ở trên, sau khi trình duyệt gửi lên, ta sẽ có 2 biến sau:
PHP Code:
$HTTP_COOKIE_VARS["ten_truy_cap"] // chứa giá trị "lan gio vo tinh"
$HTTP_COOKIE_VARS["password"] // chứa giá trị "thumotti".
Chi tiết hơn các bạn có thể xem trong PHP Manual.
shark92- Tổng số bài gửi : 3
Join date : 23/10/2014
Similar topics
» XEM TỬ VI ONLINE CÁCH NẮM TAY ĐỂ ĐOÁN TÍNH CÁCH BẠN
» Hệ thống GSM
» Thông tin 43" H4500
» Mất thị trường truyền thống và "cú ngã ngựa" của Doanh nghiệp
» Quy trình làm đệm lót nền chuồng gà
» Hệ thống GSM
» Thông tin 43" H4500
» Mất thị trường truyền thống và "cú ngã ngựa" của Doanh nghiệp
» Quy trình làm đệm lót nền chuồng gà
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|