857 retrieving recommendations, implementing, 506-509 recommending bookmarks, 475 records deleting, 219-220 tables, 171 updating, 217-218 recursive functions, 141-143 red, green, and blue (RGB), 392 red-button.png file, 399 Redundant Array of Inexpensive Disks (RAID), 291 redundant data, avoiding (Web databases), 173-175 reference operator, 31 REGEXP keyword, 209 register() function, 486 registering session variables, 417-419 user authentication, 481, 484-486 register_form.php, 476 register_new.php, 476 regular expressions, 109 * symbol, 112 + symbol, 112 branching, 113 caret symbol (^), 112-113 character classes, 111 character sets, 110-111 curly braces ({}), 112 slash (\), 113 Smart Form Mail application, 114 special characters, 113-114 splitting strings, 116 subexpressions, 112 substrings, 115 Web references, 116 regular string data types, 200 relational database management systems (RDBMS), 69, 203 relational databases, 170-173 relationships (databases), 172-173 RELOAD privilege, 188 remote FTP servers, connecting to (mir- roring files), 369 RENAME [AS] new_table_name syntax, 219 rename() function, 351 reordering arrays, 84-86 repetition structures (loops), 45-49, 74 replacing substrings, 108-109, 115 replying to email (Warm Mail applica- tion), 618-620 repository (version control, code), 446 repudiation, 280-281 request verification, MySQL database, 246 Requests for Comments (RFCs), 357-358 require() statement, 119, 126, 128 auto_append_file (php.ini file), 125-126 auto_prepend_file (php.ini file), 125-126 filename extensions, 120 PHP tags, 120 Web site templates, 120-125 requirements online newsletters, 621-622 personalized documents, 710-712 system, user personalization, 474 reset password() function, 496 reset() function, 90 resetting passwords, user authentication, 495-499 resize image.php, 562 resources, 813-815 result identifier, retrieving query results (Web databases), 231-232 results file status functions, code, 348, 353 vote database, code to retrieve, 405 results.php script, 225-226 retrieve_message() function, 612, 615 retrieving data aggregating, 215-217 from databases, 206-207 from multiple tables, 209-214 How can we make this index more useful? Email us at indexes@samspublishing.com 41 525x index 1/24/03 3:39 PM Page 857 858 retrieving grouping, 215-217 in a particular order, 214-215 joins, 214 tables, 211-213 two-table joins, 209-211 with specific criteria, 207-209 vote database results, code, 405 return keyword, 138 return statement, 139 returning from functions, 138-140 returning rows, 217 returning values, 30, 83 reusing code advantages of, 117-118 include() statement, 126-128 require() statement, 119, 128 auto_append_file (php.ini file), 125- 126 auto_prepend_file (php.ini file), 125- 126 filename extensions, 120 PHP tags, 120 Web site templates, 120-125 reverse sorts, 81-84 reverse spam, 278 REVOKE command, 188-189 rewind() function, 65 rewinddir($dir) function, 347 rewriting code, 441-442 RFC Editor Web site, 357, 376 RFCs (Requests for Comments), 357-358 RGB (red, green, and blue), 392 Rich Text Format. See RTF risks for commercial Web sites, 269-272 rmdir() function, 347 root elements (XML), 743 root nodes (Web forum tree structure), 677 root password, setting in MySQL installa- tion, 804 rows returning, 217 tables, values, 171 unmatched, 212-213 RSA, 286 rsort() function, 81 RTF (Rich Text Format), 705, 708 generating certificates, 718-721 software, 710 rtf.php, 713, 719 running Apache, 798, 806 PHP, 790 runtime errors, 457 database interaction, 459-461 functions that don’t exist, 458-459 input data, 462 network connections, 461-462 reading/writing files, 459 S S-HTTP (Secure Hypertext Transfer Protocol), 318 safeString() function, 757 scalar variables, 71, 92-94 schemas Book-O-Rama application, 191 databases, 172, 181, 477-481 scope variable scope, 135-137 function scope, 135 global scope, 135 variables, 27-28 scope fields, 243 score.php, 713-715, 718 screening user input, 322-323 script architecture, 627, 634-635 SCRIPT style (PHP tags), 16 scripting engines, Web database architec- ture, 178 scripts admin.php script (Shopping Cart applica- tion), 544, 547 authmain.php (authentication), 422-426 breaking out of, 49 41 525x index 1/24/03 3:39 PM Page 858 859 security catalog scripts (Shopping Cart applica- tion), 519-527, 549 checkout.php script (Shopping Cart appli- cation), 536 databases, 236 edit_book_form.php (Shopping Cart application), 549 for buttons, code to call, 396 images, drawing, 390 insert_book.php, 233-235 insert_book.php (Shopping Cart applica- tion), 547-548 insert_book_form.php script (Shopping Cart application), 547 line graphs, code to output, 390 logout.php (authentication), 427 make_button.php, buttons, generating, 396 members_only.php (authentication), 426 modification dates, 434 owners, identifying, 433 process.php script (Shopping Cart appli- cation), 542-543 purchase.php script (Shopping Cart appli- cation), 537, 541 querying Web databases connections, setting up, 228-229 disconnecting from databases, 232 input data, 227-228 inserting new information into data- bases, 232-236 mysql_query() function, 230-231 retrieving results, 231-232 selecting databases, 230 results.php, 225-226 show_book.php (Shopping Cart applica- tion), 549 show_cart.php script (Shopping Cart application), 527-529 adding items to cart, 533-535 header bar summary, printing, 536 updated carts, saving, 535-536 viewing contents of cart, 530, 533 stock quotes, retrieving for Web pages, 359-360 terminating execution, 431 Warm Mail application (email client), 590, 596 search form.php, 562 search.php, 562 searching keywords, 578, 581 substrings, 106-109, 115 Secure Electronic Transaction standard, 280 Secure Hypertext Transfer Protocol (S- HTTP), 318 Secure Socket Layer. See SSL secure storage, 323-325 secure transactions Internet, 317-318 screening user input, 322-323 Secure Sockets Layer (SSL), 319-322 secure storage, 323-324 user information, 315 user machines, 316-317 your system, 318-319 Secure Web servers, 288-289 security authentication, 275, 304-309 access control, implementing, 294-302 basic authentication. See basic authen- tication digest authentication, 302 encrypting passwords, 300-301 identifying users, 293-294 mod_auth_mysql module, 310-313 multiple pages, protecting, 301-302 passwords, 282-283 storing passwords, 297-300 Web sites, 313 backing up data, 290-291 Certificate Signing Request (CSR), 289 Certifying Authorities (CAs), 287 commercial Web sites, crackers, 270 How can we make this index more useful? Email us at indexes@samspublishing.com 41 525x index 1/24/03 3:39 PM Page 859 860 security compromises, 281 databases, 246-249 digital certificates, 287-288 digital signatures, 286-287 encryption, 284 Data Encryption Standard (DES), 285 GPG (Gnu Privacy Guard), 325-329, 331-333 PGP (Pretty Good Privacy), 325 private key encryption, 285 public key encryption, 285-286 RSA, 286 SSL (Secure Sockets Layer), 332-333 firewalls, 290 hash function, 286 importance of stored information, 274 log files, 289-290 passwords, 282-283 physical security, 291-292 Secure Electronic Transaction standard, 280 Secure Socket Layer (SSL), 276 Secure Web servers, 288-289 security policies, creating, 281-282 TCP/IP networks, 275 threats, 274 Denial of Service (DoS), 278 errors in software, 279-280 exposure of confidential data, 275-276 loss or destruction of data, 276-277 modification of data, 277-278 repudiation, 280-281 transactions Internet, 317-318 screening user input, 322-323 Secure Sockets Layer (SSL), 319-322 secure storage, 323-324 user information, 315 user machines, 316-317 your system, 318-319 SELECT clause, 216 select fns.php, 562 SELECT privilege, 187 statement, 206, 214, 217 Selecting databases, in MySQL, 190-191 select_fns.php file, 575 semicolons (;), MySQL, 182 Send button, 666 send() function, 667 sending e-mail, 358 mail, Warm Mail application, 616-620 messages, online newsletters, 666, 671- 673 send_message() function, 616-618 sensitive data, storing, 323-325 serialization, 431-432 serialize() function, 431-432, 781 server logs, 264 servers. See also Web servers Apache. See Apache Web server authentication, 283 database servers, Web database architec- ture, 178 Equifax Secure Server, connecting with HTTPS, 375 FTP servers downloading files, 371-372 logging in to (mirroring files), 369 IIS (Internet Information Server), 308-309 remote FTP servers, connecting to (mir- roring files), 369 secure storage, 323-325 Secure Web servers, 288-289 services. See also Web Services adding to Web pages, 358-361 commercial Web sites, 265-268 running Apache from, 806 ServicesPage class (object-oriented devel- opment), 163-164 41 525x index 1/24/03 3:39 PM Page 860 861 showSummary() function session control, 413 authentication, 421 authmain.php script, 422-426 logout.php script, 427 members_only.php script, 426 cookies, 414-416 session IDs, 414-416 session IDs, 414-416 sessions configuring, 421 creating (Amazon), 755 destroying, 418 example session, 418-420 starting, 416 variables, 417-420 session_get_cookie_params() function, 415 session_is_registered() function, 417 session_register() function, 417 session_start() function, 416, 419 session_unregister() function, 418-420 set error handler() function, 468 SET type, 201 setcookie() function, 414-415 setting passwords, user authentication, 492-495 setting PATH in MySQL installation, 803 setting up base canvases, 399 Book-O-Rama, 203 databases, 625-627 databases of lists, 622 OpenSSL, 796 poll database, code, 404-405 settype() function, 38 set_magic_quotes_runtime() function, 430 set_time_limit() function, 373 SGML (Standard Generalized Markup Language), 740 Shopping Cart application, 511, 550 administration interface, 513, 546, 553 administration menu (admin.php), 544, 547 edit_book_form.php script, 549 insert_book.php script, 547-548 insert_book_form.php script, 547 show_book.php script, 549 administrator view, 513 book_sc database, 517-519 catalog scripts index.php, 519-524 show_book.php, 520, 526-527, 549 show_cat.php, 520, 524-525 code modules, 514 database, 518-519 extensions, 553 files, 515-516 payment module, 542-544 payment systems, 512-513 session variables, 512, 527 shopping cart module adding items, 533-535 checkout.php script, 536 header bar summary, printing, 536 purchase.php script, 537, 541 show_cart.php script, 527-530 updates, saving, 535-536 viewing contents of, 530, 533 solutions, 512-516 tracking user’s purchases, 512 user view, 513 shopping carts, 511, 746, 781 short style (PHP tags), 16 short style form variable, 20 SHOW command, 195 statement, 249-251 SHOW COLUMNS statement, 249 SHOW GRANTS statement, 249-250 SHOW TABLES statement, 249 showBrowseNode() function, 758-760 showCart() function, 785 showCategories() function, 758 showpoll.php file, 405-410 ShowSmallCart() function, 757 showSummary() function, 760, 777 How can we make this index more useful? Email us at indexes@samspublishing.com 41 525x index 1/24/03 3:39 PM Page 861 . passwords, 30 0-3 01 identifying users, 29 3-2 94 mod_auth _mysql module, 31 0-3 13 multiple pages, protecting, 30 1-3 02 passwords, 28 2-2 83 storing passwords, 29 7-3 00 Web sites, 313 backing up data, 29 0-2 91 Certificate. 30 8-3 09 remote FTP servers, connecting to (mir- roring files), 369 secure storage, 32 3-3 25 Secure Web servers, 28 8-2 89 services. See also Web Services adding to Web pages, 35 8-3 61 commercial Web. 549 insert_book .php script, 54 7-5 48 insert_book_form .php script, 547 show_book .php script, 549 administrator view, 513 book_sc database, 51 7-5 19 catalog scripts index .php, 51 9-5 24 show_book .php, 520, 52 6-5 27,