Jump to content

$_SESSION['cart'] help


mrooks1984

Recommended Posts

hello all, hoping someone can help, i am still pretty new to php and i am stuck on creating a php cart.

the code i have below is working, but the problem i am having is i need a store in the session array i am struggling to get my head around it so hoping someone can help here.

i am hoping to have $product_id (which is currently in) $option1,2,3 and $text (for a textarea box)

heres my function file

function get_product() {

echo "Hello";

}

 

function add_product() {

$product_id = $_POST['product_id'];

 

if ($product_id == 'NULL') {

echo "No Product Selected!";

}

 

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

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

echo "<script>window.location='product.php'</script>";

}else{

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

echo "<script>window.location='product.php'</script>";

}

}

 

function increase_product() {

$product_id = $_GET['product_id'];

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

echo "<script>window.location='cart.php'</script>";

}

 

function decrease_product() {

$product_id = $_GET['product_id'];

$_SESSION['cart'][$product_id]--;

echo "<script>window.location='cart.php'</script>";

}

 

function empty_cart() {

unset($_SESSION['cart']);

echo "<script>window.location='cart.php'</script>";

}

}

my product page (currently with out the extra form items (option1,2,3 etc)

include '_class/cart.php';

$core->session($mode = 'start');

 

if(isset($_POST['buy']))

{

$cart->add_product();

}

 

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Product</title>

</head>

 

<body>

<?php $core->navbar();?>

<form method="post" action="">

<input name="product_id" type="hidden" value="Coffee" />

<h1>Cup Of Coffee</h1>

<p>Buy me you know you want too!</p>

<input name="buy" type="submit" value="Add To Basket" id="buy" />

</form>

<form method="post" action="">

<input name="product_id" type="hidden" value="Biscuits" />

<h1>Barrel Of Biscuits</h1>

<p>When Coffee Just Gives You The Munchies!</p>

<input name="buy" type="submit" value="Add To Basket" id="buy" />

</form>

</body>

</html>

my include cart file

if (isset($_SESSION['cart'])) {//Session Cart

foreach($_SESSION['cart'] as $product_id => $quantity){//Session Array

 

if($quantity < 1){//Quantity Less Then 1

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

echo "<script>window.location='cart.php'</script>";

}//End Quantity Less Then 1

 

if(!$_SESSION['cart']){//Cart Array Empty

unset($_SESSION['cart']);

echo "<script>window.location='cart.php'</script>";

}//End Cart Array Empty

 

if ($product_id != NULL){//Show Products

echo '<h1>' . $product_id . '</h1>';

echo "Quantity <br>";

?><a href="cart.php?product_id=<?php echo $product_id; ?>&option=increase">+</a> <?php echo $quantity; ?>

<a href="cart.php?product_id=<?php echo $product_id; ?>&option=decrease">-</a><?php

}//End Show Products

 

}//End Session Array

require 'library/paypal.php';

}else{

echo "Your Basket Is Empty";

}//End Session Cart

and my actual cart file

 

include '_class/cart.php';

$core->session($mode = 'start');

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Cart</title>

</head>

 

<body>

 

<?php

$core->navbar();

 

 

if (isset($_GET['product_id']['option'])) {

$product_id = $_GET['product_id'];

$option = $_GET['option'];

 

if ($option == 'decrease'){

$cart->decrease_product();

}

if ($option == 'increase'){

$cart->increase_product();

}

 

}elseif (isset($_GET['option'])){

$option = $_GET['option'];

 

if ($option == 'empty'){

$cart->empty_cart();

}

 

}else{

require 'library/cart.php';

}

?>

<p><a href="cart.php?option=empty">Empty Cart</a></p>

</body>

</html>

 

 

please explain answers or exmples as clear as possible :) thanks everyone

Link to comment
Share on other sites

hi i noticed afterwords but for some reason i cant edit my own posts which seems silly?

anyway i repost it:

 

heres my function file:

<?php
//Cart Class File

class Cart extends Core {

function get_product() {
echo "Hello";
}

function add_product() {
$product_id = $_POST['product_id'];

if ($product_id == 'NULL') {
	echo "No Product Selected!";
}

if (isset($_SESSION['cart'][$product_id])) {
$_SESSION['cart'][$product_id]++;
echo "<script>window.location='product.php'</script>";
}else{
$_SESSION['cart'][$product_id] = 1;
echo "<script>window.location='product.php'</script>";
}
}

function increase_product() {
$product_id = $_GET['product_id'];
$_SESSION['cart'][$product_id]++;
echo "<script>window.location='cart.php'</script>";
}

function decrease_product() {
$product_id = $_GET['product_id'];
$_SESSION['cart'][$product_id]--;
echo "<script>window.location='cart.php'</script>";
}

function empty_cart() {
unset($_SESSION['cart']);
echo "<script>window.location='cart.php'</script>";
}	
}

$cart = new Cart();

?>

Produc Page:

<?php 
include '_class/core.php';
include '_class/cart.php';
$core->session($mode = 'start');

if(isset($_POST['buy']))
{
$cart->add_product();
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Product</title>
</head>

<body>
<?php $core->navbar();?>
<form method="post" action="">
<input name="product_id" type="hidden" value="Coffee" />
<h1>Cup Of Coffee</h1>
<p>Buy me you know you want too!</p>
<input name="buy" type="submit" value="Add To Basket" id="buy" />
</form>
<form method="post" action="">
<input name="product_id" type="hidden" value="Biscuits" />
<h1>Barrel Of Biscuits</h1>
<p>When Coffee Just Gives You The Munchies!</p>
<input name="buy" type="submit" value="Add To Basket" id="buy" />
</form>
</body>
</html>

my include cart file:

<?php
	if (isset($_SESSION['cart'])) {//Session Cart
	foreach($_SESSION['cart'] as $product_id => $quantity){//Session Array

	if($quantity < 1){//Quantity Less Then 1
			unset($_SESSION['cart'][$product_id]);
			echo "<script>window.location='cart.php'</script>";	
			}//End Quantity Less Then 1

			if(!$_SESSION['cart']){//Cart Array Empty
			unset($_SESSION['cart']);
			echo "<script>window.location='cart.php'</script>";	
			}//End Cart Array Empty

			if ($product_id != NULL){//Show Products
			echo '<h1>' . $product_id . '</h1>';
			echo "Quantity <br>";
			?><a href="cart.php?product_id=<?php echo $product_id; ?>&option=increase">+</a> <?php echo $quantity; ?>
			<a href="cart.php?product_id=<?php echo $product_id; ?>&option=decrease">-</a><?php
			}//End Show Products

		}//End Session Array
		require 'library/paypal.php';
	}else{
		echo "Your Basket Is Empty";	
	}//End Session Cart
	?>

and my actual cart file

<?php 
include '_class/core.php';
include '_class/cart.php';
//$core->session($mode = 'start');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Cart</title>
</head>

<body>

<?php
$core->navbar();


if (isset($_GET['product_id']['option'])) {
$product_id = $_GET['product_id'];
$option = $_GET['option'];

if ($option == 'decrease'){
	$cart->decrease_product();
}
if ($option == 'increase'){
	$cart->increase_product();
}

}elseif (isset($_GET['option'])){
	$option = $_GET['option'];

	if ($option == 'empty'){
	$cart->empty_cart();
	}

}else{
	require 'library/cart.php';
}
?>
<p><a href="cart.php?option=empty">Empty Cart</a></p>
</body>
</html>

 

thanks again

 

 

 

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.