Foros del Web » Programando para Internet » PHP »

Formulario con action="<?php echo $_SERVER['PHP_SELF'];?>"> no me pasa el POST

Estas en el tema de Formulario con action="<?php echo $_SERVER['PHP_SELF'];?>"> no me pasa el POST en el foro de PHP en Foros del Web. Buenas tardes a todos a todos: La cosa esta asi: Tengo un formulario con los controles validados; los controles son Input text y List/menu (tipo ...
  #1 (permalink)  
Antiguo 19/08/2008, 17:55
 
Fecha de Ingreso: agosto-2008
Mensajes: 46
Antigüedad: 15 años, 8 meses
Puntos: 0
Formulario con action="<?php echo $_SERVER['PHP_SELF'];?>"> no me pasa el POST

Buenas tardes a todos a todos:

La cosa esta asi:

Tengo un formulario con los controles validados; los controles son Input text y List/menu (tipo Menu y tipo Lista). Con la validación no tengo problemas.

La pagina que contiene el formulario y los controles se llama "reservacion.php" y ésta debe autoejecutarse, pero al final de todo el proceso, si todos los ccampos estan completos, me debe de mandar el $_POST a la pagina "revisar.php", en la cual inicio una sesión y capturo $_POST para agregarlo a la variable de sesión respectiva, como ejemplo:


if ($_POST && !empty($_POST['nombre'])){
$_SESSION['nombre'] = $_POST['nombre'];
}


Si le cambio el action al formulario de la pagina "reservacion.php" en el que le he indicado que:

action="<?php echo $_SERVER['PHP_SELF'];?>">

Por este otro:

action="revisar.php">

Me pasa el array $_POST y me muestra las variables de sesión con su valor, cuando le indico que:

if (isset($_SESSION['nombre'])){
echo "Nombre completo: ". $_SESSION['nombre']. "<br>";
}


¡¡ Y lo hace a la perfección ...!!

Pero, el problema es que al cargar la pagina "reservacion.php", y darle click al boton, NO ME VALIDA el form y me manda directamente a la pagina "revisar.php" pero las variables de sesion quedan vacias.

No se lo que pasa, me gustaria que me orientaran al respecto, para lo cual dejo plasmadas estas otras inquietudes:

1) ¿Sera que debo de iniciar sesion en la pagina "reservacion.php" y tambien en la pagina "revisar.php"?

2) ¿Es que debo de capturar el array $_POST en la misma pagina "reservacion.php" y crear las variables de sesion ahi mismo y luego mandarlas a la pagina "revisar.php"? para solo hacer un "echo" para mostrarlas?

3) En la pagina "reservacion.php" no inicio sesion, ahi solo esta la validacion de los campos, como estoy validando del lado del servidor ¿es correcto iniciar la sesion en la pagina "revisar.php" y no en la la pagina "reservacion.php"?

4) O por favor, que alguien me diga cual es la forma correcta de hacer esto.

Gracias de antemano por su ayuda.

Que Dios los bendiga a todos.
  #2 (permalink)  
Antiguo 19/08/2008, 19:15
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Respuesta: Formulario con action="<?php echo $_SERVER['PHP_SELF'];?>"> no me pasa el

1) Has puesto method="POST" en el formulario?

Código:
<form method="POST" action="revisar.php">


2) En revisar.php las variables salen vacías? asegúrate con esta linea en revisar.php :

Código PHP:
 echo $_POST['cualquier_variable_del_formulario']; 
O para saber los datos que tiene $_POST (también en revisar.php):

Código PHP:
 print_r($_POST); 
  #3 (permalink)  
Antiguo 20/08/2008, 07:10
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: Formulario con action="<?php echo $_SERVER['PHP_SELF'];?>"> no me pasa el

Cuando cambias de reservacion.php a revisar.php no envías ningún formulario, por lo que $_POST tampoco.

por eso no las lee. simplemente no están.

si quieres pasarlas deberás hacerlo direccionando el formulario a revisar.php

form action="revisar.php"....

la mejor manera de comprobar si un formulario ha sido rellenado correctamente es vía javascript ya que no hace falta volver a llamar a la misma página al realizarse en usuario.

en vez de generar un input tipo submit crea uno tipo button y cuando lo clikee llame a la funcion de validacion:
<input type="button" oncliclk="funcionJavascript"...>

en la cabecera de la pagina añade el script que se encargará de validar el formulario
Si no hay error entonces al final indicas onSubmit();
me parece que ese es el nombre de la funcion, compruébalo antes.

Cuando lo envíe validado ya puedes hacer lo que quieras en revisar.php
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 07:45.