PHP - Ayuda Codigo PHP

 
Vista:

Ayuda Codigo PHP

Publicado por elm3nda (1 intervención) el 06/04/2010 15:21:53
Tengo un problema con un codigo en php, que me tiene algo loco porque no se el porque del error.

Es sobre un carrito de la compra, usando sesiones.

Parto de una pagina que es un simple formulario en html donde se escogen los producos a añadir al carro de la compra, redireccionando a otra pagina.

En la pagina redireccionada, es donde voy asignando a las variables de sesion el contenido de los productos eleguidos, precios, etc....

Pero hay momentos cuando sueles escoger varios productos que se ve como la pagina se actualiza instantamente y si has cogido 2 productos te sale que has cogido 4, osea el doble siempre, es como si rapidamente se hiciera un f5, y lo que me preocupa es que no tengo ningun codigo de redireccionamiento automatico ni nada, y no lo hace siempre solo de vez en cuando y no entiendo el error.

Dejo el codigo donde asigno las variables de sesion por si alguien encuentra el error que yo no veo (He probado con variables estaticas pero nada)

<?
session_start();

include("conexion.php");
$db = Conectarse();

/*La variable de sesion IDE es donde almaceno los ID de los productos, es un array de sesiones*/

$cantidad = count($_SESSION["ide"]);
if($cantidad == 0)
$x=0;
else $x = $cantidad + 1;
/*La variable k la uso para el contenido del formuarlio, son varios productos todos ellos en una lista, dicha lista es un array, de modo que si tengo 10 productos, habra un array de 10 posiciones en el que en cada una de esas posiciones contiene el contenido de esa lista*/
$k=0;
$z = count($_GET["Cajita"]) ;

for($i=$x;$i<$z;$i++)
{/*cajita y cantidad son los dos unicos datos que paso en el formulario*/
$_SESSION["ide"][$i] = $_GET["Cajita"][$k];
$_SESSION["cantidad"][$i] = $_GET["Cantidad"][$k];
$_SESSION["numero"][$i] = $i; /*Almaceno el total de articulos comprados*/
$k++;
$valor = $_SESSION["ide"][$i];
$var = mysql_query("select * from catalogo where id like '$valor'");
/* voy en busca del precio para ese IDE de producto mostrando en pantalla el total*/
while($v = mysql_fetch_array($var))
{
$total = $v["precio"] * $_SESSION["cantidad"][$i];
printf("<br>Ha escogido <b>%s</b> con un precio de %.2f € comprando %d productos a un total de %.2f €<br>",$v["producto"],$v["precio"],$_SESSION["cantidad"][$i],$total);


}
}



?>

Lo dicho no se porque a veces lo repite dos veces. Si alguien sabe el porque o como evitarlo que me lo diga, gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder