Anda melakukan PHP dengan cara prosedural di sini. Itu berarti pernyataan dieksekusi satu demi satu sehingga masalahnya terletak pada cara Anda menempatkan pernyataan Anda.
Dalam kode Anda, Anda menampilkan formulir terlebih dahulu dan baru kemudian memperbaruinya, jadi itulah mengapa nilai sebelumnya diambil meskipun pembaruan hanya terjadi nanti.
Solusi: Fungsi save_edits()
dan panggilannya harus didahulukan diikuti oleh edit_page().
Hal penting lainnya dalam hal keamanan, Anda langsung memasukkan nilai yang Anda dapatkan dari address bar. Saat ini, seseorang dapat menghapus seluruh tabel Anda dengan menulis potongan kode
. Anda dapat menggunakan mysql_real_escape_string()
untuk mencegahnya (walaupun tidak sepenuhnya) atau lebih baik lagi:
Tolong, jangan gunakan mysql_*
fungsi dalam kode baru
. Mereka tidak lagi dipertahankan dan secara resmi tidak digunakan lagi
. Lihat kotak merah
? Pelajari tentang pernyataan yang disiapkan
sebagai gantinya, dan gunakan PDO
, atau MySQLi
- artikel ini
akan membantu Anda memutuskan yang mana. Jika Anda memilih PDO, inilah tutorial yang bagus
.
Terakhir, Anda tidak menutup <form>
. Anda tanda.