Introduction |
|
xiv | |
What Is E-Commerce? |
|
xiv | |
About This Book |
|
xv | |
Technologies Used |
|
xvi | |
What's New in This Edition |
|
xvi | |
Getting Help |
|
xvii | |
What You'll Need |
|
xvii | |
Some Fundamental Skills |
|
xvii | |
A Web Server |
|
xviii | |
And a Bit More |
|
xviii | |
|
|
1 | (48) |
|
Chapter 1 Getting Started |
|
|
2 | (26) |
|
Identifying Your Business Goals |
|
|
3 | (1) |
|
|
4 | (3) |
|
National and International Laws |
|
|
4 | (2) |
|
|
6 | (1) |
|
Choosing Web Technologies |
|
|
7 | (1) |
|
|
8 | (5) |
|
|
8 | (3) |
|
My Hosting Recommendation |
|
|
11 | (1) |
|
|
12 | (1) |
|
|
13 | (5) |
|
|
14 | (1) |
|
|
15 | (1) |
|
|
16 | (1) |
|
|
17 | (1) |
|
|
18 | (10) |
|
|
19 | (1) |
|
|
19 | (1) |
|
|
20 | (1) |
|
|
21 | (2) |
|
|
23 | (2) |
|
|
25 | (1) |
|
|
25 | (1) |
|
|
26 | (2) |
|
Chapter 2 Security Fundamentals |
|
|
28 | (21) |
|
|
28 | (5) |
|
|
29 | (1) |
|
Maximum Security Isn't the Goal |
|
|
30 | (1) |
|
|
31 | (2) |
|
|
33 | (2) |
|
|
35 | (5) |
|
|
35 | (1) |
|
|
36 | (2) |
|
|
38 | (2) |
|
|
40 | (2) |
|
|
42 | (7) |
|
|
42 | (1) |
|
|
43 | (1) |
|
|
44 | (5) |
|
PART TWO SELLING VIRTUAL PRODUCTS |
|
|
49 | (132) |
|
Chapter 3 First Site: Structure and Design |
|
|
50 | (32) |
|
|
51 | (4) |
|
|
55 | (3) |
|
Connecting to the Database |
|
|
58 | (2) |
|
|
60 | (4) |
|
|
64 | (9) |
|
|
66 | (1) |
|
Adding Dynamic Functionality to the Header |
|
|
66 | (5) |
|
|
71 | (1) |
|
|
72 | (1) |
|
Defining Helper Functions |
|
|
73 | (9) |
|
|
74 | (2) |
|
|
76 | (6) |
|
|
82 | (32) |
|
|
83 | (2) |
|
|
85 | (11) |
|
|
86 | (1) |
|
|
87 | (1) |
|
|
88 | (8) |
|
|
96 | (6) |
|
|
96 | (4) |
|
|
100 | (2) |
|
|
102 | (1) |
|
|
103 | (8) |
|
|
103 | (4) |
|
|
107 | (4) |
|
|
111 | (3) |
|
Chapter 5 Managing Site Content |
|
|
114 | (34) |
|
Creating an Administrator |
|
|
114 | (2) |
|
|
116 | (8) |
|
Creating the Basic Script |
|
|
116 | (5) |
|
|
121 | (3) |
|
|
124 | (8) |
|
|
125 | (4) |
|
|
129 | (3) |
|
|
132 | (10) |
|
|
133 | (1) |
|
|
134 | (8) |
|
|
142 | (6) |
|
|
142 | (2) |
|
|
144 | (4) |
|
|
148 | (33) |
|
|
148 | (5) |
|
|
150 | (2) |
|
|
152 | (1) |
|
|
153 | (6) |
|
|
154 | (2) |
|
Creating Test Customer Accounts |
|
|
156 | (1) |
|
|
157 | (2) |
|
|
159 | (5) |
|
Updating the Registration Page |
|
|
160 | (1) |
|
|
161 | (2) |
|
|
163 | (1) |
|
|
164 | (2) |
|
|
166 | (11) |
|
|
167 | (1) |
|
Updating the Registration Script |
|
|
167 | (2) |
|
|
169 | (7) |
|
Updating the Thanks Script |
|
|
176 | (1) |
|
|
177 | (2) |
|
|
179 | (2) |
|
PART THREE SELLING PHYSICAL PRODUCTS |
|
|
181 | (200) |
|
Chapter 7 Second Site: Structure and Design |
|
|
182 | (36) |
|
|
183 | (3) |
|
|
183 | (1) |
|
|
184 | (1) |
|
|
184 | (2) |
|
|
186 | (1) |
|
|
186 | (7) |
|
|
186 | (1) |
|
|
187 | (2) |
|
|
189 | (4) |
|
|
193 | (10) |
|
|
193 | (1) |
|
Customizing the Server Behavior |
|
|
194 | (9) |
|
|
203 | (3) |
|
Connecting to the Database |
|
|
203 | (1) |
|
|
204 | (2) |
|
|
206 | (5) |
|
|
207 | (2) |
|
|
209 | (1) |
|
Adjusting Your References |
|
|
209 | (1) |
|
Creating Constants for HTML |
|
|
210 | (1) |
|
|
211 | (7) |
|
|
211 | (3) |
|
|
214 | (4) |
|
Chapter 8 Creating a Catalog |
|
|
218 | (38) |
|
|
219 | (12) |
|
Populating the Tables Using SQL |
|
|
219 | (3) |
|
Looking at the Stored Procedure Queries |
|
|
222 | (6) |
|
Creating Stored Procedures |
|
|
228 | (3) |
|
|
231 | (5) |
|
|
232 | (2) |
|
|
234 | (2) |
|
|
236 | (7) |
|
|
237 | (2) |
|
|
239 | (4) |
|
Creating the "No Products" View |
|
|
243 | (1) |
|
|
243 | (2) |
|
|
245 | (6) |
|
Updating the Stored Procedure |
|
|
246 | (2) |
|
Updating product_functions.inc.php |
|
|
248 | (2) |
|
Updating list_goodies.html |
|
|
250 | (1) |
|
Updating list_coffees.html |
|
|
250 | (1) |
|
|
251 | (5) |
|
|
252 | (2) |
|
|
254 | (2) |
|
Chapter 9 Building a Shopping Cart |
|
|
256 | (22) |
|
|
256 | (5) |
|
|
257 | (1) |
|
|
258 | (1) |
|
|
258 | (1) |
|
Fetching the Cart's Contents |
|
|
259 | (2) |
|
Defining the Helper Functions |
|
|
261 | (1) |
|
|
262 | (9) |
|
|
263 | (4) |
|
|
267 | (4) |
|
|
271 | (4) |
|
|
271 | (2) |
|
|
273 | (2) |
|
|
275 | (3) |
|
|
278 | (60) |
|
|
278 | (2) |
|
|
280 | (1) |
|
|
281 | (15) |
|
|
281 | (2) |
|
|
283 | (5) |
|
|
288 | (8) |
|
Taking the Shipping Information |
|
|
296 | (16) |
|
|
296 | (8) |
|
|
304 | (8) |
|
Taking the Billing Information |
|
|
312 | (12) |
|
Creating the Basic PHP Script |
|
|
312 | (2) |
|
|
314 | (4) |
|
|
318 | (6) |
|
|
324 | (9) |
|
|
324 | (1) |
|
|
325 | (2) |
|
Examining the Server Response |
|
|
327 | (2) |
|
|
329 | (4) |
|
|
333 | (3) |
|
|
334 | (1) |
|
|
335 | (1) |
|
|
336 | (1) |
|
|
337 | (1) |
|
Chapter 11 Site Administration |
|
|
338 | (43) |
|
|
339 | (5) |
|
|
339 | (1) |
|
|
339 | (4) |
|
Updating create_form_input() |
|
|
343 | (1) |
|
|
344 | (15) |
|
Adding Non-Coffee Products |
|
|
344 | (9) |
|
|
353 | (6) |
|
|
359 | (5) |
|
|
364 | (4) |
|
|
368 | (9) |
|
|
369 | (2) |
|
|
371 | (6) |
|
|
377 | (4) |
|
|
381 | (141) |
|
Chapter 12 Extending the First Site |
|
|
382 | (38) |
|
|
383 | (10) |
|
|
383 | (2) |
|
|
385 | (2) |
|
|
387 | (1) |
|
|
388 | (5) |
|
|
393 | (12) |
|
Using Prepared Statements |
|
|
393 | (3) |
|
Resetting Passwords More Securely |
|
|
396 | (9) |
|
|
405 | (6) |
|
|
405 | (1) |
|
Placing HTML Content in Multiple Categories |
|
|
406 | (2) |
|
Allowing for Content Drafts |
|
|
408 | (1) |
|
Supporting Multiple Types of Administrators |
|
|
409 | (2) |
|
|
411 | (9) |
|
|
412 | (1) |
|
|
413 | (7) |
|
Chapter 13 Extending the Second Site |
|
|
420 | (36) |
|
|
421 | (25) |
|
|
421 | (6) |
|
|
427 | (8) |
|
|
435 | (1) |
|
Highlighting New Products |
|
|
436 | (1) |
|
|
437 | (1) |
|
|
437 | (8) |
|
Creating "Add to Wish List" Links |
|
|
445 | (1) |
|
Improving the Cart's Display |
|
|
445 | (1) |
|
Checking Order Status Online |
|
|
446 | (1) |
|
Administrative Suggestions |
|
|
446 | (3) |
|
|
446 | (1) |
|
|
447 | (1) |
|
|
448 | (1) |
|
|
448 | (1) |
|
Viewing Incomplete Orders |
|
|
449 | (1) |
|
|
449 | (7) |
|
Using Prepared Statements |
|
|
450 | (3) |
|
|
453 | (3) |
|
Chapter 14 Adding JavaScript and Ajax |
|
|
456 | (32) |
|
|
457 | (1) |
|
Preventing Duplicate Orders |
|
|
458 | (3) |
|
|
461 | (3) |
|
|
464 | (3) |
|
Pagination and Table Sorting |
|
|
467 | (1) |
|
|
468 | (2) |
|
|
470 | (8) |
|
Creating the Server-Side Resource |
|
|
471 | (2) |
|
|
473 | (5) |
|
|
478 | (5) |
|
|
479 | (1) |
|
Creating the Client-Side Materials |
|
|
480 | (3) |
|
|
483 | (1) |
|
|
484 | (4) |
|
|
484 | (1) |
|
Marking Reviews as Helpful |
|
|
485 | (3) |
|
Chapter 15 Using Stripe Payments |
|
|
488 | (34) |
|
|
488 | (4) |
|
|
491 | (1) |
|
|
492 | (1) |
|
|
492 | (3) |
|
Performing Single Charges |
|
|
495 | (19) |
|
|
496 | (2) |
|
|
498 | (1) |
|
|
499 | (7) |
|
|
506 | (1) |
|
|
507 | (7) |
|
|
514 | (2) |
|
|
516 | (2) |
|
|
518 | (1) |
|
Performing Recurring Charges |
|
|
519 | (3) |
Index |
|
522 | |