print strtr($copyright, $table); 
Copyright © 2003 O'Reilly & Associates 
9.9.4 See Also 
Recipe 13.9
Recipe 18.21
, and Recipe 10.8
; documentation on 
htmlentities( )
at 
http://www.php.net/htmlentities
and 
htmlspecialchars( )
at 
http://www.php.net/htmlspecialchars
Recipe 9.10 Handling Remote Variables with Periods in Their Names 
9.10.1 Problem 
You want to process a variable with a period in its name, but when a form is submitted, you 
can't find the variable.  
9.10.2 Solution 
Replace the period in the variable's name with an underscore. For example, if you have a form 
input element named 
foo.bar
, you access it inside PHP as the variable 
$_REQUEST['foo_bar']
 
9.10.3 Discussion 
Because PHP uses the period as a string concatenation operator, a form variable called 
animal.height
is automatically converted to 
animal_height
, which avoids creating an 
ambiguity for the parser. While 
$_REQUEST['animal.height']
lacks these ambiguities, for 
legacy and consistency reasons, this happens regardless of your 
register_globals
settings.  
You usually deal with automatic variable name conversion when you process an image used to 
submit a form. For instance: you have a street map showing the location of your stores, and 
you want people to click on one for additional information. Here's an example:  
<input type="image" name="locations" src="locations.gif"> 
When a user clicks on the image, the x and y coordinates are submitted as 
locations.x
and 
locations.y
. So, in PHP, to find where a user clicked, you need to check 
$_REQUEST['locations_x']
and 
$_REQUEST['locations_y']
.  
It's possible, through a series of manipulations, to create a variable inside PHP with a period:  
${"a.b"} = 123; // forced coercion using {} 
$var = "c.d";   // indirect variable naming 
$$var = 456;        
print ${"a.b"} . "\n"; 
Pdf form creation - 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
change font in pdf fillable form; add text field to pdf acrobat
Pdf form creation - 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
adding form fields to pdf; add fillable fields to pdf online
print $$var . "\n"; 
123 
456 
This is generally frowned on because of the awkward syntax. 
9.10.4 See Also 
Documentation on variables from outside PHP at 
http://www.php.net/language.variables.external.php
Recipe 9.11 Using Form Elements with Multiple Options 
9.11.1 Problem 
You have a form element with multiple values, such as a 
checkbox
or 
select
element, but 
PHP sees only one value.  
9.11.2 Solution 
Place brackets (
[ ]
) after the variable name:  
<input type="checkbox" name="boroughs[]" value="bronx"> The Bronx 
<input type="checkbox" name="boroughs[]" value="brooklyn"> Brooklyn 
<input type="checkbox" name="boroughs[]" value="manhattan"> Manhattan 
<input type="checkbox" name="boroughs[]" value="queens"> Queens 
<input type="checkbox" name="boroughs[]" value="statenisland"> Staten 
Island 
Inside your program, treat the variable as an array: 
print 'I love ' . join(' and ', $boroughs) . '!'; 
9.11.3 Discussion 
By placing 
[ ]
after the variable name, you tell PHP to treat it as an array instead of a scalar. 
When it sees another value assigned to that variable, PHP auto-expands the size of the array 
and places the new value at the end. If the first three boxes in the Solution were checked, it's 
as if you'd written this code at the top of the script:  
$boroughs[ ] = "bronx"; 
$boroughs[ ] = "brooklyn"; 
$boroughs[ ] = "manhattan"; 
You can use this to return information from a database that matches multiple records:  
foreach ($_GET['boroughs'] as $b) { 
$boroughs[ ] = strtr($dbh->quote($b),array('_' => '\_', '%' => '\%')); 
$locations = join(',', $boroughs); 
C# Word: How to Create Word Online Viewer in C# Application
and TIFF web viewer creating, you can go to PDF Web Viewer Creation in C#.NET and TIFF Web Viewer Creation in C# web page, you should add a new Web Form to your
allow users to save pdf form; add photo to pdf form
VB.NET PDF - Create PDF Online with VB.NET HTML5 PDF Viewer
Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process. An advanced PDF loading and creation tool, which supports to be
add image field to pdf form; changing font in pdf form
$dbh->query("SELECT address FROM locations WHERE borough IN ($locations)"); 
This syntax also works with multidimensional arrays: 
<input type="checkbox" name="population[NY][NYC]" value="8008278">New 
York... 
If checked, this form element sets 
$population['NY']['NYC']
to
8008278
.  
Placing a 
[ ]
after a variable's name can cause problems in JavaScript when you try to 
address your elements. Instead of addressing the element by its name, use the numerical ID. 
You can also place the element name inside single quotes. Another way is to assign the 
element an ID, perhaps the name without the 
[ ]
, and use that ID instead. Given:  
<form> 
<input type="checkbox" name="myName[]" value="myValue" id="myName"> 
</form> 
the following three refer to the same form element: 
document.forms[0].elements[0];            // using numerical IDs 
document.forms[0].elements['myName[ ]'];   // using the name with quotes 
document.forms[0].elements['myName'];     // using ID you assigned 
9.11.4 See Also 
The introduction to Chapter 4
for more on arrays. 
Recipe 9.12 Creating Dropdown Menus Based on the Current Date 
9.12.1 Problem 
You want to create a series of dropdown menus that are based automatically on the current 
date.  
9.12.2 Solution 
Use 
date( )
to find the current time in the web server's time zone and loop through the days 
with 
mktime( )
.  
The following code generates 
option
values for today and the six days that follow. In this 
case, "today" is January 1, 2002.  
list($hour, $minute, $second, $month, $day, $year) =  
split(':', date('h:i:s:m:d:Y')); 
// print out one week's worth of days 
for ($i = 0; $i < 7; ++$i) { 
$timestamp = mktime($hour, $minute, $second, $month, $day + $i, $year);  
$date = date("D, F j, Y", $timestamp); 
C# HTML5 PDF Viewer SDK to create PDF document from other file
Form Process. Data: Read, Extract Field Data. Data: Auto Fill-in Field Data. Field: Insert, Delete An advanced PDF loading and creation tool easily
add text field pdf; add forms to pdf
VB.NET Image: Program for Creating Thumbnail from Documents and
to create thumbnail from multiple document and image formats, such as PDF, TIFF, GIF, BMP, etc. It is easy to use this VB.NET thumbnail creation control to
change font size pdf form reader; build pdf forms
print "<option value=\"$timestamp\">$date</option>\n"; 
<option value="946746000">Tue, January 1, 2002</option> 
<option value="946832400">Wed, January 2, 2002</option> 
<option value="946918800">Thu, January 3, 2002</option> 
<option value="947005200">Fri, January 4, 2002</option> 
<option value="947091600">Sat, January 5, 2002</option> 
<option value="947178000">Sun, January 6, 2002</option> 
<option value="947264400">Mon, January 7, 2002</option> 
9.12.3 Discussion 
In the Solution, we set the 
value
for each date as its Unix timestamp representation because 
we find this easier to handle inside our programs. Of course, you can use any format you find 
most useful and appropriate.  
Don't be tempted to eliminate the calls to 
mktime( )
; dates and times aren't as consistent as 
you'd hope. Depending on what you're doing, you might not get the results you want. For 
example:  
$timestamp = mktime(0, 0, 0, 10, 24, 2002); // October 24, 2002 
$one_day = 60 * 60 * 24; // number of seconds in a day 
// print out one week's worth of days 
for ($i = 0; $i < 7; ++$i) { 
$date = date("D, F j, Y", $timestamp); 
print "<option value=\"$timestamp\">$date</option>"; 
$timestamp += $one_day; 
<option value="972619200">Fri, October 25, 2002</option> 
<option value="972705600">Sat, October 26, 2002</option> 
<option value="972792000">Sun, October 27, 2002</option> 
<option value="972878400">Sun, October 27, 2002</option> 
<option value="972964800">Mon, October 28, 2002</option> 
<option value="973051200">Tue, October 29, 2002</option> 
<option value="973137600">Wed, October 30, 2002</option> 
This script should print out the month, day, and year for a seven-day period starting October 
24, 2002. However, it doesn't work as expected.  
Why are there two "Sun, October 27, 2002"s? The answer: daylight saving time. It's not true 
that the number of seconds in a day stays constant; in fact, it's almost guaranteed to change. 
Worst of all, if you're not near either of the change-over dates, you're liable to miss this bug 
during testing.  
9.12.4 See Also 
VB.NET Image: Web Image and Document Viewer Creation & Design
Our document & image web viewer for VB.NET can be used to view and print such documents and images as JPEG, BMP, GIF, PNG, TIFF, PDF, etc.
change font size in fillable pdf form; adding text fields to pdf acrobat
C# PDF - Create Barcode on PDF in C#.NET
Form Process. Data: Read, Extract Field Data. Data: Auto Fill-in Field Data. Field: Insert, Delete, Update Field. C# PDF Barcode Creation Overview.
edit pdf form; acrobat create pdf form
Chapter 3
, particularly Recipe 3.13
, but also Recipe 3.2
Recipe 3.3
Recipe 3.5
Recipe 3.11
and Recipe 3.14
; documentation on 
date( )
at http://www.php.net/date
and 
mktime( )
at 
http://www.php.net/mktime
VB.NET PDF Library SDK to view, edit, convert, process PDF file
Rapidly and multiple PDF document (pages) creation and edit methods in VB.NET. Feel PDF File and Page Creation and Modification. Tell
create a pdf form online; add text fields to pdf
C# Excel: Tutorial for Web Excel Document Viewer Creation
Support saving modified Excel document PDF and TIFF files within NET Web Document Viewer for Excel - Creation in C#. Add a new Web Form (Default.aspx) to your C#
best program to create pdf forms; adding text to a pdf form
Chapter 10. Database Access 
Section 10.1.  Introduction
Recipe 10.2.  Using Text-File Databases
Recipe 10.3.  Using DBM Databases
Recipe 10.4.  Connecting to a SQL Database
Recipe 10.5.  Querying a SQL Database
Recipe 10.6.  Retrieving Rows Without a Loop
Recipe 10.7.  Modifying Data in a SQL Database
Recipe 10.8.  Repeating Queries Efficiently
Recipe 10.9.  Finding the Number of Rows Returned by a Query
Recipe 10.10.  Escaping Quotes
Recipe 10.11.  Logging Debugging Information and Errors
Recipe 10.12.  Assigning Unique ID Values Automatically
Recipe 10.13.  Building Queries Programmatically
Recipe 10.14.  Making Paginated Links for a Series of Records
Recipe 10.15.  Caching Queries and Results
Recipe 10.16.  Program: Storing a Threaded Message Board
C# PDF: PDF Document Viewer & Reader SDK for Windows Forms
application form (Here, we take a blank form as an example); Now, with simple C#.NET code, you can easily open a file dialog and load your PDF document in
pdf form change font size; changing font size in pdf form field
VB.NET PowerPoint: VB Codes to Create Linear and 2D Barcodes on
as 2d barcodes QR Code, Data Matrix, PDF-417, etc add barcode, which will be in the form of REImage Basic .NET code for a certain barcode creation on PowerPoint
add picture to pdf form; adding images to pdf forms
10.1 Introduction 
Databases are central to many web applications. A database can hold almost any collection of 
information you may want to search and update, such as a user list, a product catalog, or 
recent headlines. One reason why PHP is such a great web programming language is its 
extensive database support. PHP can interact with (at last count) 17 different databases, some 
relational and some not. The relational databases it can talk to are DB++, FrontBase, 
Informix, Interbase, Ingres II, Microsoft SQL Server, mSQL, MySQL, Oracle, Ovrimos SQL 
Server, PostgreSQL, SESAM, and Sybase. The nonrelational databases it can talk to are dBase, 
filePro, HyperWave, and the DBM family of flat-file databases. It also has ODBC support, so 
even if your favorite database isn't in the list, as long as it supports ODBC, you can use it with 
PHP.  
If your data storage needs are simple and you don't need to serve many users, you may be 
able to use a plaintext file as a makeshift database. This is discussed in Recipe 10.2
. Text files 
require no special database software but are appropriate only for lightly used, basic 
applications. A text file can't handle structured data well; if your data changes a lot, it's 
inefficient to store it in a plain file instead of a database.  
DBM flat-file databases, discussed in Recipe 10.3
, offer more robustness and efficiency than 
flat files but still limit the structure of your data to key/value pairs. They scale better than 
plaintext files, especially for read-only (or read-almost-always) data.  
PHP really shines, though, when paired with a SQL database. This combination is used for 
most of the recipes in this chapter. SQL databases can be complicated, but they are extremely 
powerful. To use PHP with a particular SQL database, PHP must be explicitly told to include 
support for that database when it is compiled. If PHP is built to support dynamic module 
loading, the database support can also be built as a dynamic module.  
Many SQL examples in this chapter use a table of information about Zodiac signs. The table's 
structure is:  
CREATE TABLE zodiac ( 
id INT UNSIGNED NOT NULL, 
sign CHAR(11), 
symbol CHAR(13), 
planet CHAR(7), 
element CHAR(5), 
start_month TINYINT, 
start_day TINYINT, 
end_month TINYINT, 
end_day TINYINT, 
PRIMARY KEY(id) 
); 
And the data in the table is: 
INSERT INTO zodiac VALUES (1,'Aries','Ram','Mars','fire',3,21,4,19); 
INSERT INTO zodiac VALUES (2,'Taurus','Bull','Venus','earth',4,20,5,20); 
INSERT INTO zodiac VALUES (3,'Gemini','Twins','Mercury','air',5,21,6,21); 
INSERT INTO zodiac VALUES (4,'Cancer','Crab','Moon','water',6,22,7,22); 
INSERT INTO zodiac VALUES (5,'Leo','Lion','Sun','fire',7,23,8,22); 
INSERT INTO zodiac VALUES (6,'Virgo','Virgin','Mercury','earth',8,23,9,22); 
INSERT INTO zodiac VALUES (7,'Libra','Scales','Venus','air',9,23,10,23); 
INSERT INTO zodiac VALUES 
(8,'Scorpio','Scorpion','Mars','water',20,24,11,21); 
INSERT INTO zodiac VALUES 
(9,'Sagittarius','Archer','Jupiter','fire',11,22,12,21); 
INSERT INTO zodiac VALUES 
(10,'Capricorn','Goat','Saturn','earth',12,22,1,19); 
INSERT INTO zodiac VALUES (11,'Aquarius','Water 
Carrier','Uranus','air',1,20,2,18); 
INSERT INTO zodiac VALUES 
(12,'Pisces','Fishes','Neptune','water',2,19,3,20); 
The specific functions required to talk to the database differ with each database, but each 
follows a similar pattern. Connecting to the database returns a database connection handle. 
You use the connection handle to create statement handles, which are associated with 
particular queries. A query statement handle then gets the results of that query.  
This example retrieves all the rows from the 
zodiac
table with Oracle, using the OCI8 
interface:  
if (! $dbh = OCILogon('david', 'foo!bar','ORAINST')) { 
die("Can't connect: ".OCIError()); 
if (! $sth = OCIParse($dbh,'SELECT * FROM zodiac')) { 
die("Can't parse query: ".OCIError()); 
if (! OCIExecute($sth)) { 
die("Can't execute query: ".OCIError()); 
$cols = OCINumCols($sth); 
while (OCIFetch($sth)) { 
for ($i = 1; $i <= $cols; $i++) { 
print OCIResult($sth,$i); 
print " "; 
print "\n"; 
The 
OCILogin( )
function connects to a given Oracle instance with a username and 
password. You can leave out the third argument (the instance) if the environment variable 
ORACLE_SID
is set to the desired Oracle instance. A statement handle is returned from 
OCIParse( )
, and 
OCIExecute( )
runs the query. Each time 
OCIFetch( )
is called, the 
next row in the result is retrieved into a result buffer. The value of a particular column of the 
current row in the result buffer is retrieved by 
OCIResult( )
.  
Here's the same example using PostgreSQL:  
if (! $dbh = pg_connect('dbname=test user=david password=foo!bar')) { 
die("Can't connect: ".pg_errormessage()); 
if (! $sth = pg_exec($dbh,'SELECT * FROM zodiac')) { 
die("Can't execute query: ".pg_errormessage()); 
for ($i = 0, $j = pg_numrows($sth); $i < $j; $i++) { 
$ar = pg_fetch_row($sth,$i); 
foreach ($ar as $col) { 
print "$col "; 
print "\n"; 
In this case, 
pg_connect( )
connects to PostgreSQL using the provided database name, 
user, and password. The query is run by 
pg_exec( )
. There's no need for a separate parse 
and execute step as with Oracle. Because 
pg_fetch_row( )
retrieves a specific row from the 
result set into an array, you loop over all the rows (using 
pg_numrows( )
to get the total 
number of rows) and print out each element in the array.  
Here's the same exercise with MySQL:  
if (! $dbh = mysql_connect('localhost','david','foo!bar')) { 
die("Can't connect: ".mysql_error()); 
mysql_select_db('test'); 
if (! $sth = mysql_query('SELECT * FROM zodiac')) { 
die("Can't execute query: ".mysql_error()); 
while ($ar = mysql_fetch_row($sth)) { 
foreach ($ar as $col) { 
print "$col "; 
print "\n"; 
First, 
mysql_connect( )
returns a database handle using the provided hostname, 
username, and password. You then use 
mysql_select_db( )
to indicate which database to 
use. The query is executed by 
mysql_query( )
. The 
mysql_fetch_row( )
function 
retrieves the next row in the result set and 
NULL
when there are no more rows; use a 
while
loop to retrieve all the rows.  
Each example prints out all the data in the zodiac table, one row per line, with spaces between 
each field, as shown here:  
Aries Ram Mars fire 3 21 4 19  
Taurus Bull Venus earth 4 20 5 20  
Gemini Twins Mercury air 5 21 6 21  
Cancer Crab Moon water 6 22 7 22  
Leo Lion Sun fire 7 23 8 22  
Virgo Virgin Mercury earth 8 23 9 22  
Libra Scales Venus air 9 23 10 23  
Scorpio Scorpion Mars water 20 24 11 21  
Sagittarius Archer Jupiter fire 11 22 12 21  
Capricorn Goat Saturn earth 12 22 1 19  
Aquarius Water Carrier Uranus air 1 20 2 18  
Pisces Fishes Neptune water 2 19 3 20  
Recipe 10.5
through Recipe 10.9
cover the basics of sending queries to the database and 
getting the results back, as well as using queries that change the data in the database.  
There are a number of options and optimizations for each database PHP supports. Most 
database interfaces support persistent connections with separate connection functions. In the 
previous three examples, you would use 
OCIPLogon( )
pg_pconnect( )
, and 
mysql_pconnect( )
for persistent instead of single-request connections.  
If you require a database-specific set of functions, the PHP online manual section for each 
database has many useful tips for proper configuration and use. If you can, use a database 
abstraction layer instead. Starting with Recipe 10.4
, all the SQL examples use the PEAR DB 
database abstraction layer, which minimizes the amount of code that has to change to make 
the examples work on different databases. Here's code that can display all the rows in the 
zodiac
table using DB and MySQL:  
require 'DB.php'; 
$dbh = DB::connect('mysql://david:foo!bar@localhost/test'); 
$sth = $dbh->query('SELECT * FROM zodiac'); 
while ($row = $sth->fetchRow()) { 
print join(' ',$row)."\n"; 
The only thing that needs to change to make this code work on another database is the 
argument passed to 
DB::connect( )
, which specifies what database to connect to. 
However, a database abstraction layer doesn't make SQL completely portable. Each database 
vendor generally has custom SQL extensions that enable handy features on one database and 
don't work at all on another database.  
While it's possible to write SQL that works on different databases with a minimum of changes, 
tuning a database for speed and efficiency is not portable. Having portable database 
interactions can be a useful goal, but it needs to be balanced with the likelihood of your code 
being used with multiple databases. If you're writing code for wide distribution, working with 
many databases is a plus. If your code is an internal project, however, you probably don't 
need to be as concerned with database independence.  
Whatever database you're using, you're probably going to be capturing information from HTML 
form fields and storing that information in the database. Some characters, such as the 
apostrophe and backslash, have special meaning in SQL, so you have to be careful if your 
form data contains those characters. PHP has a feature called "magic quotes" to make this 
Documents you may be interested
Documents you may be interested