Ver Mensaje Individual
  #8 (permalink)  
Antiguo 26/12/2005, 19:43
Avatar de Watas
Watas
 
Fecha de Ingreso: diciembre-2005
Ubicación: Caracas
Mensajes: 151
Antigüedad: 18 años, 4 meses
Puntos: 0
Código PHP:
<?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","user","pass");  
mysql_select_db("db");  
//incluímos la conexión a nuestra base de datos  
if(!$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 Inventario 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  
$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 viejos.  
//Al mismo tiempo, y no porque sea estrictamente necesario sino a modo de ejemplo, guardamos más de un valor  
//en la variable $carro, valiéndonos de nuevo de la herramienta array.  
$carro[md5($id)]=array('identificador'=>md5($id),'cantidad'=>$cantidad,'Artista'=>$row['Artista'],'Titulo'=>$row['Titulo'],'Precio'=>$row['Precio'],'Id'=>$id);  
//Ahora dentro de la sesión ($_SESSION['carro']) tenemos sólo los valores que teníamos (si es que teníamos alguno) antes de ingresar  
//a esta página y en la variable $carro tenemos esos mismos valores más el que acabamos de sumar. De manera que  
//tenemos que actualizar (reemplazar) la variable de sesión por la variable $carro.  
$_SESSION['carro']=$carro;  
//Y volvemos a nuestro catálogo de artículos. La cadena SID representa al identificador de la sesión, que, dependiendo  
//de la configuración del servidor y de si el usuario tiene o no activadas las cookies puede no ser necesario pasarla por la url.  
//Pero para que nuestro carro funcione, independientemente de esos factores, conviene escribirla siempre.  
header("Location:vercarrito.php?".SID);  
?>
Código PHP:
<?php  
session_start
();  
//con session_start() creamos la sesión si no existe o la retomamos si ya ha sido creada  
extract($_GET);  
//Como antes, usamos extract() por comodidad, pero podemos no hacerlo tranquilamente  
$carro=$_SESSION['carro'];  
//Asignamos a la variable $carro los valores guardados en la sessión  
unset($carro[md5($id)]);  
//la función unset borra el elemento de un array que le pasemos por parámetro. En este  
//caso la usamos para borrar el elemento cuyo id le pasemos a la página por la url  
$_SESSION['carro']=$carro;  
//Finalmente, actualizamos la sessión, como hicimos cuando agregamos un producto y volvemos al catálogo  
header("Location:vercarrito.php?".SID);  
?>