Informatica
adaptarlo a sus necesidades y/o mejorarlo para que sea más cómodo para el usuario.
Pueden ver el ejemplo en marcha de lo que vamos a hacer aquí.
Antes de empezar veremos, de manera resumida, para qué se utilizan las sesiones:
Las sesiones nos permiten registrar unnúmero arbitrario de variables que se conservan durante toda la visita de un usuario a una página web. Dichas variables pueden ser diferentes para cada usuario, ya que están referenciadas por un identificador único que se le asigna a cada visitante. En otras palabras, una sesión es una manera de almacenar variables de manera temporal, semejante a una cookie, pero con ciertas diferencias: las cookies sealmacenan en la PC del usuario y pueden desactivarse; las sesiones, en cambio, se almacenan temporalmente en el servidor, en un fichero que se crea en el momento en que almacenamos la variable. Sabiendo esto, ya estamos en condiciones de entender cómo va a funcionar nuestro carro de compras.
Primero crearemos en mysql una tabla para nuestro catálogo de artículos:
000 |create table catalogo (id int not null auto_increment primary key,producto varchar(100),precio decimal(9,2)) Maximizar Seleccionar SQL |
También vamos a necesitar algunas imágenes para ayudar visualmente al usuario que va a utilizar nuestro carrito (en el ejemplo vamos a utilizar estas, luego cada uno las reemplaza por las que quiera):
Imagen de producto no agregado al carrito: productonoagregado.gifImagen de producto agregado: productoagregado.gif
Botón para eliminar un producto del carrito:trash.gif
Botón para actualizar las cantidades de un producto agregado: actualizar.gif
Botón para continuar la selección de artículos: continuar.gif
Botón para ver el contenido del carrito: vercarrito.gif
Con estos elementos, podemos crear el archivo agregacar.php, que nos servirá paraintroducir productos dentro del carro (y para modificar sus cantidades) y que contendrá el siguiente código:
<?php
session_start();
//con session_start() creamos la sesión
//si no existe o la retomamos si ya ha
//sido creada
extract($_REQUEST);
//la función extract toma las claves
//de una matriz asoiativa y las
//convierte en nombres de variable, //asignándoles a esas variables
//valores iguales a los que tenía
//asociados en la matriz. Es decir,
//convierte a $_GET['id'] en $id,
//sin que tengamos que tomarnos el
//trabajo de escribir
//$id=$_GET['id'];
mysql_connect("localhost","usuario","password");
mysql_select_db("db");
//incluímos la conexión a nuestra
//base de datos
if(!isset($cantidad)){$cantidad=1;}
//Como también vamos a usar este //archivo para actualizar las
//cantidades, hacemos que cuando
//la misma no esté indicada sea
//igual a 1
$qry=mysql_query("select * from catalogo where
id='".$id."'");
$row=mysql_fetch_array($qry);
//Si ya hemos introducido algún
//producto en el carro lo
//tendremos guardado temporalmente
//en el array superglobal
//$_SESSION['carro'], de manera //que rescatamos los valores de
//dicho array y se los asignamos
//a la variable $carro, previa
//comprobación con isset de que
//$_SESSION['carro'] ya haya sido
//definida
if(isset($_SESSION['carro']))
$carro=$_SESSION['carro'];
//Ahora introducimos el nuevo
//producto en la matriz $carro,
//utilizando como índice el id
//del producto en cuestión,
//encriptado con md5. //Utilizamos md5 porque genera
//un valor alfanumérico que luego,
//cuando busquemos un producto
//en particular dentro de la
//matriz, no podrá ser confundido
//con la posición que ocupa dentro
//de dicha matriz, como podría
//ocurrir si fuera sólo numérico.
//Cabe aclarar que si el producto
//ya había sido agregado antes,
//los nuevos valores que le
//asignemos reemplazarán a los ...
Regístrate para leer el documento completo.