0% found this document useful (0 votes)
54 views40 pages

Managing State Information

This document discusses different methods for maintaining state information in web applications using PHP and MySQL. It covers using hidden form fields, query strings, cookies, and sessions to save state data between page requests. Cookies allow storing information on the client side, while sessions use cookies or other methods to save data on the server side for a user's session. The document provides details on implementing each method, including syntax for functions like setcookie().

Uploaded by

tariqammar41
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views40 pages

Managing State Information

This document discusses different methods for maintaining state information in web applications using PHP and MySQL. It covers using hidden form fields, query strings, cookies, and sessions to save state data between page requests. Cookies allow storing information on the client side, while sessions use cookies or other methods to save data on the server side for a user's session. The document provides details on implementing each method, including syntax for functions like setcookie().

Uploaded by

tariqammar41
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 40

Chapter 10

Managing State Information

PHP Programming with MySQL


Objectives

• Learn about state information


• Use hidden form fields to save state information
• Use query strings to save state information
• Use cookies to save state information
• Use sessions to save state information

PHP Programming with MySQL 2


Understanding State Information
• Information about individual visits to a Web site
is called state information
• HTTP was originally designed to be stateless –
Web browsers store no persistent data about a
visit to a Web site
• Maintaining state means to store persistent
information about Web site visits with hidden
form fields, query strings, cookies, and sessions

PHP Programming with MySQL 3


Understanding State Information
(continued)
• Customize individual Web pages based on user
preferences
• Temporarily store information for a user as a
browser navigates within a multipart form
• Allow a user to create bookmarks for returning
to specific locations within a Web site
• Provide shopping carts that store order
information

PHP Programming with MySQL 4


Understanding State Information
(continued)
• Store user IDs and passwords
• Use counters to keep track of how many times
a user has visited a site
• The four tools for maintaining state information
with PHP are:
– Hidden form fields
– Query strings
– Cookies
– Sessions
PHP Programming with MySQL 5
Understanding State Information
(continued)

Figure 10-1 Skyward Aviation Frequent Flyer Web site page flow
PHP Programming with MySQL 6
Using Hidden Form Fields to Save
State Information
• Create hidden form fields with the <input>
element
• Hidden form fields temporarily store data that
needs to be sent to a server that a user does not
need to see
• Examples include the result of a calculation
• The syntax for creating hidden form fields is:
<input type=”hidden”>

PHP Programming with MySQL 7


Using Hidden Form Fields to Save
State Information (continued)
• Hidden form field attributes are name and value
• When submitting a form to a PHP script,
access the values submitted from the form with
the $_GET[] and $_POST[] autoglobals
• To pass form values from one PHP script to
another PHP script, store the values in hidden
form fields

PHP Programming with MySQL 8


Using Hidden Form Fields to Save
State Information (continued)
<form action="CourseListings.php" method="get">
<p><input type="submit" value="Register for Classes" />
<input type="hidden" name="diverID"
value="<?= $DiverID ?>" /></p>
</form>

PHP Programming with MySQL 9


Using Query Strings to Save State
Information
• A query string is a set of name=value pairs
appended to a target URL
• Consists of a single text string containing one or
more pieces of information
• Add a question mark (?) immediately after a
URL to pass information from one Web page to
another using a query string
• Followed by the query string containing the
information to preserve in name=value pairs

PHP Programming with MySQL 10


Using Query Strings to Save State
Information (continued)
• Separate individual name=value pairs within the
query string using ampersands (&)
• A question mark (?) and a query string are
automatically appended to the URL of a server-
side script for any forms that are submitted with
the GET method
<a href="http://www.URL.com/TargetPage.php?firstName=Don
&lastName=Gosselin&occupation=writer ">Link Text</a>

PHP Programming with MySQL 11


Using Query Strings to Save State
Information (continued)
echo "{$_GET['firstName']} {$_GET['lastName']}
is a {$_GET['occupation']}. ";

Figure 10-7 Output of the contents of a query string

PHP Programming with MySQL 12


Using Cookies to Save State
Information
• Query strings do not permanently maintain
state information
• After a Web page that reads a query string
closes, the query string is lost
• To store state information beyond the current
Web page session, Netscape created cookies
• Cookies, or magic cookies, are small pieces of
information about a user that are stored by a
Web server in text files on the user’s computer

PHP Programming with MySQL 13


