आप यहां PHP को प्रक्रियात्मक तरीके से कर रहे हैं। इसका मतलब है कि बयानों को एक के बाद एक निष्पादित किया जाता है, इसलिए समस्या आपके बयान देने के तरीके में है।
अपने कोड में, आप पहले फॉर्म को प्रदर्शित कर रहे हैं और उसके बाद ही इसे अपडेट कर रहे हैं, इसलिए पिछले मान प्राप्त होते हैं, हालांकि अपडेट बाद में ही हो रहा है।
समाधान: फ़ंक्शन save_edits()
और इसकी कॉल पहले आनी चाहिए उसके बाद edit_page().
सुरक्षा के लिहाज से एक और महत्वपूर्ण बात, आप एड्रेस बार से मिलने वाली वैल्यू को सीधे इन्सर्ट कर रहे हैं। अभी जैसा है, कोई व्यक्ति में लिखकर आपकी पूरी तालिका गिरा सकता है। कोड का टुकड़ा
. आप उपयोग कर सकते हैं mysql_real_escape_string()
इसे रोकने के लिए (हालांकि पूरी तरह से नहीं) या बेहतर अभी तक:
कृपया, mysql_*
का उपयोग न करें नए कोड में कार्य करता है
. अब उनका रखरखाव नहीं किया जाता है और आधिकारिक तौर पर पदावनत कर दिया जाता है
. देखें लाल बॉक्स
? तैयार किए गए स्टेटमेंट के बारे में जानें
इसके बजाय, और PDO
का उपयोग करें , या MySQLi
- यह लेख
आपको यह तय करने में मदद मिलेगी कि कौन सा। यदि आप पीडीओ चुनते हैं, तो यहां एक अच्छा ट्यूटोरियल है
।
अंत में, आप अपना <form>
. बंद नहीं कर रहे हैं टैग।