Du laver PHP på den proceduremæssige måde her. Det betyder, at udsagn udføres efter hinanden, så problemet ligger i den måde, du placerer dine udsagn på.
I din kode viser du først formularen og først derefter opdaterer den, så det er grunden til, at de tidligere værdier bliver hentet, selvom opdateringen først sker senere.
Løsning: Funktionen save_edits()
og dets kald bør komme først efterfulgt af edit_page().
En anden vigtig ting med hensyn til sikkerhed, du indsætter direkte den værdi, du får fra adresselinjen. Lige nu, som det er, kan nogen droppe hele din tabel ved at skrive i en kodestykke
. Du kan bruge mysql_real_escape_string()
for at forhindre det (men ikke helt) eller endnu bedre:
Brug venligst ikke mysql_*
funktioner i ny kode
. De vedligeholdes ikke længere og er officielt forældede
. Se den røde boks
? Lær om forberedte erklæringer
i stedet, og brug PDO
, eller MySQLi
- denne artikel
vil hjælpe dig med at beslutte hvilken. Hvis du vælger PDO, her er en god vejledning
.
Endelig lukker du ikke din