Je doet PHP op de procedurele manier hier. Dat betekent dat de uitspraken na elkaar worden uitgevoerd, dus het probleem ligt in de manier waarop je je uitspraken plaatst.
In uw code geeft u eerst het formulier weer en pas het daarna bij, daarom worden de vorige waarden opgehaald, hoewel de update pas later plaatsvindt.
Oplossing: De functie save_edits()
en zijn aanroep moet eerst komen, gevolgd door edit_page().
Een ander belangrijk ding in termen van beveiliging, u voegt rechtstreeks de waarde in die u uit de adresbalk krijgt. Zoals het nu is, kan iemand je hele tafel laten vallen door te schrijven in een stukje code
. Je zou mysql_real_escape_string()
. kunnen gebruiken om het te voorkomen (hoewel niet helemaal) of beter nog:
Gebruik mysql_*
alstublieft niet functies in nieuwe code
. Ze worden niet langer onderhouden en zijn officieel verouderd
. Zie het rode vak
? Meer informatie over voorbereide verklaringen
in plaats daarvan, en gebruik BOB
, of MySQLi
- dit artikel
zal u helpen beslissen welke. Als je PDO kiest, hier is een goede tutorial
.
Ten slotte sluit u uw <form>
niet af tag.