PHP Multiforme de la Validation et de la Redirection
-
09-06-2019 - |
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?
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">
}