In edit_brands.php heb de volgende code:
en bovenin de pagina de volgende PHP:
Met andere woorden: als iemand in het form een brand name tikt, en het form submit, wordt deze toegevoegd aan de tabel met brands. Echter - als je daarna op refresh drukt, voert hij die code telkens opnieuw uit en wordt hetzelfde brand telkens in een nieuwe recordset aan de database toegevoegd!
Ik heb dit proberen tegen te gaan door $_POST['submitted'] te unsetten nadat de query is uitgevoerd:
Maar dit werkt niet.
Hoe ga ik op een goede manier tegen dat, nadat het form gesubmit is en het brand is toegevoegd, de query niet nog een keer wordt afgevuurd als iemand op F5 drukt?
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
| <script language="JavaScript"> function submitForm() { document.frm_add_brand.submitted.value = "yes"; document.frm_add_brand.submit(); } </script> <form name="frm_add_brand" action="edit_brands.php" method="post"> <input type="hidden" name="submitted" value=""> <input name="brand_name" type="text"> <input type="button" value="add brand" onclick="submitForm();"> </form> |
en bovenin de pagina de volgende PHP:
PHP:
1
2
3
4
5
6
7
8
| if (isset($_POST['submitted'])) { if (isset($_POST['brand_name'])) { $qry_insert_brand = "INSERT INTO brands (brand_id, brand_name)". "VALUES ('', '".$_POST['brand_name']."')"; $qid_insert_brand = db_query($qry_insert_brand, 0, 0); unset($_POST['submitted']); } } |
Met andere woorden: als iemand in het form een brand name tikt, en het form submit, wordt deze toegevoegd aan de tabel met brands. Echter - als je daarna op refresh drukt, voert hij die code telkens opnieuw uit en wordt hetzelfde brand telkens in een nieuwe recordset aan de database toegevoegd!
Ik heb dit proberen tegen te gaan door $_POST['submitted'] te unsetten nadat de query is uitgevoerd:
PHP:
1
2
3
4
5
6
7
8
| if (isset($_POST['submitted'])) { if (isset($_POST['brand_name'])) { $qry_insert_brand = "INSERT INTO brands (brand_id, brand_name)". "VALUES ('', '".$_POST['brand_name']."')"; $qid_insert_brand = db_query($qry_insert_brand, 0, 0); unset($_POST['submitted']; <<<<< } } |
Maar dit werkt niet.
Hoe ga ik op een goede manier tegen dat, nadat het form gesubmit is en het brand is toegevoegd, de query niet nog een keer wordt afgevuurd als iemand op F5 drukt?
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."