Sesiones (PHP4)
Carrito de Compras
Si
después de todo lo comentado aún no entiendes para que sirven
las sesiones, veamos un ejemplo práctico. Imagina que quisieras
crear un sistema de carrito de la compra...
|
|
<?php
// Manual de PHP
session_start();
session_register('itemsEnCesta');
$item=$_POST['item'];
$cantidad=$_POST['cantidad'];
$itemsEnCesta=$_SESSION['itemsEnCesta'];
if ($item){
if (!isset($itemsEnCesta)){
$itemsEnCesta[$item]=$cantidad;
}else{
foreach($itemsEnCesta as $k => $v){
if ($item==$k){
$itemsEnCesta[$k]+=$cantidad;
$encontrado=1;
}
}
if (!$encontrado) $itemsEnCesta[$item]=$cantidad;
}
}
$_SESSION['itemsEnCesta']=$itemsEnCesta;
?>
<html>
<body>
<tt>
<form action="<?=$PHP_SELF."?".$SID?>"
method="post">
Dime el producto
<input type="text" name="item" size="20"><br>
Cuantas unidades
<input type="text" name="cantidad" size="20"><br>
<input
type="submit" value="Añadir a la cesta"><br>
</form>
<?
if (isset($itemsEnCesta)){
echo'El contenido de la cesta de la compra es:<br>';
foreach($itemsEnCesta as $k => $v){
echo 'Artículo: '.$k.' ud: '.$v.'<br>';
}
}
?>
</tt>
</body>
</html> |
|
Una breve explicación.
En la línea 4 comprobamos si el usuario ha pasado algún artículo,
desde el formulario. En la 5 si el array itemsEnCesta no existe, lo creamos
con el nuevo producto y la cantidad indicada. Si el array existe recorremos
su contenido, entre las líneas 8 y 13, y si encontramos un artículo
igual, añadimos la cantidad en la línea 10. Si no lo encontramos,
es un nuevo artículo, por lo tanto, añadimos el nuevo producto
con la correspondiente cantidad a itemsEnCesta en la línea 14.
Y a continuación
imprimimos el formulario y los resultados, si los hubiera, a partir de
la línea 18, donde empieza el HTML.
¿Te
imaginas las posibilidades de un sistema de almacenamiento de información
de estas características?. No necesitas ficheros, ni bases de datos,
ni tienes que andar pasando valores de una página a otra. PHP va
gestionando estos datos por nosotros, hasta el momento en que decidamos
almacenar la información donde más nos interese.
Mglnet te Recomienda estos
Productos
Aumenta tus Ingresos- Usa Google
AdSense
|