2009-01-20 11 views
5

Bueno, ahora tengo una página (page2.php) y en la parte superior hace algunas comprobaciones de validación, y si algo falla, rebota en page1.php. El problema es que page1.php es cargado por una publicación lo que significa que es el resultado final de una forma. Esto significa que todos los datos de publicación que originalmente tengo en page1.php se pierden.Posible publicar datos en un redireccionamiento de PHP?

Así que aquí es mi código:

if ($validation_fails) 
{ 
    header('Location:page1.php'); 
} 
+0

http://stackoverflow.com/questions/311242/php-open-another-webpage-with-post-data –

+0

Puede extraer los datos de $ _POST y luego pasarlos a la siguiente página como su propio POST . – Peter

Respuesta

5

Puede publicar datos de nuevo con cURL o re-estructura para hacer la validación en la parte superior de page1.php y si no falla, llevará a page2.php. Si está realizando algún tipo de formulario de pasos múltiples, puede guardar todos los datos en una sesión y rellenar los campos si hay datos coincidentes en la sesión. Sin embargo, no estoy seguro si eso se aplica.

2

¿No puede simplemente incluir la secuencia de comandos de validación a través de include o require en lugar de redirigir a ella?

3

Puede reestructurar la lógica. La validación debería ocurrir en page1.php y si falla, la redirección no ocurre. Si tiene éxito, se te redirige.

Si le preocupa la seguridad (las personas solo van a la página 2), puede establecer una variable de sesión que esté marcada en la página 2 y establecer en la página1.

1

En page2.php Puede almacenar los contenidos de la publicación en una variable $ _SESSION si la validación falla.

En la página 1.php simplemente incluye una versión de los datos escapada/codificada correctamente que almacenó en la sesión como parte del formulario. También podría usar esto para actualizar el formulario, por lo que es claro para el usuario qué parte falló la validación.

Cuestiones relacionadas