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
https://forums.phpfreaks.com/topic/258172-_sessioncart-help/
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
https://forums.phpfreaks.com/topic/258172-_sessioncart-help/#findComment-1323527
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • 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.