Php Getting Started Tutorial 8 (shopping cart session operation)

Source: Internet
Author: User
Tags php code php tutorial trim

It mainly describes some of the shopping cart code and demonstrates the php Tutorial code for session operations.

<? Php
//
// Add_item.php:
// Add an item to the shopping cart.
//
Session_start ();
If (session_is_registered ('cart ')){
Session_register ('cart ');
}

Require 'Lib. inc. Php'; // loadproducts ()

Loadproducts (); // load products in $ master_products_list

// Make $ curr_product global
$ Curr_product = array ();

// Loop through all the products and pull up the product
// That we are interested in

 

Foreach ($ master_products_list as $ prod_id => $ product ){
If (trim ($ prod_id) = trim ($ _ get [id]) {
$ Curr_product = $ product;
    }
}


// Register our session
// Session_register ('cart ');
// If (session_is_registered ('cart') echo "registered ";

 

If ($ _ post [ordered]) {// if they have chosen the product

Array_push ($ _ session [cart] [products], array (trim ($ _ post [id]), $ _ post [quantity]);
$ _ Session [cart] [num_items] + =$ _ post [quantity];
 
}
?>

<Html>
<Head>
<Title>
<? Php if ($ _ post [ordered]) {?>
Added <? Php echo $ curr_product [name];?> To your shopping basket
<? Php} else {?>
Add <? Php echo $ curr_product [name];?> To your shopping basket
<? Php }?>
</Title>
</Head>
<Body>
<? Php if ($ _ post [ordered]) {?>
<H1> <? Php echo $ curr_product [name];?>
Successfully added to the shopping basket

<A href = "cart. php"> Return to the </a> item list page.
<? Php} else {?>
<H1> add <? Php echo $ curr_product [name];?> To your shopping basket

<Form action = "<? Php echo $ php_self;?> "Method =" post ">
Product Name: <? Php echo $ curr_product [name];?>
<Br>
Product description: <? Php echo $ curr_product [desc];?>
<Br>
Unit Price: RMB <? Php echo $ curr_product [price];?>
<Br>
Item quantity: <input type = "text" size = "7" name = "quantity">
<Input type = "hidden" name = "id" value = "<? Php echo $ _ get [id];?> ">
<Input type = "hidden" name = "ordered" value = "1">

<Input type = "submit" value = "Add to shopping bar">
</Form>
<? Php }?>
</Body>
</Html>


Php code

<? Php
//
// Cart. php: the main file
//
Session_start ();

Require 'Lib. inc. Php ';
// Determine whether cart is registered as the shopping basket session variable. If cart is not registered, the cart variable is registered.
If (session_is_registered ('cart ')){
Session_register ('cart ');
}


// If the shopping basket is not initialized, the shopping basket is initialized.
If (! Isset ($ _ session [cart] [num_items]) {
$ _ Session [cart] = array ("num_items" => 0,
"Products" => array ());
}


// From site_lib.inc, loads the $ master_products_list array
Loadproducts (); // load the item list
?>

<Html>
<Head>
<Title> demonstrate the shopping basket program for session tracking </title>
</Head>

<Body>

<H1> Welcome to the online store

<? Php
If ($ _ session [cart] [num_items]) {// if there is something to show
?>
<H2> items in the current shopping basket <Br>
<Table border = "2" cellpadding = "5" cellspacing = "2">
<Tr>
<Th>
Product Name
</Th>
<Th>
Product Description
</Th>
<Th>
Unit Price
</Th>
<Th>
Quantity
</Th>
<Th>
& Nbsp;
</Th>
</Tr>
<? Php
  
// Loop through the products
Foreach ($ _ session [cart] [products] as $ I =>$ product ){
$ Product_id = $ product [0];
$ Quantity = $ product [1];

$ Total + = $ quantity *
(Double) $ master_products_list [$ product_id] [price];
?>
<Tr>
<Td>
<? Php echo $ master_products_list [$ product_id] [name];?>
</Td>
<Td>
<? Php echo $ master_products_list [$ product_id] [desc];?>
</Td>
<Td>
<? Php echo $ master_products_list [$ product_id] [price];?>
</Td>
<Td>
<Form action = "change_quant.php" method = "post">
<Input type = "hidden" name = "id" value = "<? Php echo $ I;?> ">
<Input type = "text" size = "3" name = "quantity"
Value = "<? Php echo $ quantity;?> ">
</Td>
<Td>
<Input type = "submit" value = "quantity change">
</Form>
</Td>
</Tr>
<? Php
    }
?>
<Tr>
<Td colspan = "2" align = "right">
<B> Total: </B>
</Td>
<Td colspan = "2">
RMB: <? Php echo $ total;?>
</Td>
<Td> & nbsp; </td>
</Tr>
</Table>
<Br>
<Br>
<? Php
}
?>

<H2> items to be sold in the store <Br>
<I>
We provide the following products for sale:
</I>
<Br>
<Table border = "2" cellpadding = "5" cellspacing = "2">
<Tr>
<Th>
Product Name
</Th>
<Th>
Product Description
</Th>
<Th>
Unit Price
</Th>
<Th>
& Nbsp;
</Th>
</Tr>
<? Php
// Show all of the products
Foreach ($ master_products_list as $ product_id => $ item ){
?>
<Tr>
<Td>
<? Php echo $ item [name];?>
</Td>
<Td>
<? Php echo $ item [desc];?>
</Td>
<Td>
$ <? Php echo $ item [price];?>
</Td>
<Td>
<A href = "add_item.php? Id = <? Php echo $ product_id;?> ">
Add to shopping basket
</A>
</Td>
</Tr>
<? Php
    }

?>
</Table>

Shopping cart

<? Php
//
// Change_quant.php:
// Change the quantity of an item in the shopping cart.
//
Session_start ();
If (session_is_registered ('cart ')){
Session_register ('cart ');
}

// Typecast to int, making sure we access
// Right element below
$ I = (int) $ _ post [id];

// Save the old number of products for display
// And arithmetic
$ Old_num = $ _ session [cart] [products] [$ I] [1];

If ($ _ post [quantity]) {
$ _ Session [cart] [products] [$ I] [1] =$ _ post [quantity]; // change the quantity
} Else {
Unset ($ _ session [cart] [products] [$ I]); // send the product into oblivion
}

// Update the number of items
$ _ Session [cart] [num_items] = ($ old_num >$ _ post [quantity])?
$ _ Session [cart] [num_items]-($ old_num-$ _ post [quantity]):
$ _ Session [cart] [num_items] + ($ _ post [quantity]-$ old_num );
?>

<Html>
<Head>
<Title>
Quantity modification
</Title>
</Head>
<Body>
<H1> count: <? Php echo $ old_num;?> Change
<? Php echo $ _ post [quantity];?> </H1>
<A href = "cart. php"> Return to the </a> item list page.
</Body>
</Html>

Open a file

<? Php
// Item array
$ Master_products_list = array ();


// Function for loading item data
Function loadproducts (){
Global $ master_products_list;
$ Filename = 'products.txt ';

$ Fp = @ fopen ($ filename, "r ")
Or die ("opening the $ filename File failed ");
@ Flock ($ fp, 1)
Or die ("failed to lock the $ filename File ");

// Read the file content
While ($ line = fgets ($ fp, 1024 )){
List ($ id, $ name, $ desc, $ price) = explode ('|', $ line); // read data in each row, and use |
$ Id = trim ($ id); // remove the first and last special characters
$ Master_products_list [$ id] = array ("name" => $ name, // name
"Desc" => $ desc, // description
"Price" => $ price); // unit price
    }

@ Fclose ($ fp) // close the file
Or die ("failed to close the $ filename File ");
}
?>

Related Article

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.