Index

A

absolute value, Absolute Value
Access (Microsoft), Open DataBase Connectivity (ODBC)
addCase( ), Inheritance
AddSlashes( ), Uploading and Inserting Files into Databases
AddType directive, debugging and, Other Common Problems
aggregation, GROUP BY
alert( ), Validating <form> Data with JavaScript
ALTER TABLE statement, Altering Tables and Indexes
alternative patterns, Alternative patterns
anchors, Anchors
Apache server, The Middle Tier, The Apache HTTP server, Version 1.3
installing, Installing Apache, Installing Apache
to use SSL, Installing Apache to Use SSL, Installing Apache and ApacheSSL
using for HTTP authentication, Using Apache to Authenticate
Apache Software Foundation, The Middle Tier
application logic in middle tier, What You Need to Know
developing with PHP, Introducing PHP, Connecting to a MySQL Database
for order receipts, The application logic
shipping.3 script and, Templates in the Shipping Module
stored procedures and, Limitations of MySQL
applications interface, Database Management Systems
applications-layer protocols, Hypertext Transfer Protocol
argument types, Argument Types and Return Types
arguments, Passing arguments by reference, Default argument values
arithmetic operators, Arithmetic and comparison operators
array functions, Basic Array Functions
array mssql_fetch_row( ), Microsoft SQL Server
array mysql_fetch_array( ), Frequently used functions
array mysql_fetch_row( ), Essential Functions for Accessing MySQL with PHP
array pg_fetch_row( ), PostgreSQL
array pointers, Using Array Pointers
array( ), Creating Arrays
arrays, Arrays, Sorting with user-defined element comparison
creating, Creating Arrays, Multidimensional arrays
maximum/minimum values and, Finding values in arrays with in_array( ) and array_search( )
sorting, Sorting Arrays, Sorting with user-defined element comparison
splitting a string into, Splitting a string into an array
array_map( ), Sorting with user-defined element comparison
array_reverse( ), Reordering elements in arrays with array_reverse( )
array_search( ), Finding values in arrays with in_array( ) and array_search( )
array_walk( ), Sorting with user-defined element comparison
arsort( )/asort( ), Sorting associative arrays
assign( ), The template
assignment operator, vs. equality operator, Conditional Expressions
assignments, Expressions, Operators, and Variable Assignment
associative arrays, Arrays, Associative arrays
sorting, Sorting associative arrays
asymmetric encryption techniques, Certificates and Certification Authorities
at (@) symbol in email addresses, Validating email addresses, Case study: A generic JavaScript validation function
attribute names, Creating Tables
attributes, Creating Tables
KEY clause and, Keys, Primary Keys, and Indexes
authenticated( ), Managing HTTP Authentication with PHP
authenticateUser( ), Authentication Using a Database, Authenticating without HTTP, Authentication script
authentication, Authentication, Authentication and Security, Certificates and Certification Authorities
for customers/users, Authenticating Users, Authenticating Users
example of, Case Study: Customer Authentication, Authorizing other requests
how it works, How HTTP Authentication Works, How HTTP Authentication Works
script for, Authentication script, Authentication script
using a database for, Authentication Using a Database
web database applications and, Web Database Applications and Authentication, Authorizing other requests
authorization, script for, Authorizing other requests
automated housekeeping, Automated Housekeeping, cron Jobs
automatic type conversion, Automatic type conversion
auxiliary tables, locking with, Locking with an auxiliary table, Locking with an auxiliary table

B

BDB table type, Other locking paradigms
bold( ), User-Defined Functions
reusing, Reusing Functions with Include and Require Files
bookmarks, restrictions on, Bookmark restrictions
Boolean close( ), Building User-Defined Session Handlers
Boolean destroy( ), Building User-Defined Session Handlers
Boolean gc( ), Building User-Defined Session Handlers
Boolean mail ( ), HTML and Email Receipts
Boolean open( ), Building User-Defined Session Handlers
Boolean session_destroy( ), Functions for Accessing Sessions in PHP
Boolean session_is_registered( ), Functions for Accessing Sessions in PHP
Boolean session_register( ), Functions for Accessing Sessions in PHP
Boolean session_start( ), Functions for Accessing Sessions in PHP
Boolean values, Automatic type conversion
Boolean variables, Types
Boolean write( ), Building User-Defined Session Handlers
BottleCounter( ), Inheritance
branch statements, Conditions and Branches, Conditional Expressions
browse( ), Step 1: Using the Generic browse Function, What’s Missing from the Previous and Next Browser
implementing, Step 2: Implementing the Generic browse Function, Step 2: Implementing the Generic browse Function
producing page numbers from, Step 3: Adding Page Numbers
search1.script and, Searching and Browsing
browsers
authentication and, Authenticating without HTTP
interacting with using JavaScript, Interacting with the web browser
redirection and, Winestore Scripts, Managing Redirection, Managing Redirection
which in use by users, Which browser is the user using?
browsing, User-driven querying and browsing, Case Study: Previous and Next Browsing, What’s Missing from the Previous and Next Browser
search.1 script for, Searching and Browsing, Searching and Browsing
bulk loading of data, Bulk loading into a database

C

