Lomakkeen lähettäminen tietokantaan ja uudelleenohjaus PHP:ssä
Oletetaan, että meillä on jokin lomake:
<form method="POST">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
Tallennetaan tämän lomakkeen tiedot tietokantaan:
<?php
if (!empty($_POST)) {
// tallennetaan tietokantaan
}
?>
Tässä kuitenkin piilee ongelma: jos selainsivua päivitetään, lomake lähetetään ja tallennetaan uudelleen, mikä luo kaksoiskappaleen tiedoista.
Ongelman ratkaisemiseksi tulee tallennuksen jälkeen suorittaa uudelleenohjaus samalle sivulle:
<?php
if (!empty($_POST)) {
// tallennetaan tietokantaan
header('Location: form.php');
die();
}
?>
Tee lomake ja toteuta sen tallennus tietokantaan lähetyksen jälkeen. Poista kaksois- tallennus lähetyksen jälkeen.