Using Cookies to Save State
Information (continued)
• Temporary cookies remain available only for
the current browser session
• Persistent cookies remain available beyond the
current browser session and are stored in a text
file on a client computer
• Each individual server or domain can store only
20 cookies on a user’s computer
• Total cookies per browser cannot exceed 300
• The largest cookie size is 4 kilobytes
PHP Programming with MySQL 14
Creating Cookies
• The syntax for the setcookie() function is:
setcookie(name [,value ,expires, path, domain, secure])
• You must pass each of the arguments in the
order specified in the syntax
• To skip the value, path, and domain
arguments, specify an empty string as the
argument value
• To skip the expires and secure arguments,
specify 0 as the argument value

PHP Programming with MySQL 15


Creating Cookies (continued)
• Call the setcookie() function before sending
the Web browser any output, including white
space, HTML elements, or output from the
echo() or print() statements
• Users can choose whether to accept cookies
that a script attempts to write to their system
• A value of true is returned even if a user rejects
the cookie

PHP Programming with MySQL 16


Creating Cookies (continued)
• Cookies cannot include semicolons or other
special characters, such as commas or spaces,
that are transmitted between Web browsers and
Web servers using HTTP
• Cookies can include special characters when
created with PHP since encoding converts
special characters in a text string to their
corresponding hexadecimal ASCII value

PHP Programming with MySQL 17


The name and value Arguments
• Cookies created with only the name and value
arguments of the setcookie() function are
temporary cookies because they are available
for only the current browser session
<?php
setcookie(“firstName”, “Don”);
?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<title>Skyward Aviation</title>
...
PHP Programming with MySQL 18
The name and value Arguments
(continued)
• The setcookie() function can be called
multiple times to create additional cookies – as
long as the setcookie() statements come
before any other output on a Web page
setcookie("firstName", "Don");
setcookie("lastName", "Gosselin");
setcookie("occupation", "writer");

PHP Programming with MySQL 19


The expires Argument
• The expires argument determines how long a
cookie can remain on a client system before it is
deleted
• Cookies created without an expires argument
are available for only the current browser
session
• To specify a cookie’s expiration time, use PHP’s
time() function
setcookie(“firstName”, “Don”, time()+3600);

PHP Programming with MySQL 20


The path Argument
• The path argument determines the availability of a
cookie to other Web pages on a server
• Using the path argument allows cookies to be shared
across a server
• A cookie is available to all Web pages in a specified path
as well as all subdirectories in the specified path
setcookie(“firstName”, “Don”, time()+3600, “/marketing/”);

setcookie(“firstName”, “Don”, time()+3600, “/”);

PHP Programming with MySQL 21


The domain Argument
• The domain argument is used for sharing
cookies across multiple servers in the same
domain
• Cookies cannot be shared outside of a domain
setcookie(“firstName”, “Don”, time()+3600, “/”, “.gosselin.com”);

PHP Programming with MySQL 22


The secure Argument
• The secure argument indicates that a cookie
can only be transmitted across a secure Internet
connection using HTTPS or another security
protocol
• To use this argument, assign a value of 1 (for
true) or 0 (for false) as the last argument of the
setcookie() function
setcookie(“firstName”, “Don”, time()+3600, “/”, “.gosselin.com”, 1);

PHP Programming with MySQL 23


Reading Cookies
• Cookies that are available to the current Web
page are automatically assigned to the
$_COOKIE autoglobal
• Access each cookie by using the cookie name
as a key in the associative $_COOKIE[] array
echo $_COOKIE['firstName'];
• Newly created cookies are not available until
after the current Web page is reloaded

PHP Programming with MySQL 24


Reading Cookies (continued)
• To ensure that a cookie is set before you
attempt to use it, use the isset() function
setcookie("firstName", "Don");
setcookie("lastName", "Gosselin");
setcookie("occupation", "writer");
if (isset($_COOKIE['firstName'])
&& isset($_COOKIE['lastName'])
&& isset($_COOKIE['occupation']))
echo "{$_COOKIE['firstName']} {$_COOKIE['lastName']}
is a {$_COOKIE['occupation']}.";

PHP Programming with MySQL 25


Reading Cookies (continued)
• Use multidimensional array syntax to read
each cookie value
setcookie("professional[0]", "Don");
setcookie("professional[1]", "Gosselin");
setcookie("professional[2]", "writer");
if (isset($_COOKIE['professional']))
echo "{$_COOKIE['professional'][0]}
{$_COOKIE['professional'][1]} is a
{$_COOKIE['professional'][2]}.";

PHP Programming with MySQL 26