caching responses, Caching
callback functions, Sorting with user-defined element comparison
calling pages, One-Component Querying
cart.1 script (winestore home page), Winestore Scripts, The Winestore Home Page
cart.2 script (displaying shopping cart), Winestore Scripts, Viewing the Shopping Cart, Viewing the Shopping Cart
cart.3 script (adding items to shopping cart), Winestore Scripts, Adding Items to the Shopping Cart
cart.4 script (emptying shopping cart), Winestore Scripts, Emptying the Shopping Cart
cart.5 script (browser redirection), Winestore Scripts, Managing Redirection, Managing Redirection
cart.6 script (updating quantities in shopping cart), Winestore Scripts, Updating the Shopping Cart Quantities
cartesian product, Beware of the Cartesian Product
Cascading Style Sheets (CSS), templates and, The template
case study, Case Study: The Front-Page Panel
(see also winestore application)
case, changing, Changing case
caseCount( ), Inheritance
casting operators, Type Conversion
ceil( ), Ceiling and Floor
certificates, Certificates and Certification Authorities
creating for ApacheSSL, Creating a Key and Certificate, Creating a Key and Certificate
challenge method, How HTTP Authentication Works
character lists, Character lists
characters, Replacing Characters and Substrings, Escaping special characters
escaping, String literals, String Literals
special characters and, Escaping special characters
newline, Rendering newline characters with <br>
charAt( ), Validating <form> Data with JavaScript
checkdate( ), Validating a Date, Validating dates
checkdnsrr( ), Validating email addresses
cipher suites, Cipher suites
classes, Classes and Objects, Classes and Objects
clean( ), Security and User Data
preprocessing user data and, Security and User Data
session variables and, Saving last-entered values as a session variable
updating shopping cart quantities and, Updating the Shopping Cart Quantities
client entry <form>, Improving the Client Entry <form>
script for, The Client Entry <form> Script
client tier, Three-Tier Architectures, The Client Tier
managing state in, Managing State in the Client Tier
resources for further reading, Client Tier Resources
validation in, Validation in the client and middle tiers
client-server architecture, Thin Clients
client-side validation, Client-Side Validation with JavaScript, Comments
performance and, Models That Do Work, Validating <form> Data with JavaScript
clients, thick vs. thin, Thin Clients, Comments
cmp_length( ), Sorting with user-defined element comparison
combined scripts, Combined Scripts, Combined Scripts
command interpreter for MySQL, MySQL Command Interpreter, MySQL Command Interpreter
comments, Comments
commit and rollback processing, What isn’t covered here
compare( ), Sorting with user-defined element comparison
comparison operators, Arithmetic and comparison operators
concat( ), String-comparison operators and functions
concurrency, Transactions and Concurrency, Locking for performance
concurrent access, The Database Tier
conditional expressions, Conditional Expressions, Conditional Expressions
conditional statements, Conditions and Branches, Conditional Expressions
connection handles, Opening and Using a Database Connection
consoles, Interacting with the web browser
constants, Constants
constraints, Terminology
containsblanks( ), Validating <form> Data with JavaScript
control characters, String Literals
control flow functions, Miscellaneous operators and functions
cookies, Cookies, Starting a Session
not setting for session management, Session Management Without Cookies
turning off, Turning off cookies
count( ), Counting elements in arrays, Essential Functions for Accessing MySQL with PHP
CREATE DATABASE statement, Creating Databases, Transferring data between databases and DBMSs
CREATE TABLE statement, Creating the winestore with SQL, Creating Tables
creating
arrays, Creating Arrays, Multidimensional arrays
databases, Creating Databases
formatted output, Creating formatted output with sprintf( ) and printf( ), Creating formatted output with sprintf( ) and printf( )
objects, Objects
PHP scripts, Creating PHP scripts
tables, Creating Tables, Creating Tables
with visual appeal, Step 1: Producing Visually Appealing Tables, Limitations of Step 1
winestore application with SQL, Creating the winestore with SQL, Creating the winestore with SQL
cron tables, cron Jobs
crond daemon, cron Jobs
crypt( ), Authentication Using a Database, Authentication Using a Database, Customer Validation
salt string to, Authentication script
using password( ) instead of, MySQL encryption
cryptography, Security and Cryptography Resources
(see also encryption)
resources for further reading, Security and Cryptography Resources
SSL protocol and, Cipher suites
CSS (Cascading Style Sheets), templates and, The template
current( ), Using Array Pointers
customer.1 script (validation), Customer Validation, Customer Validation
customer.2 script (data entry), The Customer <form>, The Customer <form>
customer.3 script (receipt), The Customer Receipt Page, The Customer Receipt Page
customers
authenticating, Case Study: Customer Authentication, Authorizing other requests
managing, Winestore Customer Management
<form> for, The Customer <form>, The Customer <form>
receipt page for, The Customer Receipt Page
scripts for, Customer Management, The Customer Receipt Page
validation script for, Customer Validation, Customer Validation

D

data
inserting, Inserting Data
INSERT INTO ... SELECT statement and, INSERTing with a SELECT Statement
outputting with echo/print statements, Outputting data with echo and print
passing for queries, User Input, Passing Data with Embedded Links
tainted, Security and User Data
web security for, Protecting Data on the Web, Certificates and Certification Authorities
working with, Inserting, Updating, and Deleting Data, Updating Data
writing to databases, Data entry and saving records to a database, Writing to Web Databases
Data Definition Language (DDL), SQL components
data entry, script for, The Customer <form>
Data Manipulation Language (DML), SQL components
data versioning, The table-level locking paradigm in MySQL
data-access module, Database Management Systems
database deletes, Database Inserts, Updates, and Deletes, Inserting, Updating, and Deleting Data, Deleting data
database inserts, Database Inserts, Updates, and Deletes, Inserting, Updating, and Deleting Data, Inserting data
sample script for, Case study: Inserts and updates in practice
database management system, Three-Tier Architectures
(see also DBMS)
database recovery, What isn’t covered here
database tier, Three-Tier Architectures, The Database Tier, SQL components
managing sessions in, Managing Sessions in the Database Tier, Using the User-Defined Session Handler Code
resources for further reading, Database Tier Resources
storing session variables in, Need for centralized session store
database updates, Database Inserts, Updates, and Deletes, Inserting, Updating, and Deleting Data, Updating data
sample script for, Case study: Inserts and updates in practice, Case study: Inserts and updates in practice
database writes, Writing to Web Databases
database-driven querying, Database-driven querying
(see also querying, database-driven)
databases, Database Management Systems, Terminology
creating, Creating Databases
displaying structure of with SHOW command, Displaying Database Structure with SHOW
inserting uploaded files into, Uploading and Inserting Files into Databases, Uploading and Inserting Files into Databases
migrating data and, Transferring data between databases and DBMSs, Transferring data between databases and DBMSs
non-MySQL, accessing, Interacting with Other DBMSs Using PHP
vs. spreadsheets, Why Use a DBMS?
terminology for, Database Basics
using for authentication, Authentication Using a Database
writing to, Writing to Web Databases
datatypes, Creating Tables
date and time, Date and Time Functions, Validating a Date
dates, validating, Validating dates, Validating dates
SQL functions for, Date and time functions
date( ), Formatting a Date, Validating dates
db.inc include file, Using Include Files in Practice, The Winestore Include Files, The Winestore Include Files
clean( ) in, Security and User Data
DBMS (database management system), Three-Tier Architectures, Database Management Systems, The MySQL DBMS, MySQL and SQL, Terminology
migrating data and, Transferring data between databases and DBMSs, Transferring data between databases and DBMSs
DBMS (database management system), Three-Tier Architectures
(see also MySQL; databases)
components of, Database Management Systems
modifying, Modifying the Database, INSERTing with a SELECT Statement
reasons for using, Why Use a DBMS?, Examples of when not to use a DBMS
DDL (Data Definition Language), SQL components
deadlock problem, The LOCK TABLES and UNLOCK TABLES statements in MySQL
debugging
equality operator vs. assignment operator and, Conditional Expressions
flush( ) and, A Page That Produces Partial or No Output
PHP scripts, Common Mistakes, Other Common Problems
print_r( )/var_dump( ) for, Debugging with print_r( ) and var_dump( )
decode( ), Encrypting other data in a database
DELETE statement
limitations of, Limitations of MySQL
vs. DROP statement, Deleting Data
WHERE clause and, WHERE Clauses
deletes, Database Inserts, Updates, and Deletes
(see also database deletes)
deleting
data, Deleting Data
indexes, Altering Tables and Indexes
users, Adding and Deleting Users
DES encryption method, Authentication Using a Database
die( ), Error Handling of MySQL Database Functions
digital certificates, Certificates and Certification Authorities
dirty read problem, Transactions and Concurrency, Finalizing Orders
displayCart( ), Viewing the Shopping Cart
displayWines( ), Formatting Results
displayWinesList( ), Querying with User Input
DISTINCT clause, DISTINCT, Using DISTINCT in joins
DML (Data Manipulation Language), SQL components
do...while loop, do...while
doublevalue( ), Variable Scope, Passing arguments by reference
downloads, Installation Guide, Installation Resources
Apache server, The Apache HTTP server, Version 1.3, Installing Apache
ApacheSSL, Installing Apache to Use SSL
mod_ssl, Installing Apache to Use SSL
MySQL, Installing MySQL
OpenSSL, Installing OpenSSL
PHP, Installing PHP
sample scripts for, Installing the Winestore Examples
DROP DATABASE statement, Transferring data between databases and DBMSs
DROP INDEX statement, Altering Tables and Indexes
DROP TABLE statement, Deleting Data

