PHP Multiforme de la Validación y de la Redirección
-
09-06-2019 - |
Pregunta
Tengo buy.php
con un formulario donde puede entrar los elementos, la cantidad, el envío de datos, etc.
Cuando usted haga clic en el Botón de enviar, se vuelve a buy.php
($_SERVER['PHP_SELF'])
y hace algunos datos de validación.
Si hay campos faltantes o errores, están resaltados.Si todo es correcto, puedo guardar el $_POST
de datos en $_SESSION
variables, a continuación, hacer un header('Location: check.php')
, donde puedo mostrar los datos de forma que el comprador puede verificar la información por última vez antes de que realmente está comprando.
Ahora, si estoy en check.php
y pulsa el botón Atrás para buy.php
así que puedo cambiar las cosas, el navegador pregunta si quiero volver a enviar los datos de envío.Estoy tratando de evitar que.
Alguien tiene algún buen consejo o de las buenas prácticas para PHP Multiforme de validación?
También, si yo tuviera n páginas para que el usuario introduzca, buy.php, buy2.php, ... buyn.php
antes de check.php tendría las mismas ideas todavía se mantienen?
Solución
Usted podría hacer una redirección a buy.php después de guardar el objeto de la sesión, que luego se hace a un servidor de redirección a check.php, significaría cuando el usuario hace clic de nuevo, se va a volver a la petición GET no la solicitud POST
Otros consejos
Sí, yo estoy de acuerdo con lo anterior.Yo SIEMPRE hago una redir
distancia desde el último post, así que haga clic en volver rebota de vuelta sin que de error O de re-envíos.también, evita complicaciones.u puede siempre la etiqueta de la redir
enlace con la página de un ?m
o &m
(es decir: page.php?m
) y este en la parte superior de la página:(uso elseif
no después)
if (isset($_GET['m'])) {
echo 'order placed.';
}
else {
//...
}
Usted puede tener todo en una sola página.Sólo el nombre de los botones de envío submit1
, submit2
, como:(tener en cuenta si se utiliza una imagen para que se somete, se convierte en $_POST['submit1_x']
:)
if (isset($_POST[submit1]) {
//validate + save session data from form1
//display form 2
} else if(isset($_POST[submit2])) {
//validate + save session data from form2
//display form 3
} else {
//display first form
//<input type="submit" name="submit1" value="Continue">
}