Setting Cookies
The world wide web is stateless, which means it remembers nothing about you. The usual way of keeping track of user preferences is to use cookies. If you are setting a cookie, you must do it before the headers are written, so must be set at the very start of the document. Cookies are set in PHP using the setcookie function.
setcookie(name, value, expire, path, domain);
The cookies are not actually set in the page where they are written, but will be set in any subsequent pages. The following example sets a userName cookie, that expires after one hour.
<?php
// Set a cookie that expires in one hour
setcookie("userName", $name, time()+3600);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>PHP Cookies</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<p>
A cookie was set on this page, and will be active when
the client has sent the cookie back to the server.
</p>
</body>
</html>
Reading Cookies
When a cookie is set, PHP uses the cookie name as a variable with the appropriate value. Accessing a cookie is just a simple case of referring to the cookie name as a variable. You can use the isset function to determine if a cookie has been set. The following example tests if the userName cookie has been set, and prints an appropriate message.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Accessing a Cookie</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<p>
<?php
if (isset($userName))
print "Welcome " . $userName . "<br>";
else
print "You are not logged in <br>";
?>
</p>
</body>
</html>
Comments