Foros del Web » Programando para Internet » PHP »

Carrito de compra

Estas en el tema de Carrito de compra en el foro de PHP en Foros del Web. [INDENT][INDENT]saludos gentita, estoy en mis pininos de php tengo la siguiente consulta sobre carrito de compra. CATALOGO.php ----------------- <?php session_start(); include("cn.php"); //rescatamos los valores guardados ...
  #1 (permalink)  
Antiguo 14/06/2010, 14:41
Avatar de frankjoel86  
Fecha de Ingreso: noviembre-2008
Ubicación: Ica
Mensajes: 295
Antigüedad: 15 años, 5 meses
Puntos: 0
Sonrisa Carrito de compra

[INDENT][INDENT]saludos gentita, estoy en mis pininos de php tengo la siguiente consulta sobre carrito de compra.

CATALOGO.php
-----------------
<?php
session_start();
include("cn.php");
//rescatamos los valores guardados en la variable de sesión (si es que hay alguno, cosa que
//comprobamos con isset) y los asignamos a $carro. Si no existen valores, ponemos a false el
//valor de $carro
if(isset($_SESSION['carro']))
$carro=$_SESSION['carro'];
else $carro=false;
//y hacemos la consulta
$qry=mysql_query("select * from productos order by codpro asc");
?>
<html>
<head>
<title>CATALOGO</title>
</head>
<body>
<table width="272">
<tr>
<td width="170">Producto</td>
<td width="77">Precio</td>
<td width="25"><a href="vercarrito.php?<?php echo SID ?>"<img src="images/vercarrito.gif"></a></td>
</tr>

<?php
//mostramos todos nuestros artículos, viendo si han sido agregados o no a nuestro carro de compra
while($row=mysql_fetch_assoc($qry)){
?>

<tr>
<td><?php echo $row['descripcion'] ?></td>
<td><?php echo $row['precio'] ?></td>
<td align="center"><?php
if(!$carro || !isset($carro[md5($row['codpo'])]['identificador']) || $carro[md5($row['codpro'])]['identificador']!=md5($row['codpro'])){
//si el producto no ha sido agregado, mostramos la imagen de no agregado, linkeada
// a nuestra página de agregar producto y transmitíéndole a dicha
//página el id del artículo y el identificador de la sesión
?><a href="agregacar.php?<?php echo SID ?>&id=<?php echo $row['codpro']; ?>"><img src="images/productonoagregado.gif"></a><?php }
else
//en caso contrario mostramos la otra imagen linkeada., a la página que sirve para borrar el artículo del carro.
{?><a href="borracar.php?<?php echo SID ?>&id=<?php echo $row['codpro']; ?>"><img src="productoagregado.gif"></a><?php } ?></td>
</tr><?php
}
?>
</table>
</body>
</html>
<?php
ob_end_flush();
?>


AGREGACAR.PHP
---------------------
<?php
session_start();

extract($_REQUEST);
include("cn.php");

if(!isset($cantidad)){$cantidad=1;}
$qry=mysql_query("select * from productos where codpro='".$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 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'=>$cant idad,'producto'=>$row['producto'],'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:catalogo.php?".SID);
?>

*LA PAGINA CATALOGO.PHP MUESTRA LOS REGISTROS. AL HACER CLICK EN AGREGAR, ME LLAMA A UNA PAGINA AGREGAR.
EXACTAMENTE EN LA BARRA DE DIRECCIÓN APARECE: AGREGACAR.PHP?&ID=1

¡Objeto no encontrado!

El enlace requerido no ha sido localizado en este servidor. El enlace en la página referente parece tener algun error o ha expirado. Por favor comunique al autor de la página el error.

Error 404
*SUPUESTAMENTE DEVERIA DE LLAMAR A LA PAGINA AGREGAR PERO NO LO LLAMA CORRECTAMENTE.
*SE AGRADECE CUALQUIER TIPO DE AYUDA.
  #2 (permalink)  
Antiguo 14/06/2010, 14:57
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Carrito de compra

si usas un server UNIX o GNU/Linux, los mismos son sensibles a las mayúsculas, por lo que si la pagina es AGREGACAR.PHP, no es igual a agregarcar.php, y por ello el error 404

recomendación: para nombres de archivos, trata de usar minúsculas, o camelCase
  #3 (permalink)  
Antiguo 14/06/2010, 15:09
Avatar de frankjoel86  
Fecha de Ingreso: noviembre-2008
Ubicación: Ica
Mensajes: 295
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Carrito de compra

todo el codigo esta en minuscula.. . .
  #4 (permalink)  
Antiguo 14/06/2010, 15:10
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Carrito de compra

no solo el código, sino el nombre de los archivos y las extensiones ?

el error 404 es de apache, no hay duda, a php ni le llega la petición porque apache no encuentra el archivo

Etiquetas: carrito, compra
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:40.