Вие правите PHP по процедурния начин тук. Това означава, че операторите се изпълняват един след друг, така че проблемът е в начина, по който поставяте своите оператори.
Във вашия код първо показвате формуляра и едва след това го актуализирате, така че ето защо предишните стойности се извличат, въпреки че актуализацията се случва едва по-късно.
Решение: Функцията save_edits()
и неговото извикване трябва да бъде първо последвано от edit_page().
Друго важно нещо по отношение на сигурността, вие директно вмъквате стойността, която получавате от адресната лента. Точно сега, както е, някой може да пусне цялата ви таблица, като напише в парче код
. Можете да използвате mysql_real_escape_string()
за да го предотвратите (макар и не напълно) или още по-добре:
Моля, не използвайте mysql_*
функционира в нов код
. Те вече не се поддържат и са официално оттеглени
. Вижте червеното поле
? Научете за подготвените изявления
вместо това и използвайте PDO
, или MySQLi
- тази статия
ще ви помогне да решите кое. Ако изберете PDO, ето един добър урок
.
И накрая, вие не затваряте своя <form>
етикет.