Foros del Web » Programando para Internet » PHP »

Dudas de sesiones y variables en php

Estas en el tema de Dudas de sesiones y variables en php en el foro de PHP en Foros del Web. Estoy aprendiendo y he comenzado a hacer un carrito de la compra. Abriendo una sesion recojo los campos que se rellenan en un formulario y ...
  #1 (permalink)  
Antiguo 14/10/2009, 17:50
 
Fecha de Ingreso: octubre-2009
Ubicación: Sevilla
Mensajes: 46
Antigüedad: 14 años, 6 meses
Puntos: 0
Dudas de sesiones y variables en php

Estoy aprendiendo y he comenzado a hacer un carrito de la compra. Abriendo una sesion recojo los campos que se rellenan en un formulario y cuando le doy a ver la cesta de la compra me lo hace muy bien.

El problema es que si pulso atrás en el navegador y le doy de nuevo a ver el carrito me vuelve a incluir los mismo datos.
¿como hacer para que al dar a atrás limpie las variables que paso por url ??

Gracias de antemano y saludos !
  #2 (permalink)  
Antiguo 14/10/2009, 18:49
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Dudas de sesiones y variables en php

Como lo estas haciendo ?, siempre es bueno acostumbrarse a colocar el codigo del problema.

De esta forma...

Código PHP:
<?php  

// Hola

 
?>

__________________
Como presentar nuestros datos por medio de tablas . clase Aco_DataGrid Version 1.4
  #3 (permalink)  
Antiguo 15/10/2009, 14:09
 
Fecha de Ingreso: octubre-2009
Ubicación: Sevilla
Mensajes: 46
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Dudas de sesiones y variables en php

Primero pongo:

<?
include("lib_carrito.php");
?>

Después el formulario:

<FORM ACTION="<?php echo $_SERVER['PHP_SELF']; ?>" METHOD="get">
<INPUT TYPE="hidden" NAME="producto" VALUE="Producto1">
<INPUT TYPE="hidden" NAME="id_code" VALUE="001">
<INPUT TYPE="hidden" NAME="precio" VALUE="25,00">
<TABLE WIDTH="400">
<TR>
<TD ALIGN="RIGHT">
<?php
$cantidad="";
$msg="";
if(isset($_GET["num_piezas"])) {
$cantidad=$_GET["num_piezas"];
if ($cantidad != "0") {
$_SESSION["ocarrito"]->introduce_producto($_GET["id_code"], $_GET["producto"], $_GET["precio"],$cantidad);
$msg.="Este producto se ha incluido en su cesta de la compra.";
}
else {
$msg.="Debe especificar el número de piezas !";
}
}
?>
<span style='font-size:12px;font-weight:bold;color:#F20000;'><?php echo $msg; ?></span>
<P><SELECT NAME="num_piezas" SIZE="1">
<OPTION VALUE="0"></OPTION>
<OPTION VALUE="1">Una pieza</OPTION>
<OPTION VALUE="2">Dos piezas</OPTION>
<OPTION VALUE="3">Tres piezas</OPTION>
<OPTION VALUE="4">Cuatro piezas</OPTION>
<OPTION VALUE="5">Cinco piezas</OPTION>
</SELECT></P></TD>
<TD ALIGN="RIGHT">
<P><INPUT TYPE="submit" VALUE="Añadir a la cesta"></P></TD>
</TR>
</TABLE></FORM>

Y por último un enlace para poder ver el carrito:

<A CLASS="enlaceseccion" HREF="ver-carrito.php">Vea
su aqu&iacute; su pedido online</A>

La función introduce producto incluida en la libreria es:

function introduce_producto($id_prod,$nombre_prod,$precio_p rod,$cantidad_prod){
$this->array_id_prod[$this->num_productos]=$id_prod;
$this->array_nombre_prod[$this->num_productos]=$nombre_prod;
$this->array_precio_prod[$this->num_productos]=$precio_prod;
$this->array_cantidad_prod[$this->num_productos]=$cantidad_prod;
$this->num_productos++;
}
Y en dicha libreria también hago la apertura de la sesion:

session_start();

if (!isset($_SESSION["ocarrito"])){
$_SESSION["ocarrito"] = new carrito();
}

Me lo hace bien .... pero al dar atrás en el navegador y luego volver a ver el carrito con el enlace o dando adelante en el navegador me vuelve a incluir en el carrito lo mismo que le puse al principio.

Cómo puedo limpiar las url ?? hay alguna forma más o menos establecida ?? como evito esto ??
No se ocurre nada !!
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 06:38.