E

each( ), Using Array Pointers
echo statement, Outputting data with echo and print
email addresses
@ symbol in, Validating email addresses, Case study: A generic JavaScript validation function
validating, Validating email addresses
email receipts, Ordering and Shipping at the Winestore, HTML and Email Receipts, HTML and Email Receipts
shipping.1 script and, Winestore Scripts
embedded links, Adding Links to Results
caution with, Adding Links to Results
passing data with, Passing Data with Embedded Links, Passing Data with Embedded Links
empty( ), Testing, setting, and unsetting variables, Other <form> issues
encode( ), Encrypting other data in a database
encryption, MySQL encryption, Cipher suites
functions for, Miscellaneous operators and functions
resources for further reading, Security and Cryptography Resources
end tags, PHP Basics
(see also start/end tags)
end( ), Using Array Pointers
end-loop statements, for
entity-relationship modeling, Terminology
(see also ER modeling)
equality operator, vs. assignment operator, Conditional Expressions
ER modeling, Terminology, Entity-Relationship Modeling, Step 5: Many-to-many relationships
for winestore application, The winestore entity-relationship model
ereg( ), Regular Expression Syntax
dates, validating and, Validating dates
extracting values and, Finding and extracting values
numbers, validating and, Validating numeric fields
eregi( ), Finding and extracting values
email addresses, validating and, Validating email addresses
error handling
custom error handlers for, Custom Error Handlers, Custom Error Handlers
for MySQL functions, Error Handling of MySQL Database Functions, Error Handling of MySQL Database Functions
error messages
displaying, Displaying error messages
improving, Improving error messages
error reporting, Validation and Error Reporting for Web Database Applications, Models That Do Work
error.inc include file, Using Include Files in Practice, The Winestore Include Files, Custom Error Handlers
errorHandler( ), Custom Error Handlers
error_log( ), Custom Error Handlers
EscapeShellCmd( ), Security and User Data, The Winestore Include Files
escaping characters, String literals, String Literals
special characters and, Escaping special characters
events, Client-Side Validation with JavaScript
exec( ), Security and User Data
explode( ), Extracting multiple values from a string, Splitting a string into an array
exponential functions, Powers and Logs
expressions, Expressions, Operators, and Variable Assignment

F

fieldError( ), Displaying error messages
files, uploading and inserting into databases, Uploading and Inserting Files into Databases, Uploading and Inserting Files into Databases
filesize( ), Uploading and Inserting Files into Databases
float functions, Integer and Float Functions, Random Number Generation
floating-point numbers, Generating a Timestamp
floats, Types
floor( ), Ceiling and Floor
flush( ), A Page That Produces Partial or No Output
fopen( ), Uploading and Inserting Files into Databases
for loop, for
foreach loop, foreach
using arrays with, Using foreach Loops with Arrays, Sorting with user-defined element comparison
formatted output, creating, Creating formatted output with sprintf( ) and printf( ), Creating formatted output with sprintf( ) and printf( )
formatting
dates, Formatting a Date
strings, Printing and Formatting Strings, Rendering newline characters with <br>
fread( ), Uploading and Inserting Files into Databases
front-page panel, Case Study: The Front-Page Panel, Fixing the queries
functions (for other databases), Interacting with Other DBMSs Using PHP
functions (PHP), Regular Expression Functions, Reusing Functions with Include and Require Files
for accessing sessions, Functions for Accessing Sessions in PHP
array, Basic Array Functions
for database modifications, Inserting, Updating, and Deleting Data
exponential, Powers and Logs
float, Integer and Float Functions, Random Number Generation
integer, Integer and Float Functions, Random Number Generation
logarithmic, Powers and Logs
for MySQL, Essential Functions for Accessing MySQL with PHP, Error Handling of MySQL Database Functions
error handling and, Error Handling of MySQL Database Functions, Error Handling of MySQL Database Functions
functions to avoid, Functions to avoid
passing variables to, How Variables Are Passed to Functions, Default argument values
regular expression, Regular Expression Functions, Splitting a string into an array
reusing, Reusing Functions with Include and Require Files, Reusing Functions with Include and Require Files
support, Support functions
user-defined, User-Defined Functions, Reusing Functions with Include and Require Files
functions (SQL), Functions, Miscellaneous operators and functions

G

garbage collection, Garbage Collection
session handlers for, Garbage collection
Gemini table type, Other locking paradigms
GET attribute, cookies and, Session Management Without Cookies
getCustomerID( ), Customer Validation
gethostbyname( ), Validating email addresses
getmxrr( ), Validating email addresses
getrandmax( ), Random Number Generation
global statement/global variables, Global variables
gmdate( ), Formatting a Date
gmmktime( ), Creating timestamps with mktime( ) and gmmktime( )
GRANT statement, Adding and Deleting Users
GROUP BY clause, GROUP BY
grouping output, Sorting and Grouping Output, DISTINCT
groups, Groups

H

handles, Opening and Using a Database Connection
HAVING clause, HAVING
header( ), One-Component Querying
browser redirection and, Winestore Scripts
credentials and, Managing HTTP Authentication with PHP
debugging and, Complaints About Headers
insertion script and, Solving the reload problem in practice
starting sessions and, Starting a Session
heading( ), User-Defined Functions, Default argument values
heterogeneous arrays, Heterogeneous arrays
hexadecimal system, Number Systems
hijacking, Session hijacking
home page for the winestore application, Winestore Scripts, The Winestore Home Page, The Winestore Home Page
housekeeping, Automated Housekeeping, cron Jobs
HTML (Hypertext Markup Language), Three-Tier Architectures
embedded links and, Passing Data with Embedded Links, Passing Data with Embedded Links
templates and, Templates, The template
W3C validator for, A Page That Produces Partial or No Output
HTML <form> environment, Passing Data with the HTML <form> Environment, Passing Data with the HTML <form> Environment
HTML <pre> formatted text tag, Querying Web Databases, Connecting to a MySQL Database
HTML <table> environment, Querying Web Databases, Formatting Results
HTML receipts, Ordering and Shipping at the Winestore, HTML and Email Receipts
shipping.2 script and, Winestore Scripts, HTML and Email Receipts, HTML and Email Receipts
HTTP (Hypertext Transfer Protocol), Hypertext Transfer Protocol, State, Hypertext Transfer Protocol, MIME
(see also protocols)
HTTP authentication, HTTP Authentication, Limits placed on IP addresses
PHP and, HTTP Authentication with PHP, Limits placed on IP addresses
problems with, Authenticating without HTTP
HTTP redirection, Reloading Data and Relocation Techniques
HTTP requests, Request and Response Model, HTTP Requests, GET versus POST
HTTP responses, Request and Response Model, HTTP Responses
HTTP servers, The Middle Tier, Web Servers
Hypertext Markup Language, Three-Tier Architectures
(see also HTML)

I

IBM, SQL and, History
identifier attributes, Creating Tables
identifiers, Session Management Over the Web
if...else statement, if...else Statement, if...else Statement
implode( ), Extracting multiple values from a string
include directive, Reusing Functions with Include and Require Files, Reusing Functions with Include and Require Files
caution with, Reusing Functions with Include and Require Files
using, Using Include Files in Practice
include files, The Winestore Include Files
(see also db.inc include file error.inc include file)
incorrect summary problem, Transactions and Concurrency
index files, Database Management Systems
indexes, Keys, Primary Keys, and Indexes, Keys, Primary Keys, and Indexes
deleting/working with, Altering Tables and Indexes
inheritance, Inheritance, Inheritance
initial statements, for
InnoDB table type, Other locking paradigms
INSERT DELAYED feature, The LOCK TABLES and UNLOCK TABLES statements in MySQL
INSERT INTO ... SELECT statement, INSERTing with a SELECT Statement
INSERT INTO statement, Inserting Data
inserts, Database Inserts, Updates, and Deletes
(see also database inserts)
installation guide for software used with this book, Installation Guide, Installation Resources
int mssql_close( ), Microsoft SQL Server
int mssql_num_fields( ), Microsoft SQL Server
int mssql_select_db( ), Microsoft SQL Server
int mysql_affected_rows( ), PHP DML functions for database modifications
int mysql_change_user( ), Other functions
int mysql_close( ), Essential Functions for Accessing MySQL with PHP
int mysql_create_db( ), Other functions
int mysql_data_seek( ), Frequently used functions
int mysql_drop_db( ), Other functions
int mysql_free_result( ), Frequently used functions
int mysql_insert_id( ), PHP DML functions for database modifications
int mysql_num_fields( ), Essential Functions for Accessing MySQL with PHP
int mysql_num_rows( ), Frequently used functions
int mysql_select_db ( ), Essential Functions for Accessing MySQL with PHP
int OCIExecute( ), Oracle 7 and 8 Through the OCI8 Interface
int OCIFetch( ), Oracle 7 and 8 Through the OCI8 Interface
int OCILogoff( ), Oracle 7 and 8 Through the OCI8 Interface
int OCINumCols( ), Oracle 7 and 8 Through the OCI8 Interface
int odbc_close( ), Open DataBase Connectivity (ODBC)
int odbc_fetch_row( ), Open DataBase Connectivity (ODBC)
int odbc_num_fields( ), Open DataBase Connectivity (ODBC)
int pg_close( ), PostgreSQL
int pg_num_fields( ), PostgreSQL
integers, Types, Number Systems
(see also numbers)
converting to/from strings, Validating dates
functions for, Integer and Float Functions, Random Number Generation
rounding, Rounding
interactive validation, Validation and Error Reporting for Web Database Applications
intval( ), Validating dates
in_array( ), Finding values in arrays with in_array( ) and array_search( )
IP addresses, IP addresses
limits placed on, Limits placed on IP addresses
session hijacking and, Recording IP addresses to detect session hijack attempts
isset( ), Testing, setting, and unsetting variables, Counting elements in arrays
debugging and, Missing output
is_array( ), Counting elements in arrays
is_uploaded_file( ), Uploading and Inserting Files into Databases

M

mail( ), Custom Error Handlers, Ordering and Shipping at the Winestore
for order confirmation receipt, HTML and Email Receipts
mathematical functions, Mathematical functions, Mathematical functions
mathematical library, Powers and Logs
max( ), Finding the maximum and minimum values in an array
MD5 hashing algorithm, Session hijacking
memory, performance and, Performance
metacharacters, Metacharacters
microseconds, Subsecond times
Microsoft Access, Open DataBase Connectivity (ODBC)
Microsoft SQL server, Microsoft SQL Server, Microsoft SQL Server
microtime( ), Subsecond times
middle tier, Three-Tier Architectures, The Middle Tier, Web Scripting with PHP
components of, The Middle Tier
resources for further reading, Middle Tier Resources, Open source PHP applications
validation in, Validation in the client and middle tiers
MIME (Multipurpose Internet Mail Extensions), MIME
min( ), Finding the maximum and minimum values in an array
mixed OCIResult( ), Oracle 7 and 8 Through the OCI8 Interface
mixed read( ), Building User-Defined Session Handlers
mixed types, Types
mktime( ), Creating timestamps with mktime( ) and gmmktime( )
modifiers, Creating Tables
mod_ssl, Installing Apache to Use SSL
mouse roll-overs, Rollover presentation with mouseOver events
mouse rollovers, Client-Side Validation with JavaScript
mssql_query( ), Microsoft SQL Server
mssql_select_db( ), Microsoft SQL Server
multidimensional arrays, Multidimensional arrays
MULTIPLE attribute, Processing <form> controls with the MULTIPLE attribute
multiple queries, Adding a second or subsequent query
Multipurpose Internet Mail Extensions (MIME), MIME
MyISAM table, The table-level locking paradigm in MySQL
MySQL, The Database Tier, The MySQL DBMS, Quick Start Guide, Creating the winestore with SQL
command interpreter for, MySQL Command Interpreter, MySQL Command Interpreter
connecting to, Connecting to a MySQL Database, Error Handling of MySQL Database Functions
functions for, Essential Functions for Accessing MySQL with PHP, Error Handling of MySQL Database Functions
encrypting and, MySQL encryption
error handling and, Error Handling of MySQL Database Functions, Error Handling of MySQL Database Functions
functions to avoid, Functions to avoid
installing/configuring, Installing MySQL, Apache, and PHP, Configuring MySQL
limitations of, Limitations of MySQL
LOCK TABLES /UNLOCK TABLES statements in, The LOCK TABLES and UNLOCK TABLES statements in MySQL
manual for, Functions, Installation Resources
modifying, Modifying the Database, INSERTing with a SELECT Statement
querying
database-driven, Querying Web Databases, PostgreSQL
user-driven, User-Driven Querying
with join queries, Join Queries
with SELECT statement, Querying with SQL SELECT, Limiting Result Sets in MySQL
table-locking paradigm in, The table-level locking paradigm in MySQL
techniques for fine-tuning, Tuning the Database System, Tuning the Database System
working with, Managing Databases, Tables, and Indexes, Updating Data
mysql_affected_rows( ), Frequently used functions, PHP DML functions for database modifications
mysql_close( ), Opening and Using a Database Connection, Frequently used functions
mysql_connect( ), Opening and Using a Database Connection, Essential Functions for Accessing MySQL with PHP, Custom Error Handlers
error handling and, Error Handling of MySQL Database Functions
mysql_data_seek( ), Step 2: Implementing the Generic browse Function
mysql_errno( ), Custom Error Handlers
mysql_error( ), Error Handling of MySQL Database Functions, Custom Error Handlers
mysql_errorno( ), Error Handling of MySQL Database Functions
mysql_fetch_array( ), Frequently used functions, Step 1: Producing Visually Appealing Tables, Step 2: Implementing the Generic browse Function
second or subsequent queries and, Adding a second or subsequent query
tricks to using, Frequently used functions
mysql_fetch_field( ), Other functions, Formatting Results
mysql_fetch_object( ), Frequently used functions, Other functions
mysql_fetch_row( ), Opening and Using a Database Connection, Essential Functions for Accessing MySQL with PHP, Frequently used functions
mysql_insert_id( ), PHP DML functions for database modifications, When and how to lock tables
mysql_list_tables( ), Other functions
mysql_num_fields( ), Opening and Using a Database Connection
mysql_num_rows( ), Frequently used functions, Other functions
error handling and, Error Handling of MySQL Database Functions
mysql_unbuffered_query() and, Frequently used functions
using instead of int mysql_affected_rows( ), PHP DML functions for database modifications
mysql_pconnect( ), Essential Functions for Accessing MySQL with PHP, Frequently used functions
error handling and, Error Handling of MySQL Database Functions
mysql_query( ), Opening and Using a Database Connection, Essential Functions for Accessing MySQL with PHP, Frequently used functions, Frequently used functions
error handling and, Error Handling of MySQL Database Functions
second or subsequent queries and, Adding a second or subsequent query
mysql_select_db( ), Opening and Using a Database Connection
mysql_tablename( ), Other functions
mysql_unbuffered_query( ), Frequently used functions
error handling and, Error Handling of MySQL Database Functions