Deleting Cookies
• To delete a persistent cookie before the time
assigned to the expires argument elapses,
assign a new expiration value that is sometime
in the past
• Do this by subtracting any number of seconds
from the time() function
setcookie("firstName", "", time()-3600);
setcookie("lastName", "", time()-3600);
setcookie("occupation", "", time()-3600);

PHP Programming with MySQL 27


Using Sessions to Save State
Information
• Spyware gathers user information from a local
computer for marketing and advertising
purposes without the user’s knowledge
• A session refers to a period of activity when a
PHP script stores state information on a Web
server
• Sessions allow you to maintain state information
even when clients disable cookies in their Web
browsers

PHP Programming with MySQL 28


Starting a Session
• The session_start() function starts a new
session or continues an existing one
• The session_start() function generates a
unique session ID to identify the session
• A session ID is a random alphanumeric string
that looks something like:
7f39d7dd020773f115d753c71290e11f
• The session_start() function creates a text
file on the Web server that is the same name as
the session ID, preceded by sess_
PHP Programming with MySQL 29
Starting a Session (continued)
• Session ID text files are stored in the Web
server directory specified by the
session.save_path directive in your php.ini
configuration file
• The session_start() function does not
accept any functions, nor does it return a value
that you can use in your script
<?php
session_start();
...
PHP Programming with MySQL 30
Starting a Session (continued)
• You must call the session_start() function
before you send the Web browser any output
• If a client’s Web browser is configured to accept
cookies, the session ID is assigned to a
temporary cookie named PHPSESSID
• Pass the session ID as a query string or hidden
form field to any Web pages that are called as
part of the current session

PHP Programming with MySQL 31


Starting a Session (continued)
<?php
session_start();
...
?>
<p><a href='<?php echo "Occupation.php?PHPSESSID="
. session_id() ?>'>Occupation</a></p>

PHP Programming with MySQL 32


Working with Session Variables
• Session state information is stored in the
$_SESSION autoglobal
• When the session_start() function is called,
PHP either initializes a new $_SESSION
autoglobal or retrieves any variables for the
current session (based on the session ID) into
the $_SESSION autoglobal

PHP Programming with MySQL 33


Working with Session Variables
(continued)
<?php
session_start();
session_set_cookie_params(3600);
$_SESSION['firstName'] = "Don";
$_SESSION['lastName'] = "Gosselin";
$_SESSION['occupation'] = "writer";
?>
<p><a href='<?php echo "Occupation.php?"
. session_id() ?>'>Occupation</a></p>

PHP Programming with MySQL 34


Working with Session Variables
(continued)
• Use the isset() function to ensure that a
session variable is set before you attempt to
use it
<?php
session_start();
if (isset($_SESSION['firstName']) &&
isset($_SESSION['lastName'])
&& isset($_SESSION['occupation']))
echo "<p>" . $_SESSION['firstName'] . " "
. $_SESSION['lastName'] . " is a "
. $_SESSION['occupation'] . "</p>";
?>

PHP Programming with MySQL 35


Deleting a Session
• To delete a session manually, perform the
following steps:
1. Execute the session_start() function
2. Use the array() construct to reinitialize the
$_SESSION autoglobal
3. Use the session_destroy() function to
delete the session

PHP Programming with MySQL 36


Deleting a Session (continued)
<?php
session_start();
$_SESSION = array();
session_destroy();
?>
4. Modify the Registration/Log In page so it
deletes any existing user sessions whenever
a user opens it

PHP Programming with MySQL 37


Summary

• Information about individual visits to a Web site


is called state information
• Maintaining state means to store persistent
information about Web site visits with hidden
form fields, query strings, cookies, and sessions
• The four tools for maintaining state information
with PHP are: hidden form fields, query strings,
cookies, and sessions
• A query string is a set of name=value pairs
appended to a target URL
PHP Programming with MySQL 38
Summary (continued)
• Cookies, or magic cookies, are small pieces of
information about a user that are stored by a
Web server in text files on the user’s computer
• Cookies cannot include semicolons or other
special characters, such as commas or spaces,
that are transmitted between Web browsers and
Web servers using HTTP but can using PHP
• The path argument determines the availability
of a cookie to other Web pages on a server

PHP Programming with MySQL 39


Summary (continued)

• The domain argument is used for sharing


cookies across multiple servers in the same
domain
• The secure argument indicates that a cookie
can only be transmitted across a secure Internet
connection using HTTPS or another security
protocol
• A session refers to a period of activity when a
PHP script stores state information on a Web
server
PHP Programming with MySQL 40

You might also like