477
Next
Further Reading
A lot of reading material is available online.If you’re having trouble with the image
functions,it sometimes helps to look at the source documentation for GD because the
PHP functions are wrappers for this library.The GD documentation is available at
http://www.boutell.com/gd/.
Remember,though, the PHP version of GD2 is a fork of the main library,so some
details will vary.
You can also find some excellent tutorials on particular types of graph applications,
particularly at Zend and Devshed at http://www.zend.com and http://devshed.com,
respectively.
The bar chart application in this chapter was inspired by the dynamic bar graph script
written by Steve Maranda,available from Devshed.
Next
In the next chapter,we tackle PHP’s handy session control functionality.
Pdf form save - C# PDF Field Edit Library: insert, delete, update pdf form field in C#.net, ASP.NET, MVC, Ajax, WPF
Online C# Tutorial to Insert, Delete and Update Fields in PDF Document
add text fields to pdf; create a pdf form that can be filled out
Pdf form save - VB.NET PDF Field Edit library: insert, delete, update pdf form field in vb.net, ASP.NET, MVC, Ajax, WPF
How to Insert, Delete and Update Fields in PDF Document with VB.NET Demo Code
pdf create fillable form; change font size in pdf fillable form
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
Merge Microsoft Office Word, Excel and PowerPoint data to PDF form. Append one PDF file to the end of another and save to a single PDF file.
acrobat create pdf form; add print button to pdf form
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
to extract single or multiple pages from adobe PDF file and save into a The portable document format, known as PDF document, is a widely-used form of file
add submit button to pdf form; create a fillable pdf form from a word document
22
Using Session Control in PHP
I
NTHIS CHAPTER
,
WE DISCUSS THE SESSION
control functionality in PHP.
Key topics covered in this chapter include
n
What session control is
n
Cookies
n
Steps in setting up a session
n
Session variables
n
Sessions and authentication
What Session Control Is
You might have heard people say that “HTTP is a stateless protocol.”This means that the
protocol has no built-in way of maintaining state between two transactions.When a user
requests one page,followed by another,HTTP does not provide a way for you to tell
that both requests came from the same user.
The idea of session control is to be able to track a user during a single session on a
website.If you can do this,you can easily support logging in a user and showing content
according to her authorization level or personal preferences.You can track the user’s
behavior, and you can implement shopping carts.
Since version 4,PHP has included native session control functions.The approach to
session control has changed slightly with the introduction of the superglobal variables;
the 
$_SESSION
superglobal is now available for use.
Understanding Basic Session Functionality
Sessions in PHP are driven by a unique session ID,a cryptographically random number.
This session ID is generated by PHP and stored on the client side for the lifetime of a
session.It can be either stored on a user’s computer in a cookie or passed along through
URLs.
VB.NET Image: How to Save Image & Print Image Using VB.NET
printing multi-page document files, like PDF and Word is used to illustrate how to save a sample RE__Test Public Partial Class Form1 Inherits Form Public Sub New
pdf editable fields; add attachment to pdf form
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
this RasterEdge XDoc.PDF SDK, you can simply delete a single page from a PDF document using VB.NET or remove any page from a PDF document and save to local
pdf add signature field; pdf form creator
480
Chapter 22 Using Session Control in PHP
The session ID acts as a key that allows you to register particular variables as so-called
session variables.The contents of these variables are stored at the server.The session ID is
the only information visible at the client side.If,at the time of a particular connection
to your site,the session ID is visible either through a cookie or the URL,you can access
the session variables stored on the server for that session.By default, the session variables
are stored in flat files on the server.(You can change this to use a database if you are
willing to write your own functions;you’ll learn more on this topic in the section
“Configuring Session Control.”)
You have probably used websites that store a session ID in the URL.If your URL
contains a string of random-looking data,it is likely to be some form of session control.
Cookies are a different solution to the problem of preserving state across a number of
transactions while still having a clean-looking URL.
What Is a Cookie?
A cookie is a small piece of information that scripts can store on a client-side machine.
You can set a cookie on a user’s machine by sending an HTTP header containing data
in the following format:
Set-Cookie: NAME=VALUE; [expires=DATE;] [path=PATH;]
[domain=DOMAIN_NAME;] [secure]
This creates a cookie called 
NAME
with the value 
VALUE
.The other parameters are all
optional.The 
expires
field sets a date beyond which the cookie is no longer relevant.
(Note that if no expiry date is set,the cookie is effectively permanent unless you or the
user manually delete it.) Together,the 
path
and 
domain
can be used to specify the URL
or URLs for which the cookie is relevant.The 
secure
keyword means that the cookie
will not be sent over a plain HTTP connection.
When a browser connects to an URL,it first searches the cookies stored locally.If
any of them are relevant to the URL being connected to,they will be transmitted back
to the server.
Setting Cookies from PHP
You can manually set cookies in PHP using the 
setcookie()
function.It has the 
following prototype:
bool setcookie (string name [, string value [, int expire [, string path
[, string domain [, int secure]]]]])
The parameters correspond exactly to the ones in the 
Set-Cookie
header mentioned
previously.
If you set a cookie as
setcookie (‘mycookie’, ‘value’);
C# PDF Convert to Tiff SDK: Convert PDF to tiff images in C#.net
Description: Convert to DOCX/TIFF with specified zoom value and save it into stream. Parameters: zoomValue, The magnification of the original PDF page size.
create a fillable pdf form online; adding an image to a pdf form
C# Create PDF from Tiff Library to convert tif images to PDF in C#
Description: Convert to PDF and save it on the disk. Parameters: Name, Description, Valid Value. Description: Convert to PDF and save it into stream. Parameters:
adding text field to pdf; create a pdf form online
481
Understanding Basic Session Functionality
when the user visits the next page in your site (or reloads the current page), you will
have access to the cookie via either 
$_COOKIE[‘mycookie’]
or
$HTTP_COOKIE_VARS[“mycookie”]
.(Or,if you have 
register_globals
turned on, you
will have access directly as 
$mycookie
.)
You can delete a cookie by calling 
setcookie()
again with the same cookie name
and an expiry time in the past.You can also set a cookie manually via the 
header()
function and the cookie syntax given previously.One tip is that cookie headers must be
sent before any other headers;otherwise, they will not work. (This is a cookie limitation
rather than a PHP limitation.)
Using Cookies with Sessions
Cookies have some associated problems:Some browsers do not accept cookies,and some
users might have disabled cookies in their browsers.This is one of the reasons PHP ses-
sions use a dual cookie/URL method. (We discuss this method shortly.)
When you are using PHP sessions,you do not have to manually set cookies.The ses-
sion functions take care of this task for you.
You can use the function 
session_get_cookie_params()
to see the contents of the
cookie set by session control. It returns an array containing the elements 
lifetime
,
path
,
domain
,and 
secure
.
You can also use
session_set_cookie_params($lifetime, $path, $domain [, $secure]);
to set the session cookie parameters.
If you want to read more about cookies,you can consult the cookie specification on
Netscape’s site:
http://wp.netscape.com/newsref/std/cookie_spec.html
(You can ignore the fact that this document calls itself a “preliminary specification”;it’s
been that way since 1995 and is as close to a standard as a document could be without
actually being called a standard!)
Storing the Session ID
PHP uses cookies by default with sessions.If possible,a cookie will be set to store the
session ID.
The other method it can use is adding the session ID to the URL.You can set this to
happen automatically if you set the 
session.use_trans_sid
directive in the 
php.ini
file.It is off by default.
Alternatively,you can manually embed the session ID in links so that it is passed
along.The session ID is stored in the constant SID.To pass it along manually,you add it
to the end of a link similar to a 
GET
parameter:
<A HREF=”link.php?<?php echo strip_tags(SID); ?>”>
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
key. Quick to remove watermark and save PDF text, image, table, hyperlink and bookmark to Word without losing format. Powerful components
change pdf to fillable form; adding text to a pdf form
C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF
Description: Convert to PDF/TIFF and save it on the disk. Parameters: Description: Convert to PDF/TIFF and save it into stream. Parameters:
pdf form save in reader; adding signature to pdf form
482
Chapter 22 Using Session Control in PHP
(The 
strip_tags()
function is used here to avoid cross-site scripting attacks.)
Compiling with 
--enable-trans-sid
is generally easier, however.
Implementing Simple Sessions
The basic steps of using sessions are
n
Starting a session
n
Registering session variables
n
Using session variables
n
Deregistering variables and destroying the session
Note that these steps don’t necessarily all happen in the same script,and some of them
happen in multiple scripts.Let’s examine each of these steps in turn.
Starting a Session
Before you can use session functionality,you need to actually begin a session.There are
two ways you can do this.
The first,and simplest,is to begin a script with a call to the 
session_start()
function:
session_start();
This function checks to see whether there is already a current session.If not,it will
essentially create one, providing access to the superglobal 
$_SESSION
array.If a session
already exists,
session_start()
loads the registered session variables so that you can use
them.
It’s a good idea to call 
session_start()
at the start of all your scripts that use sessions.
The second way you can begin a session is to set PHP to start one automatically
when someone comes to your site.You can do this by using the 
session.auto_start
option in your 
php.ini
file;we look at this approach when we discuss configuration.
This method has one big disadvantage:With 
auto_start
enabled, you cannot use
objects as session variables.
Registering Session Variables
The way you register session variables has recently changed in PHP.Session variables
have been stored in the superglobal array 
$_SESSION
since PHP 4.1, and also in the
older 
$HTTP_SESSION_VARS
.We recommend you use 
$_SESSION
.To create a session vari-
able,you simply set an element in this array,as follows:
$_SESSION[‘myvar’] = 5;
If you are using an older version of PHP, for a variable to be tracked from one script to
another,you would have registered it with a call to 
session_register()
.This use is
now deprecated.
C# Create PDF from Excel Library to convert xlsx, xls to PDF in C#
Description: Convert to PDF/TIFF and save it on the disk. Parameters: Description: Convert to PDF/TIFF and save it into stream. Parameters:
adding form fields to pdf files; android edit pdf forms
C# Create PDF from Word Library to convert docx, doc to PDF in C#.
Description: Convert to PDF/TIFF and save it on the disk. Parameters: Description: Convert to PDF/TIFF and save it into stream. Parameters:
chrome pdf save form data; can save pdf form data
483
Creating a Simple Session Example
The session variable you have just created will be tracked until the session ends or
until you manually unset it.
Using Session Variables
To bring session variables into scope so that they can be used, you must first start a ses-
sion using 
session_start()
.You can then access the variable via the 
$_SESSION
super-
global array—for example,as 
$_SESSION[‘myvar’]
.
When you are using an object as a session variable,it is important that you include
the class definition before calling 
session_start()
to reload the session variables.This
way, PHP knows how to reconstruct the session object.
If you have 
register_globals
turned on, you can access session variables via their
short form names—for example,
$myvar
—but this approach is not recommended.If you
do have 
register_globals
on,bear in mind that a session variable cannot be overrid-
den by 
GET
or 
POST
data,which is a good security feature, but something to bear in
mind when you’re coding.
On the other hand,you need to be careful when checking whether session variables
have been set (via,say,
isset()
or 
empty()
). Remember that variables can be set by the
user via 
GET
or 
POST
.You can check a variable to see whether it is a registered session
variable by checking in 
$_SESSION
.
You can check this directly using the following,for example:
if (isset($_SESSION[‘myvar’])) ...
Unsetting Variables and Destroying the Session
When you are finished with a session variable,you can unset it.You can do this directly
by unsetting the appropriate element of the 
$_SESSION
array, as in this example:
unset($_SESSION[‘myvar’]);
Note that the use of 
session_unregister()
and 
session_unset()
is no longer
required and is not recommended.These functions were used prior to the introduction
of 
$_SESSION
.
You should not try to unset the whole 
$_SESSION
array because doing so will effec-
tively disable sessions.To unset all the session variables at once,use
$_SESSION = array();
When you are finished with a session, you should first unset all the variables and 
then call
session_destroy();
to clean up the session ID.
484
Chapter 22 Using Session Control in PHP
Creating a Simple Session Example
Some of this discussion might seem abstract,so let’s look at an example.Here,you’ll
implement a set of three pages.
On the first page, start a session and create the variable 
$_SESSION[‘sess_var’]
.The
code to do this is shown in Listing 22.1.
Listing 22.1 page1.php—Starting a Session and Creating a Session Variable
<?php
session_start();
$_SESSION[‘sess_var’] = “Hello world!”;
echo ‘The content of $_SESSION[\’sess_var\’] is ‘
.$_SESSION[‘sess_var’].’<br />’;
?>
<a href=”page2.php”>Next page</a>
This script creates the variable and sets its value.The output of this script is shown in
Figure 22.1.
Figure 22.1 Initial value of the session variable shown by 
page1.php
.
The final value of the variable on the page is the one that will be available on subsequent
pages.At the end of the script,the session variable is serialized,or frozen,until it is
reloaded via the next call to 
session_start()
.
You can therefore begin the next script by calling 
session_start()
.This script is
shown in Listing 22.2.
485
Creating a Simple Session Example
Listing 22.2 page2.php—Accessing a Session Variable and Unsetting It
<?php
session_start();
echo ‘The content of $_SESSION[\’sess_var\’] is ‘
.$_SESSION[‘sess_var’].’<br />’;
unset($_SESSION[‘sess_var’]);
?>
<a href=”page3.php”>Next page</a>
After you call 
session_start()
,the variable 
$_SESSION [‘sess_var’]
is available with
its previously stored value,as you can see in Figure 22.2.
Figure 22.2 The value of the session variable is passed along via the session
ID to 
page2.php
.
After you have used the variable,you unset it.The session still exists, but the variable 
$_SESSIONx[‘sess_var’]
no longer exists.
Finally,you pass along to 
page3.php
,the final script in the example.The code for this
script is shown in Listing 22.3.
Listing 22.3 page3.php—Ending the Session
<?php
session_start();
echo ‘The content of $_SESSION[\’sess_var\’] is ‘
.$_SESSION[‘sess_var’].’<br />’;
session_destroy();
?>
486
Chapter 22 Using Session Control in PHP
Figure 22.3 The session variable is no longer available.
With some PHP versions prior to 4.3,you might encounter a bug when trying to unset
elements of 
$HTTP_SESSION_VARS
or 
$_SESSION
.If you find that you are unable to unset
elements (that is,they stay set),you can revert to using 
session_unregister()
to clear
these variables.
You finish by calling 
session_destroy()
to dispose of the session ID.
Configuring Session Control
There is a set of configuration options for sessions that you can set in your 
php.ini
file.
Some of the more useful options,and a description of each, are shown in Table 22.1.
Table 22.1 Session Configuration Options
Option Name
Default
Effect
session.auto_start
0
(disabled)
Automatically starts sessions.
session.cache_expire
180
Sets time-to-live for cached session pages,in
minutes.
session.cookie_domain
none
Specifies the domain to set in the session
cookie.
session.cookie_lifetime
0
Sets how long the session ID cookie will
last on the user’s machine.The default,
0
,
will last until the browser is closed.
session.cookie_path
/
Specifies the path to set in the session 
cookie.
session.name
PHPSESSID
Sets the name of the session that is used as
the cookie name on a user’s system.
As you can see in Figure 22.3, you no longer have access to the persistent value of
$_SESSION[‘sess_var’]
.
Documents you may be interested
Documents you may be interested