Foros del Web » Programando para Internet » PHP »

Problema con redirección y action

Estas en el tema de Problema con redirección y action en el foro de PHP en Foros del Web. ¡Hola a todos! Tengo una duda acerca de una redirección. Veamos: Tengo un formulario en una página cuyo action es esta misma página. Para validar, ...
  #1 (permalink)  
Antiguo 26/03/2010, 10:04
 
Fecha de Ingreso: marzo-2010
Mensajes: 9
Antigüedad: 14 años, 1 mes
Puntos: 0
Problema con redirección y action

¡Hola a todos! Tengo una duda acerca de una redirección.

Veamos: Tengo un formulario en una página cuyo action es esta misma página. Para validar, uso una función que se encuentra en 'validación.php'. Lo que quiero conseguir es que cuando valide los datos correctamente y efectivamente inserte lo que haga falta en MySQL, redirija a otra página en la que se indique esto. No consigo tal y como está que redirija, ya que lo que hace, al tener el action en esta misma página, es volver a mostrar el formulario. ¿Hay alguna manera de hacerlo?

Si la función detecta que faltan campos, vuelve a la página del formulario. Pero si está todo correcto, debería insertarlos en la db y mostrar una página distinta. El formulario en sí no os lo pongo porque el único misterio es el action. Pongo el inicio de la página 'formulario.php', de donde no logro salir.

Gracias y un saludo!

Código PHP:
Ver original
  1. <?php
  2.         include 'validacion.php';
  3.         include 'conexion.php';    
  4.         $empresa = $_GET['empresa'];
  5.        
  6.        
  7.         if ($_POST) {
  8.             $parametros = validar();
  9.             if (!$parametros['correo'][0] &&
  10.                 !$parametros['apellido1'][0] &&                    
  11.                 !$parametros['nombre'][0]) {
  12.                    
  13.                     $deportesSQL = $parametros['deportes'];
  14.  
  15.                 mysql_query("insert into general (deporte) values ('$deportesSQL')",$conexion) or die ("Problemas en el select".mysql_error());
  16.                 mysql_close($conexion);
  17.                 header('Location:fin.php');    
  18.             }
  19.         }
  20.        
  21.        
  22. ?>
  #2 (permalink)  
Antiguo 26/03/2010, 10:10
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 1 mes
Puntos: 10
Respuesta: Problema con redirección y action

Agrega un exit();

Código PHP:
Ver original
  1. header('Location:fin.php');
  2. exit();
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #3 (permalink)  
Antiguo 26/03/2010, 10:11
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con redirección y action

Despues de enviar header debes finalizar la ejecucion del script, preferentemente con exit;

Edito: Parece que llegue tarde.

TolerantX, exit es una directiva y los parentesis no son necesarios, aunque tampoco afecta que esten ahi.
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 26/03/2010, 10:17
 
Fecha de Ingreso: marzo-2010
Mensajes: 9
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problema con redirección y action

Cita:
Iniciado por TolerantX Ver Mensaje
Agrega un exit();

Código PHP:
Ver original
  1. header('Location:fin.php');
  2. exit();
Gracias a ambos! Pero al poner exit, únicamente se queda la página en blanco y pero en la URL no sale de formulario.php. Ni idea de qué hacer...
  #5 (permalink)  
Antiguo 26/03/2010, 10:26
 
Fecha de Ingreso: marzo-2010
Mensajes: 9
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problema con redirección y action

Es como si al poner en el action "formulario.php", le resbalara el header que hago cuando se dan las circunstancias adecuadas. Todo el bloque de php que he puesto está sobre el HTML, así que no es problema de eso. Pero tampoco sé de qué!
  #6 (permalink)  
Antiguo 26/03/2010, 17:11
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con redirección y action

La accion del formulario no afecta a PHP, puesto que se ejecuta del lado del servidor y, suponiendo que se dan las condiciones necesarias, PHP envia el header y ni se entera que habia un formulario mas abajo.

A ver... todo el bloque esta "sobre el HTML"... es decir, antes de enviar cualquier salida al navegador? (incluidos espacios, saltos de linea, otros encabezados, etc.)

Si la respuesta es afirmativa, lo unico que se me ocurre es que pongas un espacio entre los dos puntos y la pagina de destino: 'Location: fin.php' o, la pagina no es accesible desde la ruta actual.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 27/03/2010, 04:44
 
Fecha de Ingreso: marzo-2010
Mensajes: 9
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problema con redirección y action

Pues sí se daban las circunstancias, salvo quizá, algún espacio en blanco.

He estado de probatinas y he solucionado el tema enviando el if que ponía en "formulario.php" a "validacion.php". La verdad es que no sé por qué, pero así se ha solucionado.

Muchas gracias por la ayuda!! Ahora probaré a ver si era por los espacios, que prefiero que no me pase esto otra vez jejeje!

Lo dicho, muchísimas gracias, un saludo, y a pasar buen fin de semana!!

Etiquetas: acciones
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 21:53.