Passing Data with Embedded Links
The third technique that passes data from a web browser to a web server is embedding links in an HTML document. This technique runs queries in most web database applications and is conceptually similar to manually entering a URL. We show how to create embedded links using the results of database queries in Section 5.2.
Embedded links in an HTML document can be authored in the same way a manually created URL is typed into a web browser. Consider the script shown in Example 5-3 that is rendered in a Netscape browser in Figure 5-3.
Figure 5-3. The HTML document shown in Example 5-3 rendered in a Netscape browser

Example 5-3. HTML document containing three links that pass two different parameters
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/html401/loose.dtd">
<html>
<head>
<title>Explore Wines</title>
</head>
<body bgcolor="#ffffff">
Explore all our
<a href="example.5-4.php?regionName=All&wineType=All">
wines</a>
<br>Explore our
<a href="example.5-4.php?regionName=All&wineType=Red">
red wines</a>
<br>Explore our
<a href="example.5-4.php?regionName=Riverland&wineType=Red">
premium reds from the Riverland</a>
<br><a href="Preface.htmll">Home</a></body>
</html>
The script contains three links that can request the resource example.5-4.php and pass different parameters to the resource. For example, the first link in the HTML document is:
Explore all our <a href="example.5-4.php? regionName=All&wineType=All"> wines</a>
Clicking on this link creates an HTTP request for the URL:
http://localhost/example.5-4.php? regionName=All&wineType=All
The result of the request is that the script in Example 5-4 is run, and the following HTML document is created:
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Parameters</title>
</head>
<body>
regionName is All
<br>wineType is All
</body>
</html>
Example 5-4. A simple script to print out HTTP attributes and values
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Parameters</title>
</head>
<body>
<?php
include 'db.inc';
$regionName = clean($regionName, 30);
$wineType = clean($wineType, 10);
echo "regionName is " . $regionName . "\n";
echo "<br>wineType is " . $wineType . "\n";
?>
</body>
</html>
Note that the ampersand characters in the URLs in the HTML document are replaced with &, because the ampersand character has a special meaning in HTML and should not be included directly in a document. When the link is clicked, the encoded & is translated by the browser to & in forming the HTTP request.