مكتبة واجهة CGI
جدول المحتويات
- معلومات عامة
- التقنيات
- هيكل الموقع
- يثبت
معلومات عامة
هدف:
تطوير برنامج C++ الذي يقوم بتنفيذ خادم ويب لواجهة CGI لإنشاء ومعالجة قاعدة بيانات كتب المكتبة.
الحل الخاص بي:
باستخدام إمكانيات مكتبة sqlite3 وخادم Apache، تمكنت من كتابة واجهة CGI الخاصة بي بلغة C ++ والتي توفر الحد الأدنى من وظائف مكتبة الكتب مع إمكانية الإضافة والحذف والتحرير والبحث داخل قاعدة البيانات.
التقنيات
- سي++ 14
- سكليتي (الإصدار: 3.40.0)
- سيجيكك (الإصدار: 3.2.19#5)
- xampp (خادم Apache المُنفذ)
- للعمل مع ملفات .db، استخدم متصفح DB SQLite
هيكل الموقع
- MainPage.cpp - ملف Index.cgi، الصفحة الرئيسية التي تحتوي على كافة المعلومات والتي يتم من خلالها تنفيذ جميع الإجراءات. اطلب GET لتصفية عمليات البحث في المكتبة حسب المعلمات الخاصة بعنوان الكتاب واسم المؤلف.
URL: hostname/index.cgi
- AddToDB.cpp - ملف AddToDB.cgi، يحصل البرنامج النصي على البيانات (اسم الكتاب، المؤلف، الصفحات، إلخ...) من طلب POST ويضيفها إلى قاعدة البيانات.
URL: hostname/cgi-bin/AddToDB.cgi
- حذف منDB.cpp - ملف حذف منDB.cgi، يحصل البرنامج النصي على البيانات (في هذه الحالة - المعرف) من طلب POST، ثم يبحث عن العنصر حسب المعرف في الجدول ويحذفه.
URL: hostname/cgi-bin/DeleteFromDB.cgi
- DropTable.cpp - ملف DropTable.cgi، يحصل البرنامج النصي على البيانات (اسم الجدول) من طلب POST، ثم يسقط الجدول.
URL: hostname/cgi-bin/DropTable.cgi
- EditDB.cpp - ملف EditDB.cgi، يحصل البرنامج النصي على البيانات (المعرف) من طلب POST، ثم يبحث عن العناصر حسب المعرف في الجدول ويقوم بإعداد قيمها في نموذج HTML، ثم يعطي إمكانية تغيير هذه البيانات.
URL: hostname/cgi-bin/EditDB.cgi
- SaveEdit.cpp - ملف SaveEdit.cgi، يحصل البرنامج النصي على البيانات (بيانات من EditDB.cgi) ثم يقوم بتحديث الجدول ببيانات جديدة من EditDB.cgi.
URL: hostname/cgi-bin/SaveEdit.cgi
يثبت
- قم بتنزيل xampp أو استخدم هذه الملفات.
- قم بتجميع ملفات .cpp في ملف .cgi وأعد تسميته كما هو الحال في بنية الموقع.
- انقل جميع ملفات .cgi إلى مجلد cgi-bin مثل هنا.
- استخدم ملف التكوين هذا لاستخدام خادم Apache.
- قم بتشغيل خادم Apache عبر تطبيق xampp.
- اكتب في عنوان URL الخاص بك: المضيف المحلي
منتهي! =)