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

Một phần của tài liệu giáo án php (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): (adsbygoogle = window.adsbygoogle || []).push({});

$_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['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 » I. Khái niệm hàm

Hàm (function), nguyên nghĩa tiếng Anh có nghĩa là chức năng.

Trong lập trình, ta có thể hiểu hàm là một đoạn chương trình được xây dựng để thực hiện một chức năng nào đó. Đoạn chương trình này chỉ cần phải viết duy nhất một lần, và có thể được sử dụng nhiều lần trong toàn bộ

chương trình.

Một hàm sẽ được xác định bởi tên hàm và các tham số đầu vào liên quan đến hàm đó. Thông thường, hàm sẽ trả về một kết quả nào đó.

Chúng ta có thể tưởng tượng theo sơ đồ sau:

Code:

Tham số đầu vào 1 | Tham số đầu vào 2 |

Tham số đầu vào 3 | ---> tên hàm --> kết quả trả về sau khi gọi hàm. .... |

Tham số đầu vào n |

Như vậy một hàm sẽ nhận các thông tin đầu vào, xử lý nó và trả về kết quả nào đó.

Trong PHP có rất nhiều hàm đã được xây dựng sẵn mà chúng ta chỉ việc đem ra sử dụng, như các hàm xử lý chuỗi, thời gian, xử lý tệp, thư mục...

Xét về bản chất, một ngôn ngữ lập trình chỉ có ba câu lệnh chính là gán, lặp và rẽ nhánh. Việc sắp xếp các câu lệnh như thế nào để cho ra một kết quả gọi là một thuật toán (các bước để giải một bài tóan, đã được đề cập ở những bài đầu tiên) hay giải thuật. Và một chương trình sẽ là sự kết hợp của giải thuật và các cấu trúc dữ liệu. Để hỗ trợ các chương trình xử lý một số tình huống nào đó, người ta sử dụng các hàm.

Các câu lệnh write của Pascal hay câu lệnh echo của PHP thực chất phải được gọi là các hàm chứ không phải là một câu lệnh.

Để giải thích rõ hơn khái niệm hàm, ta quay trở lại với "câu lệnh" echo quen thuộc:

Hàm echo(chuỗi) có tên là echo, tham số đầu vào là một chuỗi, và chức năng (kết quả mà nó trả về) là một dòng chữ (được lưu trong biến chuỗi) được trả về trình duyệt.

Re: Hàm trong PHP

« Reply #1 on: February 07, 2007, 01:44:38 AM »

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