该文章记录了购物车的实现代码,仅供参考

book_sc_fns.php

include_once('output_fns.php');

include_once('book_fns.php');

include_once('db_fns.php');

include_once("user_auth_fns.php");

include_once("admin_fns.php");

include_once("data_valid_fns.php");

include_once("order_fns.php");

?>

output_fns.php

function do_html_header($title = '') {

// print an HTML header

// declare the session variables we want access to inside the function

if (!$_SESSION['items']) {

$_SESSION['items'] = '0';

}

if (!$_SESSION['total_price']) {

$_SESSION['total_price'] = '0.00';

}

?>

<?php echo $title; ?>

h2 { font-family: Arial, Helvetica, sans-serif; font-size: 22px; color: red; margin: 6px }

body { font-family: Arial, Helvetica, sans-serif; font-size: 13px }

li, td { font-family: Arial, Helvetica, sans-serif; font-size: 13px }

hr { color: #FF0000; width=70%; text-align=center}

a { color: #000000 }

align="left" valign="bottom" height="55" width="325"/>

if(isset($_SESSION['admin_user'])) {

echo " ";

} else {

echo "Total Items = ".$_SESSION['items'];

}

?>

if(isset($_SESSION['admin_user'])) {

display_button('logout.php', 'log-out', 'Log Out');

} else {

display_button('show_cart.php', 'view-cart', 'View Your Shopping Cart');

}

?>

if(isset($_SESSION['admin_user'])) {

echo " ";

} else {

echo "Total Price = $".number_format($_SESSION['total_price'],2);

}

?>

if($title) {

do_html_heading($title);

}

}

function do_html_footer() {

// print an HTML footer

?>

}

function do_html_heading($heading) {

// print heading

?>

<?php echo $heading; ?>

}

function do_html_URL($url, $name) {

// output URL as link and br

?>

<?php echo $name; ?>

}

function display_categories($cat_array) {

if (!is_array($cat_array)) {

echo "

No categories currently available

";

return;

}

echo "

  • ";

foreach ($cat_array as $row) {

$url = "show_cat.php?catid=".$row['catid'];

$title = $row['catname'];

echo "

";

do_html_url($url, $title);

echo "

";

}

echo "

";

echo "


";

}

function display_books($book_array) {

//display all books in the array passed in

if (!is_array($book_array)) {

echo "

No books currently available in this category

";

} else {

//create table

echo "

//create a table row for each book

foreach ($book_array as $row) {

$url = "show_book.php?isbn=".$row['isbn'];

echo "

";

if (@file_exists("images/".$row['isbn'].".jpg")) {

$title = "

style=\"border: 1px solid black\"/>";

do_html_url($url, $title);

} else {

echo " ";

}

echo "

";

$title = $row['title']." by ".$row['author'];

do_html_url($url, $title);

echo "

";

}

echo "

";

}

echo "


";

}

function display_book_details($book) {

// display all details about this book

if (is_array($book)) {

echo "

//display the picture if there is one

if (@file_exists("images/".$book['isbn'].".jpg")) {

$size = GetImageSize("images/".$book['isbn'].".jpg");

if(($size[0] > 0) && ($size[1] > 0)) {

echo "

style=\"border: 1px solid black\"/>

";

}

}

echo "

  • ";

echo "

Author: ";

echo $book['author'];

echo "

ISBN: ";

echo $book['isbn'];

echo "

Our Price: ";

echo number_format($book['price'], 2);

echo "

Description: ";

echo $book['description'];

echo "

";

} else {

echo "

The details of this book cannot be displayed at this time.

";

}

echo "


";

}

function display_checkout_form() {

//display the form that asks for name and address

?>

Your Details
Name
Address
City/Suburb
State/Province
Postal Code or Zip Code
Country
Shipping Address (leave blank if as above)
Name
Address
City/Suburb
State/Province
Postal Code or Zip Code
Country

Please press Purchase to confirm

your purchase, or Continue Shopping to add or remove items.


}

function display_shipping($shipping) {

// display table row with shipping cost and total price including shipping

?>

Shipping <?php echo number_format($shipping, 2); ?>
TOTAL INCLUDING SHIPPING $ <?php echo number_format($shipping+$_SESSION['total_price'], 2); ?>

}

function display_card_form($name) {

//display form asking for credit card details

?>

Credit Card Details
Type

VISA

MasterCard

American Express

Number
AMEX code (if required)
Expiry Date Month

01

02

03

04

05

06

07

08

09

10

11

12

Year

for ($y = date("Y"); $y < date("Y") + 10; $y++) {

echo "".$y."";

}

?>

Name on Card

Please press Purchase to confirm your purchase, or Continue Shopping to

add or remove items

}

function display_cart($cart, $change = true, $images = 1) {

// display items in shopping cart

// optionally allow changes (true or false)

// optionally include images (1 - yes, 0 - no)

echo "

Item Price Quantity Total

//display each item as a table row

foreach ($cart as $isbn => $qty) {

$book = get_book_details($isbn);

echo "

";

if($images == true) {

echo "

";

if (file_exists("images/".$isbn.".jpg")) {

$size = GetImageSize("images/".$isbn.".jpg");

if(($size[0] > 0) && ($size[1] > 0)) {

echo "

style=\"border: 1px solid black\"

width=\"".($size[0]/3)."\"

height=\"".($size[1]/3)."\"/>";

}

} else {

echo " ";

}

echo "

";

}

echo "

".$book['title']."

by ".$book['author']."

\$".number_format($book['price'], 2)."";

// if we allow changes, quantities are in text boxes

if ($change == true) {

echo "";

} else {

echo $qty;

}

echo "

\$".number_format($book['price']*$qty,2)."\n";

}

// display total row

echo "

".$_SESSION['items']."

\$".number_format($_SESSION['total_price'], 2)."

";

// display save change button

if($change == true) {

echo "

border=\"0\" alt=\"Save Changes\"/>

";

}

echo "

";

}

function display_login_form() {

// dispaly form asking for name and password

?>

Username:
Password:

}

function display_admin_menu() {

?>

Go to main site

Add a new category

Add a new book

Change admin password

}

function display_button($target, $image, $alt) {

echo "

alt=\"".$alt."\" border=\"0\" height=\"50\"

width=\"135\"/>

";

}

function display_form_button($image, $alt) {

echo "

src=\"images/".$image.".gif\"

alt=\"".$alt."\" border=\"0\" height=\"50\"

width=\"135\"/>

";

}

?>

book_fns.php

function get_categories() {

$conn = db_connect();

$query = "select catid, catname from categories";

$result = @$conn -> query($query);

if (!$result) {

return false;

}

$num_cats = @$result -> num_rows;

if ($num_cats == 0) {

return false;

}

$result = db_result_to_array($result);

return $result;

}

function get_category_name($catid) {

$conn = db_connect();

$query = "select catname from categories where catid = ".$catid."";

$result = @$conn -> query($query);

if (!$result) {

return false;

}

$num_cats = @$result -> num_rows;

if ($num_cats == 0) {

return false;

}

$row = $result -> fetch_object();

return $row -> catname;

}

function get_books($catid) {

$conn = db_connect();

$query = "select * from books where catid = ".$catid."";

$result = @$conn -> query($query);

if (!$result) {

return false;

}

$num_cats = @$result -> num_rows;

if ($num_cats == 0) {

return false;

}

$result = db_result_to_array($result);

return $result;

}

function get_book_details($isbn) {

if ((!$isbn) || $isbn == '') {

return false;

}

$conn = db_connect();

$query = "select * from books where isbn = ".$isbn."";

$result = @$conn -> query($query);

if (!$result) {

return false;

}

$row = @$result -> fetch_assoc();

return $row;

}

function calculate_price($cart) {

$price = 0;

if (is_array($cart)) {

$conn = db_connect();

foreach ($cart as $isbn => $qty) {

$query = "select price from books where isbn='".$isbn."'";

$result = $conn -> query($query);

if ($result) {

$items = $result -> fetch_object();

$item_price = $items -> price;

$price += $item_price * $qty;

}

}

}

return $price;

}

function calculate_items($cart) {

$items = 0;

if (is_array($cart)) {

$conn = db_connect();

foreach ($cart as $isbn => $qty) {

$items += $qty;

}

}

return $items;

}

function calculate_shipping_cost() {

return 20.00;

}

?>

db_fns.php

function db_connect() {

$result = new mysqli('127.0.0.1', 'book_sc', 'password', 'book_sc');

if (!$result) {

return false;

}

$result->autocommit(TRUE);

return $result;

}

function db_result_to_array($result) {

$res_array = array();

for ($count=0; $row = $result->fetch_assoc(); $count++) {

$res_array[$count] = $row;

}

return $res_array;

}

?>

user_auth_fns.php

require_once('db_fns.php');

function login($username, $password) {

// check username and password with db

// if yes, return true

// else return false

// connect to db

$conn = db_connect();

if (!$conn) {

return 0;

}

// check if username is unique

$result = $conn->query("select * from admin

where username='".$username."'

and password = sha1('".$password."')");

if (!$result) {

return 0;

}

if ($result->num_rows>0) {

return 1;

} else {

return 0;

}

}

function check_admin_user() {

// see if somebody is logged in and notify them if not

if (isset($_SESSION['admin_user'])) {

return true;

} else {

return false;

}

}

function change_password($username, $old_password, $new_password) {

// change password for username/old_password to new_password

// return true or false

// if the old password is right

// change their password to new_password and return true

// else return false

if (login($username, $old_password)) {

if (!($conn = db_connect())) {

return false;

}

$result = $conn->query("update admin

set password = sha1('".$new_password."')

where username = '".$username."'");

if (!$result) {

return false; // not changed

} else {

return true; // changed successfully

}

} else {

return false; // old password was wrong

}

}

?>

admin_fns.php

// This file contains functions used by the admin interface

// for the Book-O-Rama shopping cart.

function display_category_form($category = '') {

// This displays the category form.

// This form can be used for inserting or editing categories.

// To insert, don't pass any parameters. This will set $edit

// to false, and the form will go to insert_category.php.

// To update, pass an array containing a category. The

// form will contain the old data and point to update_category.php.

// It will also add a "Delete category" button.

// if passed an existing category, proceed in "edit mode"

$edit = is_array($category);

// most of the form is in plain HTML with some

// optional PHP bits throughout

?>

action="<?php echo $edit ? 'edit_category.php' : 'insert_category.php'; ?>">

Category Name:

value="<?php echo $edit ? $category['catname'] : ''; ?>" />

align="center">

if ($edit) {

echo "";

}

?>

value="<?php echo $edit ? 'Update' : 'Add'; ?> Category" />

if ($edit) {

//allow deletion of existing categories

echo "

";

}

?>

}

function display_book_form($book = '') {

// This displays the book form.

// It is very similar to the category form.

// This form can be used for inserting or editing books.

// To insert, don't pass any parameters. This will set $edit

// to false, and the form will go to insert_book.php.

// To update, pass an array containing a book. The

// form will be displayed with the old data and point to update_book.php.

// It will also add a "Delete book" button.

// if passed an existing book, proceed in "edit mode"

$edit = is_array($book);

// most of the form is in plain HTML with some

// optional PHP bits throughout

?>

action="<?php echo $edit ? 'edit_book.php' : 'insert_book.php';?>">

ISBN:

value="<?php echo $edit ? $book['isbn'] : ''; ?>" />

Book Title:

value="<?php echo $edit ? $book['title'] : ''; ?>" />

Book Author:

value="<?php echo $edit ? $book['author'] : ''; ?>" />

Category:

// list of possible categories comes from database

$cat_array=get_categories();

foreach ($cat_array as $thiscat) {

echo "

// if existing book, put in current catgory

if (($edit) && ($thiscat['catid'] == $book['catid'])) {

echo " selected";

}

echo ">".$thiscat['catname']."

";

}

?>

Price:

value="<?php echo $edit ? $book['price'] : ''; ?>" />

Description:

name="description"><?php echo $edit ? $book['description'] : ''; ?>

align="center">

if ($edit)

// we need the old isbn to find book in database

// if the isbn is being updated

echo "

value=\"".$book['isbn']."\" />";

?>

value="<?php echo $edit ? 'Update' : 'Add'; ?> Book" />

if ($edit) {

echo "

value=\"".$book['isbn']."\" />

";

}

?>

}

function display_password_form() {

// displays html change password form

?>

Old password:
New password:
Repeat new password:

}

function insert_category($catname) {

// inserts a new category into the database

$conn = db_connect();

// check category does not already exist

$query = "select *

from categories

where catname='".$catname."'";

$result = $conn->query($query);

if ((!$result) || ($result->num_rows!=0)) {

return false;

}

// insert new category

$query = "insert into categories values

(0, '".$catname."')";

$result = $conn->query($query);

if (!$result) {

return false;

} else {

return true;

}

}

function insert_book($isbn, $title, $author, $catid, $price, $description) {

// insert a new book into the database

$conn = db_connect();

// check book does not already exist

$query = "select *

from books

where isbn='".$isbn."'";

$result = $conn->query($query);

if ((!$result) || ($result->num_rows!=0)) {

return false;

}

// insert new book

$query = "insert into books values

('".$isbn."', '".$author."', '".$title."',

'".$catid."', '".$price."', '".$description."')";

$result = $conn->query($query);

if (!$result) {

return false;

} else {

return true;

}

}

function update_category($catid, $catname) {

// change the name of category with catid in the database

$conn = db_connect();

$query = "update categories

set catname='".$catname."'

where catid='".$catid."'";

$result = @$conn->query($query);

if (!$result) {

return false;

} else {

return true;

}

}

function update_book($oldisbn, $isbn, $title, $author, $catid,

$price, $description) {

// change details of book stored under $oldisbn in

// the database to new details in arguments

$conn = db_connect();

$query = "update books

set isbn= '".$isbn."',

title = '".$title."',

author = '".$author."',

catid = '".$catid."',

price = '".$price."',

description = '".$description."'

where isbn = '".$oldisbn."'";

$result = @$conn->query($query);

if (!$result) {

return false;

} else {

return true;

}

}

function delete_category($catid) {

// Remove the category identified by catid from the db

// If there are books in the category, it will not

// be removed and the function will return false.

$conn = db_connect();

// check if there are any books in category

// to avoid deletion anomalies

$query = "select *

from books

where catid=".$catid."";

$result = @$conn->query($query);

if ((!$result) || (@$result->num_rows > 0)) {

return false;

}

$query = "delete from categories

where catid='".$catid."'";

$result = @$conn->query($query);

if (!$result) {

return false;

} else {

return true;

}

}

function delete_book($isbn) {

// Deletes the book identified by $isbn from the database.

$conn = db_connect();

$query = "delete from books

where isbn='".$isbn."'";

$result = @$conn->query($query);

if (!$result) {

return false;

} else {

return true;

}

}

?>

data_valid_fns.php

function filled_out($form_vars) {

// test that each variable has a value

foreach ($form_vars as $key => $value) {

if ((!isset($key)) || ($value == '')) {

return false;

}

}

return true;

}

function valid_email($address) {

// check an email address is possibly valid

if (ereg("^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$", $address)) {

return true;

} else {

return false;

}

}

?>

order_fns.php

function process_card($card_details) {

// connect to payment gateway or

// use gpg to encrypt and mail or

// store in DB if you really want to

return true;

}

function insert_order($order_details) {

// extract order_details out as variables

extract($order_details);

// set shipping address same as address

if((!$ship_name) && (!$ship_address) && (!$ship_city) && (!$ship_state) && (!$ship_zip) && (!$ship_country)) {

$ship_name = $name;

$ship_address = $address;

$ship_city = $city;

$ship_state = $state;

$ship_zip = $zip;

$ship_country = $country;

}

$conn = db_connect();

// we want to insert the order as a transaction

// start one by turning off autocommit

$conn->autocommit(FALSE);

// insert customer address

$query = "select customerid from customers where

name = '".$name."' and address = '".$address."'

and city = '".$city."' and state = '".$state."'

and zip = '".$zip."' and country = '".$country."'";

$result = $conn->query($query);

if($result->num_rows>0) {

$customer = $result->fetch_object();

$customerid = $customer->customerid;

} else {

$query = "insert into customers values

(0, '".$name."','".$address."','".$city."','".$state."','".$zip."','".$country."')";

$result = $conn->query($query);

if (!$result) {

return false;

}

}

$customerid = $conn->insert_id;

$date = date("Y-m-d");

$query = "insert into orders values

(0, '".$customerid."', '".$_SESSION['total_price']."', '".$date."', '".'PARTIAL'."',

'".$ship_name."', '".$ship_address."', '".$ship_city."', '".$ship_state."',

'".$ship_zip."', '".$ship_country."')";

$result = $conn->query($query);

if (!$result) {

return false;

}

$query = "select orderid from orders where

customerid = '".$customerid."' and

amount > (".$_SESSION['total_price']."-.001) and

amount < (".$_SESSION['total_price']."+.001) and

date = '".$date."' and

order_status = 'PARTIAL' and

ship_name = '".$ship_name."' and

ship_address = '".$ship_address."' and

ship_city = '".$ship_city."' and

ship_state = '".$ship_state."' and

ship_zip = '".$ship_zip."' and

ship_country = '".$ship_country."'";

$result = $conn->query($query);

if($result->num_rows>0) {

$order = $result->fetch_object();

$orderid = $order->orderid;

} else {

return false;

}

// insert each book

foreach($_SESSION['cart'] as $isbn => $quantity) {

$detail = get_book_details($isbn);

$query = "delete from order_items where

orderid = '".$orderid."' and isbn = '".$isbn."'";

$result = $conn->query($query);

$query = "insert into order_items values

('".$orderid."', '".$isbn."', ".$detail['price'].", $quantity)";

$result = $conn->query($query);

if(!$result) {

return false;

}

}

// end transaction

$conn->commit();

$conn->autocommit(TRUE);

return $orderid;

}

?>

index.php

require_once("book_sc_fns.php");

// The shopping cart needs sessions, so start one

session_start();

// Display header

do_html_header("Book-store");

// Show cat title

echo "

Please chose a category:

";

$cat_array = get_categories();

display_categories($cat_array);

// If login as admin, show add, delete, edit cat link

if (isset($_SESSION['admin_user'])) {

display_button("admin.php", "admin-menu", "Admin Menu");

}

do_html_footer();

?>

login.php

require_once("book_sc_fns.php");

do_html_header("Administration");

display_login_form();

do_html_footer();

?>

logout.php

// include function files for this application

require_once('book_sc_fns.php');

session_start();

$old_user = $_SESSION['admin_user']; // store to test if they *were* logged in

unset($_SESSION['admin_user']);

session_destroy();

// start output html

do_html_header("Logging Out");

if (!empty($old_user)) {

echo "

Logged out.

";

do_html_url("login.php", "Login");

} else {

// if they weren't logged in but came to this page somehow

echo "

You were not logged in, and so have not been logged out.

";

do_html_url("login.php", "Login");

}

do_html_footer();

?>

admin.php

require_once("book_sc_fns.php");

session_start();

if ($_POST["username"] && $_POST["passwd"]) {

$username = $_POST["username"];

$passwd = $_POST["passwd"];

if (login($username, $passwd)) {

$_SESSION["admin_user"] = $username;

}else {

do_html_header("Problem:");

echo "

You could not be logged in.

You must be logged in to view this page.

";

do_html_url("login.php", "Login");

do_html_footer();

exit;

}

}

do_html_header("Administrtion");

if (check_admin_user()) {

display_admin_menu();

}else {

echo "

You are not authorized to enter the administration area.

";

}

do_html_footer();

?>

insert_book_form.php

require_once("book_sc_fns.php");

session_start();

do_html_header("Add a category");

if (check_admin_user()) {

display_book_form();

do_html_url("admin.php", "Back to administration menu");

}else {

echo "

You are not authorized to enter the administration area.

";

}

do_html_footer();

?>

insert_book.php

require_once("book_sc_fns.php");

session_start();

do_html_header("Adding a book");

if (check_admin_user()) {

if (filled_out($_POST)) {

$isbn = $_POST['isbn'];

$title = $_POST['title'];

$author = $_POST['author'];

$catid = $_POST['catid'];

$price = $_POST['price'];

$description = $_POST['description'];

if (insert_book($isbn, $title, $author, $catid, $price, $description)) {

echo "

Book ".stripslashes($title)." was added to the database.

";

}else {

echo "

Book ".stripslashes($title)." could not be added to the database.

";

}

}else {

echo "

You have not filled out the form. Please try again

";

}

}else {

echo "

You are not authorized to enter the administration area.

";

}

do_html_footer();

?>

insert_category_form.php

require_once("book_sc_fns.php");

session_start();

do_html_header("Add a category");

if (check_admin_user()) {

display_category_form();

do_html_url("admin.php", "Back to administration menu");

}else {

echo "

You are not authorized to enter the administration area.

";

}

do_html_footer();

?>

insert_category.php

require_once("book_sc_fns.php");

session_start();

do_html_header("Adding a category");

if (check_admin_user()) {

if (filled_out($_POST)) {

$catname = $_POST['catname'];

if (insert_category($catname)) {

echo "

Category \"".$catname."\" was added to the database.

";

}else {

echo "

Category \"".$catname."\" could not be added to the database.

";

}

}else {

echo "

You have not filled out the form. Please try again

";

}

}else {

echo "

You are not authorized to enter the administration area.

";

}

do_html_footer();

?>

delete_book.php

require_once("book_sc_fns.php");

session_start();

do_html_header("Deleting book");

if (check_admin_user()) {

if (isset($_POST['isbn'])) {

if (delete_book($_POST['isbn'])) {

echo "

Book was deleted.

";

}else {

echo "

Book could not be deleted.

";

}

}else {

echo "

No Book specified. Please try again

";

}

do_html_url("admin.php", "Back to administation menu");

}else {

echo "

You are not authorized to enter the administration area.

";

}

do_html_footer();

?>

delete_category.php

require_once("book_sc_fns.php");

session_start();

do_html_header("Deleting category");

if (check_admin_user()) {

if (isset($_POST['catid'])) {

if (delete_category($_POST['catid'])) {

echo "

Category was deleted.

";

}else {

echo "

Category could not be deleted.

";

}

}else {

echo "

No category specified. Please try again

";

}

do_html_url("admin.php", "Back to administation menu");

}else {

echo "

You are not authorized to enter the administration area.

";

}

do_html_footer();

?>

edit_book_form.php

require_once("book_sc_fns.php");

session_start();

do_html_header("Edit book details");

if (check_admin_user()) {

if ($book = get_book_details($_GET['isbn'])) {

display_book_form($book);

}else {

echo "

Could not retrieve book details.

";

}

do_html_url("admin.php", "Back to administration menu");

}else {

echo "

You are not authorized to enter the administration area.

";

}

do_html_footer();

?>

edit_book.php

require_once("book_sc_fns.php");

session_start();

do_html_header("Updating book");

if (check_admin_user()) {

if (filled_out($_POST)) {

$old_isbn = $_POST['oldisbn'];

$isbn = $_POST['isbn'];

$title = $_POST['title'];

$author = $_POST['author'];

$catid = $_POST['catid'];

$price = $_POST['price'];

$description = $_POST['description'];

if (update_book($old_isbn, $isbn, $title, $author, $catid, $price, $description)) {

echo "

Book was updated.

";

}else {

echo "

Book could not be updated.

";

}

}else {

echo "

You have not filled out the form. Please try again

";

}

do_html_url("admin.php", "Back to administation menu");

}else {

echo "

You are not authorized to enter the administration area.

";

}

do_html_footer();

?>

edit_category_form.php

require_once("book_sc_fns.php");

session_start();

do_html_header("Edit category");

if (check_admin_user()) {

if ($catname = get_category_name($_GET['catid'])) {

$catid = $_GET['catid'];

$cat = compact('catname', 'catid');

display_category_form($cat);

}else {

echo "

Could not retrieve catogory details.

";

}

do_html_url("admin.php", "Back to administration menu");

}else {

echo "

You are not authorized to enter the administration area.

";

}

do_html_footer();

?>

edit_category.php

require_once("book_sc_fns.php");

session_start();

do_html_header("Updating category");

if (check_admin_user()) {

if (filled_out($_POST)) {

if (update_category($_POST['catid'], $_POST['catname'])) {

echo "

Category was updated.

";

}else {

echo "

Category could not be updated.

";

}

}else {

echo "

You have not filled out the form. Please try again

";

}

do_html_url("admin.php", "Back to administation menu");

}else {

echo "

You are not authorized to enter the administration area.

";

}

do_html_footer();

?>

change_password_form.php

require_once('book_sc_fns.php');

session_start();

do_html_header("Change administrator password");

check_admin_user();

display_password_form();

do_html_url("admin.php", "Back to administration menu");

do_html_footer();

?>

change_password.php

require_once('book_sc_fns.php');

session_start();

do_html_header('Changing password');

check_admin_user();

if (!filled_out($_POST)) {

echo "

You have not filled out the form completely.

Please try again.

";

do_html_url("admin.php", "Back to administration menu");

do_html_footer();

exit;

} else {

$new_passwd = $_POST['new_passwd'];

$new_passwd2 = $_POST['new_passwd2'];

$old_passwd = $_POST['old_passwd'];

if ($new_passwd != $new_passwd2) {

echo "

Passwords entered were not the same. Not changed.

";

} else if ((strlen($new_passwd)>16) || (strlen($new_passwd)<6)) {

echo "

New password must be between 6 and 16 characters. Try again.

";

} else {

// attempt update

if (change_password($_SESSION['admin_user'], $old_passwd, $new_passwd)) {

echo "

Password changed.

";

} else {

echo "

Password could not be changed.

";

}

}

}

do_html_url("admin.php", "Back to administration menu");

do_html_footer();

?>

checkout.php

include("book_sc_fns.php");

session_start();

do_html_header("Checkout");

if (($_SESSION['cart']) && (array_count_values($_SESSION['cart']))) {

display_cart($_SESSION['cart'], false, 0);

display_checkout_form();

}else {

echo "

There are no items in your cart

";

}

display_button("show_cart.php", "continue-shopping", "Continue Shopping");

do_html_footer();

?>

process.php

include("book_sc_fns.php");

session_start();

do_html_header("Checkout");

$card_type = $_POST['card_type'];

$card_number = $_POST['card_number'];

$card_month = $_POST['card_month'];

$card_year = $_POST['card_year'];

$card_name = $_POST['card_name'];

if ($_SESSION["cart"] && ($card_type) && ($card_number)

&& ($card_month) && ($card_year) && ($card_name)) {

display_cart($_SESSION['cart'], false, 0);

display_shipping(calculate_shipping_cost());

if (process_card($_POST)) {

session_destroy();

echo "

Thank you for shopping with us.Your order has been placed.

";

display_button("index.php", "continue-shopping", "Continue Shopping");

}else {

echo "

Could not process your card.Please contact the card issuer or try again.

";

display_button("purchase.php", "back", "Back");

}

}else {

echo "

You did not fill in all the fields, please try again.


";

display_button("purchase.php", "back", "Back");

}

do_html_footer();

?>

purchase.php

include("book_sc_fns.php");

session_start();

do_html_header("Checkout");

// Info

$name = $_POST['name'];

$address = $_POST['address'];

$city = $_POST['city'];

$zip = $_POST['zip'];

$country = $_POST['country'];

// Check if filled out

if (($_SESSION['cart']) && ($name) && ($address) && ($city) && ($zip) && ($country)) {

if ((insert_order($_POST)) != false) {

display_cart($_SESSION['cart'], false, 0);

display_shipping(calculate_shipping_cost());

display_card_form($name);

display_button('show_cart.php', 'continue-shopping', 'Continu Shopping');

}else {

echo "

Could not store data, please try again.


";

display_button('checkout.php', 'back', 'back');

}

}else {

echo "

You did not fill in all the fields, please try again.


";

display_button('checkout.php', 'back', 'back');

}

do_html_footer();

?>

show_book.php

// include function files for this application

require_once('book_sc_fns.php');

session_start();

$isbn = $_GET['isbn'];

$book = get_book_details($isbn);

do_html_header($book['title']);

display_book_details($book);

$target = "index.php";

if ($book['catid']) {

$target = "show_cat.php?catid=".$book['catid']."";

}

if (check_admin_user()) {

display_button("edit_book_form.php?isbn=".$isbn."", "edit-item", "Edit Book");

display_button("admin.php", "admin-menu", "Admin Menu");

display_button($target, "continue", "Continue");

}else {

display_button("show_cart.php?new=".$isbn."", "add-to-cart", "Add ".$book['title']." To My Shopping Cart");

display_button($target, "continue-shopping", "Continue Shopping");

}

do_html_footer();

?>

show_cart.php

include("book_sc_fns.php");

session_start();

@$new = $_GET['new'];

if ($new) {

// If cart is null create a new cat

if (!isset($_SESSION['cart'])) {

$_SESSION['cart'] = array();

$_SESSION['item'] = 0;

$_SESSION['total_price'] = '0.00';

}

// book count

if (isset($_SESSION['cart'][$new])) {

$_SESSION['cart'][$new] ++;

}else {

$_SESSION['cart'][$new] = 1;

}

$_SESSION['total_price'] = calculate_price($_SESSION['cart']);

$_SESSION['items'] = calculate_items($_SESSION['cart']);

}

// Save

if (isset($_POST['save'])) {

foreach ($_SESSION['cart'] as $isbn => $qty) {

if ($_POST[$isbn] == '0') {

unset($_SESSION['cart'][$isbn]);

}else {

$_SESSION['cart'][$isbn] = $_POST[$isbn];

}

}

$_SESSION['total_price'] = calculate_price($_SESSION['cart']);

$_SESSION['items'] = calculate_items($_SESSION['cart']);

}

do_html_header("Your shopping cart");

// Display the cart

if ($_SESSION['cart'] && (array_count_values($_SESSION['cart']))) {

display_cart($_SESSION['cart']);

}else {

echo "

There are no items in your cart


";

}

$target = "index.php";

if ($new) {

$detail = get_book_details($new);

if ($detail['catid']) {

$target = "show_cat.php?catid=".$detail['catid'];

}

}

display_button($target, "continue-shopping", "Continue Shopping");

display_button("checkout.php", "go-to-checkout", "Go To Checkout");

do_html_footer();

?>

show_cat.php

// include function files for this application

require_once('book_sc_fns.php');

session_start();

$catid = $_GET['catid'];

$name = get_category_name($catid);

do_html_header($name);

// Get books

$book_array = get_books($catid);

display_books($book_array);

if (isset($_SESSION['admin_user'])) {

display_button("index.php", "continue", "Continue Shopping");

display_button("admin.php", "admin-menu", "Admin Menu");

display_button("edit_category_form.php?catid=".$catid."", "edit-category", "Edit category");

}else {

display_button("index.php", "continue-shopping", "Continue Shopping");

}

do_html_footer();

?>

说明

php getdbused,PHP之购物车相关推荐

  1. 基于Vue开发的购物车案例

    需求:具有增加数量.减少数量.移除书信息.计算总价等功能. HTML: <!DOCTYPE html> <html lang="en"> <head& ...

  2. python实战演练_python实战演练(三)购物车程序

    #-*- Coding:utf-8 -*-#Author: kking '''购物车需求 用户入口: 1.商品信息存在文件里 2.已购商品,余额记录.第一次启动程序时需要记录工资,第二次启动程序时谈出 ...

  3. java 购物车价格类型_WooCommerce - 为购物车中的每个产品添加自定义价格

    更新:对于WooCommerce 3.0,在WooCommerce 3.0版中更改购物车商品价格 您可以使用 woocommerce_before_calculate_totals hook来自定义购 ...

  4. 实例 - 购物车 (列表、循环)

    salary = int(input('Please input your money:'))product = [('iphone6s',5800),('mac bood',9000),('coff ...

  5. Python 基础 - Day 2 Assignment - ShoppingCart 购物车程序

    作业要求 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4.可随 ...

  6. python购物车程序详解用字典_Python_购物车程序[列表嵌套字典]

    1 product = [{"名称": "电脑", "价格": 999, '数量': 0}, {"名称": " ...

  7. 一个逻辑清晰的购物车模型

    效果图 2017-03-25 18.28.23.gif GitHub: https://github.com/lll1024/JVShopcart 说明 这是一个具备常规功能并方便改造的购物车模型 一 ...

  8. Day2 - Python基础2作业【文件操作--购物车程序(用户操作及商户操作)】

    1 # ----user.txt---- 2 3 {'已购商品': '', '消费记录': '', '余额': 0} 4 5 6 # ----commodity.txt---- 7 8 iPhone, ...

  9. 美多商城之购物车(展示商品页面简单购物车)

    三.展示商品页面简单购物车 需求:用户鼠标悬停在商品页面右上角购物车标签上,以下拉框形式展示当前购物车数据. 3.1. 简单购物车数据接口设计和定义 1.请求方式 选项 方案 请求方法 GET 请求地 ...

最新文章

  1. SpringData —— HelloWorld
  2. ITK:遍历图像的线
  3. 两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i];...
  4. 对二维数组进行Zig-Zag扫描(C++)
  5. Modbus通信协议 【 初识 Modbus】
  6. prometheus altermanager邮件报警
  7. (88)FPGA面试题-使用Verilog HDL编写二进制转格雷码
  8. SPOJ Problem 22:Triangle From Centroid
  9. mysql判断是否包含某个字符的方法
  10. HDU1013 POJ1519 Digital Roots(解法二)【废除!!!】
  11. java8函数式编程闭包_java8入门必备—函数式编程思维——函数式语言向语言和运行时让渡控制权的途径——迭代让位于高阶函数、闭包...
  12. ペイペイ mini program_小姐姐最爱的MINI,你了解吗?
  13. bzoj 4516: [Sdoi2016]生成魔咒
  14. SAP-MM知识精解-批次管理(02)- 批次级别及其影响
  15. 相关系数excel_数学建模笔记——相关系数
  16. 还在为表情包而发愁吗?今天教你用 Python 画一个奸笑(滑稽)表情(内附源码)
  17. usaco#2018#January#Silver
  18. python selenium学习之新浪微博
  19. 潜力无限的BTF,开启区块链金融新格局
  20. 单反?手机?华为回应微博P30系列海报争议

热门文章

  1. 上机环境是什么意思_380元入手RX580满血显卡,跑分17万,还要什么自行车
  2. 【NOIP2015提高组】子串 区间DP+滚动数组优化
  3. html 按钮光束,图文详解,原来3dmax光束特效的制作这么简单!
  4. 罗斯蒙特电磁流量计8723说明书_罗斯蒙特8732E电磁流量计对环境和温度的限制
  5. 2345天气王怎么查看历史天气 2345天气王如何查看历史天气
  6. win11文件夹怎么放到文件栏
  7. Python装饰器(一)
  8. java xml约束_[Java教程]XML约束
  9. 计算机专业怎样提升竞争力,新形势下如何提高计算机专业学生就业竞争力.doc...
  10. java水泡_JAVA图像处理系列(八)——艺术效果:水泡