Ejemplo de carrito en PHP con cookies | Programador Web Valencia

Ejemplo de carrito en PHP con cookies

1 minuto

La página, del ejemplo, debe llamarse test.php.

<?php
$aCarrito = array();
$sHTML = '';

//Obtenemos los productos anteriores
if(isset($_COOKIE['carrito'])) {
	$aCarrito = unserialize($_COOKIE['carrito']);
}

//Anyado un nuevo articulo al carrito
if(isset($_GET['nombre']) && isset($_GET['precio'])) {
	$iUltimaPos = count($aCarrito);
	$aCarrito[$iUltimaPos]['nombre'] = $_GET['nombre'];
	$aCarrito[$iUltimaPos]['precio'] = $_GET['precio'];
}

//Creamos la cookie (serializamos)
$iTemCad = time() + (60 * 60);
setcookie('carrito', serialize($aCarrito), $iTemCad);

//Imprimimos el contenido del array
foreach ($aCarrito as $key => $value) {
	$sHTML .= '-> ' . $value['nombre'] . ' ' . $value['precio'] . '<br>';
}

?>
<!DOCTYPE html>
<html lang="es-ES">
<head>
	<meta charset="UTF-8">
	<title>Ejemplo de carrito</title>
</head>
<body>
	<div>
		<?php echo $sHTML; ?>
	</div>
	<ul>
		<li><a href="test.php?nombre=zapato&precio=32">Zapato</a></li>
		<li><a href="test.php?nombre=vino&precio=10">Vino.</a></li>
		<li><a href="test.php?nombre=curso&precio=30">Curso online</a></li>
		<li><a href="test.php?nombre=reloj&precio=400">Reloj</a></li>
		<li><a href="test.php?nombre=gafas&precio=20">Gafas</a></li>
		<li><a href="test.php?nombre=ordenador&precio=500">Ordenador</a></li>
	</ul>
</body>
</html>

En esta versión he añadido un botón para vaciar carrito. Además, muestra el precio final.

<?php

$aCarrito = array();
$sHTML = '';
$fPrecioTotal = 0;

//Vaciamos el carrito
if(isset($_GET['vaciar'])) {
	unset($_COOKIE['carrito']);
}

//Obtenemos los productos anteriores
if(isset($_COOKIE['carrito'])) {
	$aCarrito = unserialize($_COOKIE['carrito']);
}

//Anyado un nuevo articulo al carrito
if(isset($_GET['nombre']) && isset($_GET['precio'])) {
	$iUltimaPos = count($aCarrito);
	$aCarrito[$iUltimaPos]['nombre'] = $_GET['nombre'];
	$aCarrito[$iUltimaPos]['precio'] = $_GET['precio'];
}

//Creamos la cookie (serializamos)
$iTemCad = time() + (60 * 60);
setcookie('carrito', serialize($aCarrito), $iTemCad);



//Imprimimos el contenido del array
foreach ($aCarrito as $key => $value) {
	$sHTML .= '-> ' . $value['nombre'] . ' ' . $value['precio'] . '<br>';
	$fPrecioTotal += $value['precio'];
}

//Imprimimos el precio total
$sHTML .= '<br>------------------<br>Precio total: ' . $fPrecioTotal;

?>
<!DOCTYPE html>
<html lang="es-ES">
<head>
	<meta charset="UTF-8">
	<title>Ejemplo de carrito</title>
</head>
<body>
	<div>
		<?php echo $sHTML; ?>
	</div>
	<ul>
		<li><a href="test.php?nombre=zapato&precio=32">Zapato</a></li>
		<li><a href="test.php?nombre=vino&precio=10">Vino.</a></li>
		<li><a href="test.php?nombre=curso&precio=30">Curso online</a></li>
		<li><a href="test.php?nombre=reloj&precio=400">Reloj</a></li>
		<li><a href="test.php?nombre=gafas&precio=20">Gafas</a></li>
		<li><a href="test.php?nombre=ordenador&precio=500">Ordenador</a></li>
		<li><a href="test.php?vaciar=1">vaciar carrito</a></li>
	</ul>
</body>
</html>

Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional.

Atribución/Reconocimiento-NoComercial-SinDerivados 4.0 Internacional

¿Me ayudas?

Comprame un café
Pulsa sobre la imagen

No te sientas obligado a realizar una donación, pero cada aportación mantiene el sitio en activo logrando que continúe existiendo y sea accesible para otras personas. Además me motiva a crear nuevo contenido.

Comentarios

{{ comments.length }} comentarios

Nuevo comentario

Nueva replica  {{ formatEllipsisAuthor(replyComment.author) }}

Acepto la política de Protección de Datos.

Escribe el primer comentario

Tal vez también te interese...