N

natural joins, Elementary Natural Joins, Using DISTINCT in joins
nested queries, The MySQL DBMS
not supported in MySQL, Limitations of MySQL
newline characters, Rendering newline characters with <br>
next( ), Using Array Pointers
nl2br( ), Rendering newline characters with <br>
normalization/normalized databases, Terminology
not equals operator, Conditional Expressions
numbered arrays, Arrays
numbers, Number Systems
(see also integers)
random, Random Number Generation
systems of, Number Systems
validating, Validating numeric fields
numeric assignments, Expressions, Operators, and Variable Assignment
numeric attributes, Creating Tables
NuSphere, Installation Resources

O

object mysql_fetch_field( ), Other functions, Other functions
object mysql_fetch_object( ), Frequently used functions
objects, Objects
OCIExecute( ), Oracle 7 and 8 Through the OCI8 Interface
OCIFetch( ), Oracle 7 and 8 Through the OCI8 Interface
OCILogon( ), Oracle 7 and 8 Through the OCI8 Interface
OCIParse( ), Oracle 7 and 8 Through the OCI8 Interface
OCIResult( ), Oracle 7 and 8 Through the OCI8 Interface
octal system, Number Systems
ODBC functions, Open DataBase Connectivity (ODBC)
odbc_connect( ), Open DataBase Connectivity (ODBC)
odbc_exec( ), Open DataBase Connectivity (ODBC)
one-component querying, User-Driven Querying, One-Component Querying
Open DataBase Connectivity functions, Open DataBase Connectivity (ODBC)
OpenSSL
certificates and, Creating a Key and Certificate
downloading/installing, Installing OpenSSL
operator precedence, Operator precedence
operators, Functions, Miscellaneous operators and functions
optional characters, Optional and repeating characters, Optional and repeating characters
Oracle 7/8, Oracle 7 and 8 Through the OCI8 Interface, Oracle 7 and 8 Through the OCI8 Interface
ORDER BY clause, ORDER BY, Beware of the Cartesian Product
order.1 script (logon), Winestore Scripts, Authenticating Users, Authenticating Users
order.2 script (logout), Winestore Scripts, Authenticating Users
order.3 script (finalizing orders), Winestore Scripts, Finalizing Orders, Finalizing Orders
ordering wines, Ordering and Shipping at the Winestore, HTML and Email Receipts
receipts for, Winestore Scripts, The Customer Receipt Page, HTML and Email Receipts, HTML and Email Receipts, Templates in the Shipping Module, The template
output
debugging and, A Page That Produces Partial or No Output, Missing output
with echo/print statements, Outputting data with echo and print
formatting, Creating formatted output with sprintf( ) and printf( ), Creating formatted output with sprintf( ) and printf( )
sorting/grouping, Sorting and Grouping Output, DISTINCT
variable substitution and, Variable substitution

P

