|
Using Cookies
Part:
1
2
3
4
(Continued from previous part...)
Persistent Cookies
There are two kinds of cookies: persistent cookies and temporary cookies.
A persistent cookie is stored in a file on your computer. It remains
there when you close Internet Explorer. The cookie can be read by the Web site
that created it when you visit that site again.
A temporary or session cookie is stored only for your current browsing session.
It is deleted from your computer when you close Internet Explorer.
The default behavior of setcookie(name,value) is to set a cookie as a temporary cookie.
To set a persistent cookie, we need to add another parameter to the setcookie() function
call as in the following syntax:
bool setcookie(string name, string value, int expire)
where "expire" specifies when this cookie should be expired. If the expiration time is a future
time, like 30 days from today, this cookie will be set as a persistent cookie. Note that "expire"
should be represented in number of seconds since the epoch. The best way to set "expire" is use
the time() function, which represents the current time in number of seconds since the epoch.
Example, 30 days from today can be expressed as "time()+60*60*24*30".
If "expire" is not given, a temporary cookie will be created.
To show you how to set a persistent cookie, and how the cookie is store in a file,
I wrote the following PHP script page, CookiePersisted.php:
<?php #CookiePersisted.php
# Copyright (c) 2005 by Dr. Herong Yang, http://www.herongyang.com/
#
$cookieName = "User";
$cookieValue = "Herong Yang";
$expiration = time()+60*60*24*30;
setcookie($cookieName, $cookieValue, $expiration);
print("<pre>\n");
print("Cookies added by the server:\n");
print(" $cookieName: $cookieValue\n");
print(" Expires at: $expiration\n");
print "</pre>\n";
?>
I opened this page with IE, I got:
Cookies added by the server:
User: Herong Yang
Expires at: 1134531525
To find out in which file this cookie is stored in my computer,
I clicked at IE "Tools" menu, selected "Internet Options...".
and clicked the "Settings..." button in the "Temporary Internet files" section of the "General" tab.
I saw where is my "Temporary Internet files folder". So I went to that folder,
and saw a cookie file named something like "Cookie:user@localhost/".
I double clicked on that file, and managed to open it in notepad:
User
Herong+Yang
localhost/
1024
3801469056
29753439
3934260416
29747404
*
Actually, I saw a lots of other cookie files created by other Web sites that I have visited in the past.
I deleted all of them.
Other Cookie Properties
A cookie also has two other properties:
1. "domain" - A property that defines the domain of Web servers to which this cookie should be made available.
Web browsers will send a cookie back to a Web server when the Web server matches its defined domain.
Web browsers will never send back a cookie to a domain other than its defined domain.
For example, if a cookie's domain is www.google.com, the browser will send back this cookie to the server
only when the browser is visiting www.google.com. The browser will never send back this cookie to www.yahoo.com.
To make a cookie available for all sub domains of a top level domain, set the domain property
to the top level domain name. For example, if a cookie's domain is set to ".google.com", this cookie will be
available to all google sub domains, like groups.google.com and gmail.google.com.
2."path" - A property that defines a Web server path to which this cookie should be made available.
Web browsers will send a cookie back to a Web server when the Web server matches its defined domain, and
the requested page matches its defined path. Web browsers will never send back a cookie to requested path
other than its defined path.
Note that the defined path also includes all its sub paths. For example, if a cookie's domain is "www.amazon.com",
and path is "/order/", then a browser will send back this cookie for requests like
"http://www.amazon.com/order/checkout.html", and "http://www.amazon.com/order/report/invoice.html".
But a browser should not send back this cookie for requests like "http://www.amazon.com/catelog/book.html".
(Continued on next part...)
Part:
1
2
3
4
|