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?

¿Fue útil?

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">
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top