Question

J'ai buy.php avec un formulaire lorsque vous entrez les éléments, la quantité, les données d'expédition, etc.

Lorsque vous cliquez sur le Bouton soumettre, il enregistre à buy.php ($_SERVER['PHP_SELF']) et fait de la validation des données.

Si il y a des champs manquants ou des erreurs, ils sont mis en évidence.Si tout est correct, je sauvegarde l' $_POST données $_SESSION les variables, puis faire un header('Location: check.php'), où j'affiche les données de sorte que l'acheteur peut vérifier l'info une dernière fois avant de l'acheter.

Maintenant, si je suis dans check.php et de frapper le bouton de Retour à buy.php donc, je peux changer les choses, le navigateur me demande si je veux renvoyer les données POST.J'essaie de l'éviter.

Quelqu'un a de bons conseils ou de bonnes pratiques pour PHP Multiforme de validation?

Aussi, si j'avais n pages pour l'utilisateur à remplir, buy.php, buy2.php, ... buyn.php avant check.php aurait les mêmes idées encore tenir?

Était-ce utile?

La solution

Vous pourriez faire une redirection buy.php après l'enregistrement de la session de l'objet, qui fait ensuite un serveur de redirection check.php cela signifierait lorsque l'utilisateur clique sur le dos, ils vont le retour à la demande pas la requête POST

Autres conseils

Oui je suis d'accord avec ci-dessus.Je fais TOUJOURS un redir à partir du dernier post, donc à revenir sur rebondit en arrière sans que l'erreur OU re-présentations.il permet également d'éviter les complications.u peut toujours la balise redir lien avec la page d'un ?m ou &m (c'est à dire: page.php?m) et à la haut de la page:(utilisation elseif il y a après)

if (isset($_GET['m'])) {
  echo 'order placed.';
}
else {
  //...
}

Vous pouvez tout avoir sur une seule page.Juste le nom des boutons de soumission submit1, submit2, comme par exemple:(gardez à l'esprit que si vous utilisez une image pour le soutient, il devient $_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">
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top