padded strings, Padding strings
page numbers/page links, Step 3: Adding Page Numbers
panel (front-page panel), Case Study: The Front-Page Panel, Fixing the queries
parameters, User Input
for changing session management behavior, Configuration of PHP Session Management, Configuration of PHP Session Management
password( ), MySQL encryption
performance
client-side validation and, Models That Do Work, Validating <form> Data with JavaScript
locking tables and, Locking for performance
MySQL and, Tuning the Database System, Limitations of MySQL
server-side validation and, Models That Do Work
sessions and, Performance, Performance
synchronization problems and, Timeouts
user-defined functions and, User-Defined Functions
permissions, Permissions
persistent connections, Essential Functions for Accessing MySQL with PHP, Frequently used functions
personalizing web sites, Personalization
pg_connect( ), PostgreSQL
pg_exec( ), PostgreSQL
PHP scripting language, The Middle Tier, Web Scripting with PHP, Web Scripting with PHP, PHP, Other Common Problems
arrays and, Arrays
benefits for writing web-enabled scripts and, Passing Data with the HTML <form> Environment
branch statements and, Conditions and Branches, Conditional Expressions
conditional statements and, Conditions and Branches, Conditional Expressions
functions ), Inserting, Updating, and Deleting Data
(see also functions (PHP)
HTTP authentication and, HTTP Authentication with PHP, Limits placed on IP addresses
initializing variables and, How PHP Initializes Variables, How PHP Initializes Variables
installing, Installing PHP
loops and, Loops, Changing Loop Behavior
objects and, Objects
online manual for, Installation Resources
regular expressions and, Regular Expressions, Splitting a string into an array
scripting environment of, Web Scripting with PHP
session management and, PHP Session Management, Configuration of PHP Session Management, PHP Session Management
strings and, Strings, Translating characters and substrings
using to access non-MySQL databases, Interacting with Other DBMSs Using PHP, PostgreSQL
PHP scripts
for authentication, Authentication script, Authentication script
creating, Creating PHP scripts
debugging, Common Mistakes, Other Common Problems
example of, A Working Example, Comments on Example 2.3
for login <form>, Login page
for logout, Logout script
managing HTTP authentication with, Managing HTTP Authentication with PHP, Managing HTTP Authentication with PHP
of examples for the winestore, Installing the Winestore Examples
reusing functions and, Reusing Functions with Include and Require Files, Reusing Functions with Include and Require Files
PHP Triad for Windows, Installation Resources
$PHPSESSID/PHPSESSID, Starting a Session, Turning off cookies
PHP: Hypertext Preprocessor, Introducing PHP
ports, Ports
POST attribute, cookies and, Session Management Without Cookies
post-validation error finding, Validation and Error Reporting for Web Database Applications
PostgreSQL, The MySQL DBMS, PostgreSQL, PostgreSQL
powers, Powers and Logs
precedence of operators, Operator precedence
prev( ), Using Array Pointers
primary keys, Terminology, Keys, Primary Keys, and Indexes, Keys, Primary Keys, and Indexes
print statement, Outputting data with echo and print
printf( ), Creating formatted output with sprintf( ) and printf( ), Creating formatted output with sprintf( ) and printf( )
print_r( ), Debugging with print_r( ) and var_dump( ), Sorting with sort( ) and rsort( ), Sorting associative arrays
private keys, Creating a Key and Certificate, Creating a Key and Certificate
privileges, Permissions
protocols, Internet and Web Protocols, MIME
applications-layer, Hypertext Transfer Protocol
SSL, The Secure Sockets Layer Protocol, Certificates and Certification Authorities, Installing Apache to Use SSL, Installing Apache and ApacheSSL
TCP/IP, TCP/IP, Ports
proxy caches, The Client Tier
pseudo-random numbers, Random Number Generation

R

rand( ), Random Number Generation
random numbers, Random Number Generation
rawurlencode( ), Step 1: Using the Generic browse Function, Step 2: Implementing the Generic browse Function
RDBMS (relational database management system), Database Management Systems, Introducing Relational Databases, Terminology
read locks, When and how to lock tables
read-lock queue, The LOCK TABLES and UNLOCK TABLES statements in MySQL
receipts for orders placed, Winestore Scripts, The Customer Receipt Page, HTML and Email Receipts, HTML and Email Receipts, Templates in the Shipping Module, The template
records, Basic Querying
recovery, What isn’t covered here
redirection, Winestore Scripts, Managing Redirection
references, Passing arguments by reference
regular expression functions, Regular Expression Functions, Splitting a string into an array
regular expressions, Regular Expressions, Splitting a string into an array
metacharacters as, Metacharacters
relational database management system, Introducing Relational Databases
(see also RDBMS)
relational databases, The Database Tier, Introducing Relational Databases
accessing, Interacting with Other DBMSs Using PHP, PostgreSQL
planning/designing, Modeling and Designing Relational Databases, Step 5: Many-to-many relationships
relational model, Terminology
reload problem, Reloading Data and Relocation Techniques, Solving the reload problem in practice
repeating characters, Optional and repeating characters, Optional and repeating characters
requests, HTTP and, HTTP example
require directive, Reusing Functions with Include and Require Files, Reusing Functions with Include and Require Files
reset( ), Using Array Pointers
resource mssql_connect( ), Microsoft SQL Server
resource mssql_query( ), Microsoft SQL Server
resource mysql_connect( ), Essential Functions for Accessing MySQL with PHP
resource mysql_pconnect( ), Frequently used functions
resource mysql_query( ), Essential Functions for Accessing MySQL with PHP
resource mysql_unbuffered_query( ), Frequently used functions
resource OCILogon( ), Oracle 7 and 8 Through the OCI8 Interface
resource OCIParse( ), Oracle 7 and 8 Through the OCI8 Interface
resource odbc_connect( ), Open DataBase Connectivity (ODBC)
resource odbc_exec( ), Open DataBase Connectivity (ODBC)
resource pg_connect( ), PostgreSQL
resource pg_exec( ), PostgreSQL
resources for further reading, Resources, Security and Cryptography Resources
MySQL manual, Functions
software installation and configuration, Installation Resources
responses, HTTP and, HTTP example
result sets
displaying, Case Study: Previous and Next Browsing
limiting, Limiting Result Sets in MySQL
results (query results), Formatting Results, Using Include Files in Practice
return types, Argument Types and Return Types
return( ), Validating <form> Data with JavaScript
REVOKE statement, Permissions
roll-over feature, Rollover presentation with mouseOver events
rollover feature, Client-Side Validation with JavaScript
root user, The Apache HTTP server, Version 1.3
round( ), Rounding
rows, Database Management Systems
rsort( ), Sorting with sort( ) and rsort( ), Sorting associative arrays
rtrim( ), Trimming whitespace, String-comparison operators and functions

S

salt string, Authentication Using a Database, Authentication script
scope, Variable Scope, Global variables
script tags, debugging and, Other Common Problems
scripting languages, Web Scripting with PHP
(see also PHP scripting language)
engine for, Web Scripting with PHP
scripts, Adding a second or subsequent query
(see also PHP scripts)
adding multiple queries to, Adding a second or subsequent query
combined, Combined Scripts, Combined Scripts
for customer management, Customer Management
for the winestore application, Winestore Scripts, Winestore Scripts, The Winestore Home Page, Viewing the Shopping Cart, Managing Redirection
search.1 script (browsing wines), Winestore Scripts, Searching and Browsing, Searching and Browsing
searching, Related Topics
(see also browsing)
Secure Socket Layer protocol, The Secure Sockets Layer Protocol
(see also SSL protocol)
security, Security and User Data, Authentication and Security, Protecting Data on the Web, Certificates and Certification Authorities
(see also authentication)
importance of, Security and User Data
resources for further reading, Security and Cryptography Resources
sessions and, Security
select lists, Case Study: Producing a select List, Implementing the selectDistinct Function
SELECT statement, Querying with SQL SELECT, Limiting Result Sets in MySQL
selectDistinct( ), Case Study: Producing a select List, Implementing the selectDistinct Function, Implementing the selectDistinct Function
browsing and, Searching and Browsing
client entry <form> and, The Customer <form>
semicolon ending statements, debugging and, Other Common Problems
send_confirmation_email( ), HTML and Email Receipts
Sequel, History
serializing values, Using Session Variables
server variables, How PHP Initializes Variables
server-side validation, Server-Side Validation, Other <form> issues
performance and, Models That Do Work
session cookies, Cookies
session handlers, Building User-Defined Session Handlers, Using the User-Defined Session Handler Code
registering, Registering session handlers
session hijacking, Session hijacking
session IDs (session identifiers), Session Management Over the Web, Overview
session management, User tracking and session management, Sessions
configuring, Configuration of PHP Session Management
database tier and, Managing Sessions in the Database Tier, Using the User-Defined Session Handler Code
security and, Security
session time-outs, Session Management Over the Web, Timeouts
session variables, How PHP Initializes Variables, Session Management Over the Web
authorization script for, Authorizing other requests
saving last-entered values as, Saving last-entered values as a session variable
storing in database tier, Need for centralized session store
using, Using Session Variables
session-based applications, building, Building Session-Based Applications, Recording IP addresses to detect session hijack attempts
session.use_cookies parameter, Turning off cookies
sessionClose( ), sessionClose
sessionOpen( ), sessionOpen
sessionRead( ), sessionRead
sessions, Session Management Over the Web
ending, Ending a Session
PHP functions for accessing, Functions for Accessing Sessions in PHP
reasons for using/not using, When to Use Sessions, Security
starting, Starting a Session
sessionWrite( ), sessionWrite
session_destroy( ), Ending a Session, Garbage Collection, sessionDestroy
session_id( ), Using Session Variables, Encoding the session ID as a GET variable
session_is_registered( ), Functions for Accessing Sessions in PHP
session_register( ), Using Session Variables, Functions for Accessing Sessions in PHP
session_set_save_handler( ), Building User-Defined Session Handlers
session_start( ), Starting a Session, Functions for Accessing Sessions in PHP
session_unregister( ), Using Session Variables, Functions for Accessing Sessions in PHP
session_unset( ), Functions for Accessing Sessions in PHP
setcookie( ), Cookies, Starting a Session
debugging and, Complaints About Headers
setting/unsetting variables, Testing, setting, and unsetting variables
settype( ), Type Conversion
setupQuery( ), Searching and Browsing
set_error_handler( ), Variable naming, Custom Error Handlers
shipping wines, Ordering and Shipping at the Winestore
shipping.1 script (email receipt), Winestore Scripts, HTML and Email Receipts, HTML and Email Receipts
shipping.2 script (HTML receipt), Winestore Scripts, HTML and Email Receipts
shipping.3 script (order receipt), Templates in the Shipping Module, The template
shopping cart, The Winestore Shopping Cart
adding items to, Adding Items to the Shopping Cart, Adding Items to the Shopping Cart
converting items in to orders, Winestore Scripts, Finalizing Orders, Finalizing Orders
displaying contents of, The Winestore Home Page, Viewing the Shopping Cart, Viewing the Shopping Cart
emptying, Winestore Scripts, Emptying the Shopping Cart
housekeeping for, Automated Housekeeping, cron Jobs
updating quantities in, Winestore Scripts, Updating the Shopping Cart Quantities, Updating the Shopping Cart Quantities
short-circuit evaluation property, Conditional Expressions
SHOW command, Displaying Database Structure with SHOW
showCart( ), The Winestore Home Page
showerror( ), Error Handling of MySQL Database Functions, Formatting Results, Custom Error Handlers
showLogin( ), The Winestore Home Page
showMessage( ), The Winestore Home Page, Adding Items to the Shopping Cart
showPanel( ), The Winestore Home Page
showPricing( ), Fixing the queries, Searching and Browsing
showVarieties( ), Adding a second or subsequent query, The Winestore Include Files, The Winestore Home Page
browsing and, Searching and Browsing
vs. showPricing( ), Fixing the queries
showWines( ), Searching and Browsing
show_HTML_receipt( ), The application logic
Smarty PHP template engine, Templates
sort( ), Sorting with sort( ) and rsort( ), Sorting associative arrays
sorting
arrays, Sorting Arrays, Sorting with user-defined element comparison
output, Sorting and Grouping Output, DISTINCT
space( ), String-comparison operators and functions
split( ), Splitting a string into an array
spreadsheets, vs. databases, Why Use a DBMS?
sprintf( ), Creating formatted output with sprintf( ) and printf( ), Creating formatted output with sprintf( ) and printf( )
SQL (Structured Query Language), SQL, Terminology, More on SQL and MySQL, Permissions
components of, SQL components
converting E/R model to, Converting an Entity-Relationship Model to SQL, Step 5: Many-to-many relationships
queries and, Querying with SQL SELECT, INSERTing with a SELECT Statement
winestore application, creating with, Creating the winestore with SQL, Creating the winestore with SQL
working with MySQL and, Managing Databases, Tables, and Indexes, Updating Data
SQL interpreter, Database Management Systems
SQL server (Microsoft), Microsoft SQL Server, Microsoft SQL Server
srand( ), Subsecond times, Random Number Generation
SSL protocol, The Secure Sockets Layer Protocol, Certificates and Certification Authorities
installing Apache to use, Installing Apache to Use SSL, Installing Apache and ApacheSSL
start/end tags
include statement and, Reusing Functions with Include and Require Files
omitting, PHP Basics
starvation problem, The LOCK TABLES and UNLOCK TABLES statements in MySQL
state, State
building applications to maintain, Building Applications That Keep State
stateless applications, building, Building Stateless Applications
stored procedures, Limitations of MySQL
strcasecmp( ), Comparing Strings
strcmp( ), Conditional Expressions, Comparing Strings, String-comparison operators and functions
strftime( ), Formatting a Date
string assignments, Expressions, Operators, and Variable Assignment
string clean( ), The Winestore Include Files
string comparison operators/functions, String-comparison operators and functions
string crypt( ), Authentication Using a Database
string getCustomerID( ), The Winestore Include Files
string literals, String literals, String Literals, Length of a string
string mysql_tablename( ), Other functions
string session_id( ), Functions for Accessing Sessions in PHP
string showWine( ), The Winestore Include Files
strings, Strings, Translating characters and substrings
comparing, Comparing Strings
converting to timestamp, String to timestamp, Validating dates
converting to/from integers, Validating dates
splitting into an array, Splitting a string into an array
stristr( ), Extracting a found portion of a string
strlen( ), Length of a string
strncasecmp( ), Comparing Strings
strncmp( ), Comparing Strings
strpos( ), Finding the position of a substring, Extracting multiple values from a string
strrchr( ), Extracting a found portion of a string
strrpos( ), Finding the position of a substring
strstr( ), Extracting a found portion of a string
strtotime( ), String to timestamp, Validating dates
strtr( ), Translating characters and substrings
Structured Query Language, SQL
(see also SQL)
strval( ), Validating dates
str_pad( ), Padding strings
str_replace( ), Replacing substrings
subject string, Changing case
subsecond times, Subsecond times
substr( ), Extracting a substring from a string, Security and User Data
substring( ), String-comparison operators and functions
substrings, Finding and Extracting Substrings, Translating characters and substrings
replacing, Replacing Characters and Substrings, Translating characters and substrings, Replacing substrings
substr_replace( ), Replacing substrings
superuser, The Apache HTTP server, Version 1.3
support functions, Support functions
swapping memory, Performance
switch statement, switch Statement
synchronization, problems with caused by sessions, Timeouts
system requirements for the winestore application, System requirements, System requirements
system( ), Security and User Data

T

table aliases, Table aliases in SQL queries, Step 1: Producing Visually Appealing Tables
tables
creating, Creating Tables, Creating Tables
with visual appeal, Step 1: Producing Visually Appealing Tables, Limitations of Step 1
displaying details of, Displaying Database Structure with SHOW
locking, Locking for Concurrency in MySQL, Other locking paradigms
temporary, When and how to lock tables
working with, Altering Tables and Indexes
tainted data, Security and User Data
TCP/IP protocol, TCP/IP, Ports
HTTP and, HTTP and TCP/IP, Persistent connections
templates, Templates, The template
temporary tables, When and how to lock tables
terminology for databases, Database Basics
testing variables, Testing, setting, and unsetting variables
text files
bulk loading data from, Bulk loading into a database
vs. databases, Why Use a DBMS?
thesame( ), Case study: A password <form> validation function
thick clients, Thin Clients, Comments
thin clients, Thin Clients
threads, The Apache HTTP server, Version 2.0
three-tier architectures, Three-Tier Architectures, SQL components
reasons for using, Thin Clients
time, Date and time functions
(see also date and time)
time-outs, Session Management Over the Web, Timeouts
time string, String to timestamp
time( ), Cookies, Using Session Variables
timestamp, Generating a Timestamp, Subsecond times
tracking, User tracking and session management
(see also session management)
transaction management, SQL components
transactions, Transactions and Concurrency
commit/rollback and, What isn’t covered here
triggers, Limitations of MySQL
trigger_error( ), Custom Error Handlers
trigonometry functions, Basic Trigonometry Functions
trim( ), Trimming whitespace, String-comparison operators and functions
trimming whitespace, Trimming whitespace
two-component querying, User-Driven Querying
two-phase locking, Locking for Concurrency in MySQL
type conversion, Type Conversion, Automatic type conversion
type-casting, Type Conversion
types, Types

U

uasort( ), Sorting with user-defined element comparison
unary not operator, Conditional Expressions
Unix cron tables, cron Jobs
Unix timestamp, Generating a Timestamp, Subsecond times
unix_timestamp( ), Automated Housekeeping
UNLOCK TABLES statement, The LOCK TABLES and UNLOCK TABLES statements in MySQL
unrepeatable read problem, Issues in Writing Data to Databases, Transactions and Concurrency
unset( ), Testing, setting, and unsetting variables
Update Quantities button, Viewing the Shopping Cart
UPDATE statement, Updating Data
limitations of, Limitations of MySQL
privileges and, Permissions
WHERE clause and, WHERE Clauses
update( ), Prefilling <form> data with JavaScript calculations
updateDiscount( ), Locking Tables in Web Database Applications
updatePassword( ), Authentication Using a Database
updates, Database Inserts, Updates, and Deletes
(see also database updates)
updating data, Updating Data
upper( ), String-comparison operators and functions
URL rewrite feature, Encoding the session ID as a GET variable
URLs, Uniform Resource Locators, URL encoding
Apache server, The Apache HTTP server, Version 1.3, Installing Apache
ApacheSSL, Installing Apache to Use SSL
embedded, Adding Links to Results
caution with, Adding Links to Results
passing data with, Passing Data with Embedded Links, Passing Data with Embedded Links
mod_ssl, Installing Apache to Use SSL
MySQL, Installing MySQL
OpenSSL, Installing OpenSSL
documentation for, Creating a Key and Certificate
passing data with, Passing Data with URLs
PHP, Installing PHP
manual for, Installation Resources
PHP Triad for Windows, Installation Resources
PostgreSQL, The MySQL DBMS
Smarty PHP template engine, Templates
this book, Installing the Winestore Examples
winestore application, What Is Hugh and Dave’s Online Wines?
XTemplate class library, Templates
user agents, The Client Tier
user input, User Input, One-Component Querying
querying with, Querying with User Input, One-Component Querying
security and, Security and User Data
user tracking, User tracking and session management
(see also session management)
user-driven querying, Database-driven querying
(see also querying, user-driven)
users
adding/deleting, Adding and Deleting Users
authenticating, Authenticating Users, Authenticating Users
accessing credentials for, Access to User Credentials from PHP
customer authentication and, Case Study: Customer Authentication, Authorizing other requests
authorizing access for, Authorizing User Access, Limits placed on IP addresses
customer management and, Winestore Customer Management
element comparisons defined by, Sorting with user-defined element comparison
functions defined by, User-Defined Functions, Reusing Functions with Include and Require Files
login requirement for, Forcing users to a login page
multiple, issues affecting, Issues in Writing Data to Databases, What isn’t covered here
reload problem and, Reloading Data and Relocation Techniques, Solving the reload problem in practice
session handlers defined by, Building User-Defined Session Handlers, Using the User-Defined Session Handler Code
which web browser used by, Which browser is the user using?
usort( )
comparing strings and, Comparing Strings
sorting arrays and, Sorting with user-defined element comparison

V

validation, Validation in the client and middle tiers, Validation in the client and middle tiers, Validation on the Server and Client, Comments
client-side, Client-Side Validation with JavaScript, Comments
for dates, Validating a Date, Validating dates, Validating dates
for email addresses, Validating email addresses
for numbers, Validating numeric fields
server-side, Server-Side Validation, Other <form> issues
validation scripts, The Validation Script
for customers, Customer Validation, Customer Validation
validator for HTML, A Page That Produces Partial or No Output
variable substitution, Variable substitution
variables, Variables
assignment and, Expressions, Operators, and Variable Assignment
content/type of, examining, Examining Variable Type and Content
debugging and, Variables
initializing with PHP, How PHP Initializes Variables, How PHP Initializes Variables
passing to functions, How Variables Are Passed to Functions, Default argument values
scope and, Variable Scope, Global variables
var_dump( ), Debugging with print_r( ) and var_dump( ), Heterogeneous arrays
verify( ), Case study: A generic JavaScript validation function
views, The MySQL DBMS
not supported in MySQL, Limitations of MySQL
void loginButtons( ), The Winestore Include Files
void selectDistinct ( ), The Winestore Include Files
void showCart( ), The Winestore Include Files
void showLogin( ), The Customer <form>, The Winestore Include Files
void showMessage( ), The Customer <form>, The Winestore Include Files
void showPricing( ), The Winestore Include Files
void showVarieties( ), The Winestore Include Files
volumeDiscount( ), Inheritance

W

W3C validator for HTML, A Page That Produces Partial or No Output
Web (the), Three-Tier Architectures
protocols and, Internet and Web Protocols, MIME
web browsers, Interacting with the web browser
(see also browsers)
web database applications
authentication and, Web Database Applications and Authentication
building, Building Stateless Applications, Recording IP addresses to detect session hijack attempts
case study illustrating, Our Case Study
(see also winestore application)
components of, Our Case Study, Components of the Winestore, Validation in the client and middle tiers
locking tables and, Locking Tables in Web Database Applications, Other locking paradigms
web pages, reload problem and, Reloading Data and Relocation Techniques, Solving the reload problem in practice
web scripting languages, Web Scripting with PHP
(see also PHP scripting language)
web servers, The Middle Tier, Web Servers
web sites, personalizing, Personalization
web spiders, The Client Tier
WHERE clause, WHERE Clauses, WHERE Clauses
join queries and, Join Queries
while loop, while
whitespace, Trimming whitespace
wildcards, Characters and wildcards
window.close( ), Interacting with the web browser
window.open( ), Interacting with the web browser
window.print( ), Interacting with the web browser
windows.history.go(-1), Interacting with the web browser
winestore application, Our Case Study
components of, Our Case Study, Components of the Winestore, Validation in the client and middle tiers
creating with SQL, Creating the winestore with SQL, Creating the winestore with SQL
customer authentication for, Case Study: Customer Authentication, Authorizing other requests
customer management for, Winestore Customer Management
customer validation for, Case Study: Customer Validation in the Winestore, Validating email addresses
database for, Quick Start Guide, Creating the winestore with SQL
loading, Loading the Winestore Database
ER modeling for, Entity-Relationship Modeling, Step 5: Many-to-many relationships
front-page panel for, Case Study: The Front-Page Panel, Fixing the queries
home page for, The Winestore Home Page, The Winestore Home Page
ordering and shipping wines from, Buying a Bottle of Wine from the Winestore, Buying a Bottle of Wine from the Winestore, Ordering and Shipping at the Winestore
regions, adding to, Database Inserts, Updates, and Deletes
relations in, Case Study: Relations in the Winestore
sample PHP scripts for, downloading/installing, Installing the Winestore Examples
scripts for, Winestore Scripts, Winestore Scripts, The Winestore Home Page, Viewing the Shopping Cart, Managing Redirection
sessions, adding to, Case Study: Adding Sessions to the Winestore, The final client entry script
shopping cart for, The Winestore Shopping Cart
system requirements for, System requirements, System requirements
wines, adding to, Adding a New Wine to the Winestore, Adding a New Wine to the Winestore
wizards, Sequence of interaction
write-lock queue, The LOCK TABLES and UNLOCK TABLES statements in MySQL

X

XTemplate class library, Templates
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.12.151.154