Foros del Web » Programando para Internet » PHP »

duda con sesiones i formularios.

Estas en el tema de duda con sesiones i formularios. en el foro de PHP en Foros del Web. Hola de nuevo i enhorabuena a todos los foreros por su gran trabajo i aydua. Vamos a ver si alguien me puede resolver la duda ...
  #1 (permalink)  
Antiguo 28/02/2008, 11:42
 
Fecha de Ingreso: enero-2008
Mensajes: 28
Antigüedad: 16 años, 2 meses
Puntos: 0
duda con sesiones i formularios.

Hola de nuevo i enhorabuena a todos los foreros por su gran trabajo i aydua. Vamos a ver si alguien me puede resolver la duda que tengo. Principalmente se referiere las variables que se pasan mediante sesiones i a los formularios. La cuestion es que yo tengo un formulario con validacion mediante javascript i ahora le estoy poniendo la validacion del lado del servidor i me surge un problema. Si por lo que sea me diera error en el server i no en la pagina (bien porque no tuviera js habilitado o por lo que sea) lo que quiero es que en la misma pagina del formulario se me mostraran los errores que tengo. Para esto lo que hago es en la pagina que procesa el formulario recojo los datos que dan problema i los meto en variables de session. Luego en la pagina del formulario tengo una capa donde se mostrarian los errores en caso que los hubiere. Ahora bien aquí surge mi problema. Como sabe mi pagina del formulario si se ha enviado el formulario a la pagina que tiene que procesarlo. Es decir si yo pongo en mi pagina formulario.php:

Código:
<?php 
session_start();
$errors=$_SESSION['errors'];
?>
lo que yo esperaba es que en $errors no hubiera nada porque no se ha enviado el formulario ahora bien, en $errors me aparece ya rellenado. Como se puede solucionar esto, es decir como puedo saber si se ha accedido a la pagina que procesa el formulario i si se a accedido mostrar los errores!!

Desde ya muchas gracias i a ver si me podeis echar un cable!!
  #2 (permalink)  
Antiguo 28/02/2008, 11:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: duda con sesiones i formularios.

Puedes mirar el valor de $_SERVER['HTTP_REFERRER'] así sabrás si la pagina viene de la pagina de tu formulario.

Saludos.
  #3 (permalink)  
Antiguo 28/02/2008, 12:04
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: duda con sesiones i formularios.

Tal vez te pueda servir también $_SERVER['REQUEST_METHOD'], que devolverá el método por el que se ha llamado la página. Así, si se envió del formulario (claro está, usando el método POST), obtendrás post, y si fue llamado directamente get.

Ahora, para evitar lo que te está pasando, debes generar la variable de sesión en la página que procesa el formulario, y al volver al formulario, debes obtenerla y luego borrarla. Así esa variable no quedará disponible más:

Código PHP:
session_start();
$errors=$_SESSION['errors'];
 
// Borramos la variable de sesión
unset($_SESSION['errors']);
 
if(!empty(
$errors)) {
    
// Imprimes la capa que mostrará el error

Saludos,
  #4 (permalink)  
Antiguo 28/02/2008, 12:11
 
Fecha de Ingreso: enero-2008
Mensajes: 28
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: duda con sesiones i formularios.

Podria ser una buena solucion, pero he leido que no se deberia usar mucho ese parametro. Si hubiera otra solucion lo agradeceria. $Post esta inicializado o solo se incializa al pulsar el submit?? si esto fuera asi podria mirar si $post esta vacio es que no se ha enviado el formulario i no tengo que mosatrar nada pero si estuviera inicializado pues mostraria el error.


OKRAM ME HE RESPONDIDO AL MISMO TIEMPO QUE TU xDDD. Miraré tu solucion a ver. Porque se debe borrar?
  #5 (permalink)  
Antiguo 28/02/2008, 12:17
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: duda con sesiones i formularios.

El fin de crearla es poder regresar al formulario y mostrar el error. Pero... ¿para qué queremos que siga disponible después? Por eso la rescatamos en la variable global $errors y borrarmos la variable de sesión. Así, el error seguirá disponible en toda la página actual, pero al ir a otras páginas ya no, y no tendrás el problema de que al volver a entrar al formulario se vuelva a mostrar el error anterior.

Un saludo,
  #6 (permalink)  
Antiguo 29/02/2008, 04:11
 
Fecha de Ingreso: enero-2008
Mensajes: 28
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: duda con sesiones i formularios.

Ei hola de nuevo, parece que algo hacia mal antes, porque ahora simplemente en la pagina del formulario comprueba si la variable $errs esta vacia para saber si tengo que mostrar el error o no (se supone que si no se ha enviado al formulario estara vacia). Ahora lo que pasa es que tengo instalado apache+mysql+php i voy probando mis paginas ahí, pues cuando pruebo la pagina del formulario me dice que el indice 'errors' no esta definido i me sale un error arriba del formulario hasta que se envia el submit, esto como se puede solucionar????

Venga saludos i gracias!!!
  #7 (permalink)  
Antiguo 29/02/2008, 11:50
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: duda con sesiones i formularios.

Código PHP:
if(isset($_SESSION['errors'])) {
    
$errors $_SESSION['errors'];
    if(!empty(
$errors)) {
        
// Imprimes la capa que mostrará el error     
    
}
    unset(
$_SESSION['errors']);

www.php.net/isset

Saludos,

Última edición por okram; 29/02/2008 a las 11:55
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 05:59.