Foros del Web » Programando para Internet » PHP »

No logro borrar una session luego de usarla ¿?

Estas en el tema de No logro borrar una session luego de usarla ¿? en el foro de PHP en Foros del Web. Hola, Tengo un formulario en el que uso una session() para poder corregir datos si el usuario necesita regresar a la pagina en el cual ...
  #1 (permalink)  
Antiguo 17/05/2007, 17:50
Avatar de BooMeranGz  
Fecha de Ingreso: febrero-2001
Mensajes: 350
Antigüedad: 23 años, 1 mes
Puntos: 0
Pregunta No logro borrar una session luego de usarla ¿?

Hola,

Tengo un formulario en el que uso una session() para poder corregir datos si el usuario necesita regresar a la pagina en el cual los ingresó.

Son 3 páginas.

(1) En "index.php" se ingresan los datos y uso:
Código PHP:
<?
// Inicio session
session_name('mi_form');
session_start();
// Recupero los valores del formulario
$datos $_SESSION['mi_form'];
?>

(2)
En "show-data.php" se muestran los datos, si estan bien ingresados el cliente sigue, sinó regresa a la pagina anterior para modificarlos, esto tengo aqui:
Código PHP:
<?
// Inicio session
session_name('mi_form');
session_start();
// Guardo los datos del formulario (que llega por $_POST) en una variable de session
$_SESSION['mi_form'] = $_POST;
?>
(3) En "send-data.php" a la vez que muestro los datos (enviados) los envío con mail(), y esto tengo en esta página:
Código PHP:
// Inicio session
session_name('mi_form');
session_start();
// Recupero los valores del formulario
$datos $_SESSION['mi_form'];
// Borro la session, y los datos
unset($_SESSION['mi_form']);
session_destroy();

// Sigue código que muestra datos enviados y envia los mismos con mail()
// ... 
El problema lo tengo en esta última pagina.

Si una vez enviado el form, le doy "atras" al navegador, regresa a la página (2), y me muestra todos los datos del formulario como si no hubiera nunca borado la session, y si le doy enviar otra vez, lo hace y envia un mail sin datos.

¿Que estoy haciendo mal que no se destruye esa session?

Un dato mas, si trabajo en mi WAMP, voy viendo que la variable de session se crea bien.

Cuando paso a la página (3) la variable de session desaparece del directorio temporal de sessiones, lo cual me indica que en ese momento se elimina, pero al darle "atras" al navegador, se carga la página y la variable vuelve a aparecer en el dir. temporal de las sessiones y con todos los datos.

Ojala alguien pueda darme una mano porque me esta volviendo loco este tema.

Gracias de antemano por la ayuda.

Salu2.
  #2 (permalink)  
Antiguo 17/05/2007, 23:34
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
De acuerdo Re: No logro borrar una session luego de usarla ¿?

Hola,

A) eso es por una cuestión de caché del navegador. Cuando vuelves atras a cualquier formulario los campos se rellenan automáticamente.

B) ademas en la página 2 pusiste el siguiente código:

Código PHP:
session_name('mi_form');
session_start();
$_SESSION['mi_form'] = $_POST
estas iniciando la sessión y le estás asignando a la sesión los valores del POST nuevamente.

C) Mas alla de todo esto me parece sumamente innecesario que usas sesiones para un formulario.

Seguimos en contacto.
  #3 (permalink)  
Antiguo 18/05/2007, 00:36
Avatar de BooMeranGz  
Fecha de Ingreso: febrero-2001
Mensajes: 350
Antigüedad: 23 años, 1 mes
Puntos: 0
Re: No logro borrar una session luego de usarla ¿?

Hola,

Gracias por tu respuesta, pero no entiendo porque me decis:
Cita:
C) Mas alla de todo esto me parece sumamente innecesario que usas sesiones para un formulario.
Si lo hago sin session, cuando regreso para modificar datos, no los tengo mas.

¿O se puede regresar, mantener los datos del form y no usar sessiones?

Salu2.
  #4 (permalink)  
Antiguo 18/05/2007, 17:59
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
De acuerdo Re: No logro borrar una session luego de usarla ¿?

Me refiero a que si quieres evaluar datos y hacerlo volver en el caso de que no estén bien ingresados no los debes redirigir a otra página.

En la misma página del formulario checkeas y si falta algo las variables quedan todas ya que las tomas por POST y si esta todo correcto realizas la accion y lo redireccionas a otro pagina.

Te invito a leer este post hace algo de tiempo mostre un ejemplo de cómo validar un formulario en la misma página:

http://www.forosdelweb.com/showthrea...31#post1810231

Ten en cuenta que en el action del form no le pones nada asi el form se envia a si mismo.

Seguimos en contacto.
  #5 (permalink)  
Antiguo 18/05/2007, 19:49
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: No logro borrar una session luego de usarla ¿?

Mas breve aún, pues no coloques un link que te devuelva a la página para coregir, simplemente déjalo con el botón "atras" del navegador y listo!!

Con eso te evitas utilizar sesiones para mantener rellenos los campos del formulario.

Saludos y espero te sirva!!!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #6 (permalink)  
Antiguo 21/05/2007, 22:22
Avatar de BooMeranGz  
Fecha de Ingreso: febrero-2001
Mensajes: 350
Antigüedad: 23 años, 1 mes
Puntos: 0
Re: No logro borrar una session luego de usarla ¿?

Gracias por la ayuda, pero ustedes me dan soluciones que no veo viables a mis dudas, no quiero cambiar el código, no quitar javascript, ni modificar todo el formulario, solo necesito saber que hago mal para que no se borre definitivamente esa session.

Salu2.
  #7 (permalink)  
Antiguo 22/05/2007, 02:29
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Re: No logro borrar una session luego de usarla ¿?

Podrías probar con session_unset
  #8 (permalink)  
Antiguo 22/05/2007, 09:18
Avatar de BooMeranGz  
Fecha de Ingreso: febrero-2001
Mensajes: 350
Antigüedad: 23 años, 1 mes
Puntos: 0
Re: No logro borrar una session luego de usarla ¿?

He probado todo lo que mas o menos conozco de sessiones, incluso session_unset, el problema es que los datos me los vuelve a levantar el navegador cuando hago clic en "pagina anterior" y no encuentro la manera de que no lo haga.

Creo ya que es un problema de manejar de alguna forma el caché del navegador y no de las sessiones...

Salu2.
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 15:03.