Cookie và cách sử dụng Cookie

Một phần của tài liệu giáo trình php căn bản (Trang 25 - 28)

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:

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:

// 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: echo "<html><body>Xin chào lan gio vo tinh";

VD: Cách dùng sai:

// 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");

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 $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: $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.

Bài 11: Các thông tin khác liên quan đến trình duyệt và máy chủ.

« on: January 23, 2007, 01:19:48 AM »

Trong PHP, ngoài các thông tin trình duyệt gửi lên thông qua các con đường POST, GET, COOKIES, chúng ta cũng có thể thu được một số thông tin khác có liên quan đến trình duyệt cũng như các thông số liên quan đến máy chủ như: đường dẫn, địa chỉ IP, phiên bản... Các thông tin này được lưu trữ trong biến mảng $_SERVER (đối với các phiên bản mới) hoặc $HTTP_SERVER_VARS (đối với các phiên bản cũ hơn bản 4.1.0):

$_SERVER['PHP_SELF']: Tên file nằm trên thư mục gốc của website. Ví dụ: biến $_SERVER['PHP_SELF'] trong script đặt tại địa chỉ http://example.com/test.php/foo.bar sẽ là /test.php/foo.bar.

$_SERVER['SERVER_NAME']: Tên của máy chủ host, nơi mà đoạn script được thực thi. Nếu đoạn script này đang chạy trên một host ảo thì giá trị này sẽ trả về tên host ảo đó.

$_SERVER['SERVER_SOFTWARE']: Chuỗi định danh của máy chủ, thường được cấp trong phần header khi trả lời các yêu cầu từ máy khách.

$_SERVER['SERVER_PROTOCOL']: Tên và phiên bản của giao thức mà trang web yêu cầu. VD: 'HTTP/1.0'; $_SERVER['REQUEST_METHOD']: Loại yêu cầu được sử dụng để truy cập trang web. VD: 'GET', 'HEAD', 'POST', 'PUT'.

$_SERVER['QUERY_STRING']: Câu truy vấn (chứa các thông tin liên quan đến các biến và giá trị của phương thức GET.

$_SERVER['DOCUMENT_ROOT']: Thư mục gốc của website, nơi mà file script đang được thực thi. $_SERVER['HTTP_HOST']: Những nội dung liên quan đến Host header lấy từ yêu cầu hiện tại $_SERVER['REMOTE_ADDR']: Địa chỉ của trình duyệt, nơi người sử dụng đang duyệt web. $_SERVER['REMOTE_PORT']: Cổng được sử dụng trên máy khách (để kết nối tới web server). $_SERVER['SCRIPT_FILENAME']: Đường dẫn tuyệt đối của file chứa script đang chạy

$_SERVER['SERVER_PORT']: Cổng của máy chủ web được mở để truyền dữ liệu. Mặc định là cổng 80. $_SERVER['SERVER_SIGNATURE']: Chuỗi chứa phiên bản của máy chủ và tên host ảo (nếu được bật)

$_SERVER['PATH_TRANSLATED']: Đường dẫn file (không phải là thư mục gốc) dựa trên đường dẫn của đoạn script.

$_SERVER['SCRIPT_NAME']: Chứa đường dẫn của file script. Thường dùng để trỏ đến chính nó.

$_SERVER['REQUEST_URI']: Địa chỉ URI (Định danh đối với các tài nguyên mạng, là một dạng thức mở rộng của URL).

###GOOGLEADSN###

Hàm trong PHP

« on: February 07, 2007, 01:34:32 AM »

Một phần của tài liệu giáo trình php căn bản (Trang 25 - 28)