ຄຳນຳ (Introduction)
Lao Air ແມ່ນຫຍັງ?
Lao Air ແມ່ນລະບົບການຈອງຕັ໋ວເຮືອບິນແບບຄົບວົງຈອນ ທີ່ພັດທະນາດ້ວຍ PHP ແລະ SQLite. ລະບົບນີ້ອອກແບບມາເພື່ອໃຫ້ງ່າຍຕໍ່ການຈອງຕັ໋ວເຮືອບິນພາຍໃນປະເທດລາວ ແລະ ສາກົນ, ການຄຸ້ມຄອງການຈອງ, ແລະ ການຊໍາລະເງິນ.
Lao Air ສ້າງຂຶ້ນເພື່ອຕອບສະຫນອງຄວາມຕ້ອງການໃນການຈອງຕັ໋ວເຮືອບິນທີ່ທັນສະໄຫມສໍາລັບຜູ້ໃຊ້ບໍລິການທັ່ວໄປ, ອົງກອນຂອງລັດ, ແລະ ບໍລິສັດທ່ອງທ່ຽວ. ລະບົບມີໂມດູນການຈອງຫຼາຍຮູບແບບລວມທັງການເດີນທາງໄປ-ກັບ, ເດີນທາງທາງດຽວ, ແລະ ການເດີນທາງຫຼາຍເສັ້ນທາງ (multi-city).
Lao Air ເຫມາະສົມທີ່ສຸດສໍາລັບຫຍັງ?
Lao Air ເຫມາະສົມທີ່ສຸດສໍາລັບ:
- ຜູ້ໃຊ້ບໍລິການລາຍບຸກຄົນທີ່ຕ້ອງການຈອງຕັ໋ວເຮືອບິນແບບງ່າຍດາຍ
- ຫ້ອງການຂອງລັດທີ່ຕ້ອງການລະບົບການຈອງຕັ໋ວເຮືອບິນທີ່ມີລະບົບບັນຊີສິນເຊື່ອ
- ບໍລິສັດທ່ອງທ່ຽວທີ່ຕ້ອງການລະບົບຈອງຕັ໋ວທີ່ມີລະບົບຄ່ານາຍຫນ້າ
- ການເດີນທາງທາງທຸລະກິດສໍາລັບອົງກອນທີ່ຕ້ອງຄຸ້ມຄອງການເດີນທາງສໍາລັບພະນັກງານຫຼາຍຄົນ
ລະບົບນີ້ສະຫນັບສະຫນູນການຈອງຕັ໋ວເຮືອບິນພາຍໃນປະເທດ ແລະ ສາກົນ, ພ້ອມທັງມີລະບົບການຊໍາລະເງິນຫຼາຍຮູບແບບ ແລະ ການຄຸ້ມຄອງເອກະສານການຈອງ.
Lao Air ທຽບກັບລະບົບອື່ນໆແນວໃດ?
ຖ້າທ່ານເຄີຍໃຊ້ລະບົບຈອງຕັ໋ວເຮືອບິນອື່ນ, ທ່ານຈະພໍໃຈກັບລັກສະນະຂອງ Lao Air:
- ໃຊ້ພາສາລາວເປັນພາສາຫລັກ ເຮັດໃຫ້ງ່າຍຕໍ່ການໃຊ້ງານສໍາລັບຄົນລາວ
- ໂຄງສ້າງງ່າຍດາຍ ແລະ ສັບຊ້ອນຫນ້ອຍກວ່າລະບົບຂະຫນາດໃຫຍ່
- ສາມາດໃຊ້ໄດ້ໂດຍບໍ່ຕ້ອງການການເຊື່ອມຕໍ່ກັບລະບົບ GDS (Global Distribution System) ແພງຮາຄາແພງ
- ຮອງຮັບການຄຸ້ມຄອງບັນຊີສິນເຊື່ອສໍາລັບລູກຄ້າອົງກອນ
- ຮອງຮັບການຄຸ້ມຄອງນາຍຫນ້າສໍາລັບບໍລິສັດທ່ອງທ່ຽວ
ການພັດທະນາມາດຕະຖານ (Development Standards)
ພາສາທີ່ໃຊ້
Lao Air ພັດທະນາດ້ວຍພາສາຕໍ່ໄປນີ້:
- PHP: ພາສາຫຼັກທີ່ໃຊ້ໃນການພັດທະນາຝັ່ງເຊີເວີ (backend)
- JavaScript: ໃຊ້ສໍາລັບການເຮັດວຽກຢູ່ຝັ່ງລູກຂ່າຍ (client-side)
- HTML/CSS: ໃຊ້ສໍາລັບການສ້າງແລະຈັດຮູບແບບອິນເຕີເຟສຜູ້ໃຊ້
- SQL: ໃຊ້ສໍາລັບການຈັດການຖານຂໍ້ມູນ SQLite
ຮູບແບບການຂຽນໂຄດ (Coding Style)
ລະບົບນີ້ໃຊ້ຮູບແບບການຂຽນໂຄດຕາມມາດຕະຖານດັ່ງນີ້:
- ໃຊ້ຮູບແບບການຂຽນ camelCase ສໍາລັບຊື່ຕົວປ່ຽນແລະຟັງຊັ່ນ
- ໃຊ້ຮູບແບບການຂຽນ PascalCase ສໍາລັບຊື່ຄລາສ
- ໃຊ້ການເຍື້ອງເຂົ້າ (indentation) 4 ຊ່ອງຫວ່າງສໍາລັບທຸກໄຟລ໌ PHP
- ຂຽນຄໍາອະທິບາຍ (comments) ສໍາລັບຟັງຊັ່ນແລະໂຄດທີ່ສັບຊ້ອນ
ໂຄງສ້າງການພັດທະນາ (Development Architecture)
Lao Air ໃຊ້ໂຄງສ້າງການພັດທະນາແບບງ່າຍໆ. ລະບົບບໍ່ໄດ້ນໍາໃຊ້ framework PHP ທີ່ສັບຊ້ອນ ແຕ່ໃຊ້ໂຄງສ້າງທຽບກັບຮູບແບບ MVC (Model-View-Controller) ແບບງ່າຍດາຍ:
- Model: ການເຂົ້າເຖິງຖານຂໍ້ມູນແລະການຈັດການຂໍ້ມູນ
- View: ໄຟລ໌ PHP ທີ່ມີໂຄດ HTML ສໍາລັບສະແດງຜົນຕໍ່ຜູ້ໃຊ້
- Controller: ຕັດສິນໃຈວ່າຈະສະແດງຂໍ້ມູນໃດໃຫ້ຜູ້ໃຊ້ຕາມການຮ້ອງຂໍ (request)
ໂຄງສ້າງໄດເຣກທໍຣີ (Directory Structure)
ໂຄງສ້າງໄດເຣກທໍຣີຫຼັກຂອງລະບົບມີດັ່ງນີ້:
/
├── admin/ # ສ່ວນບໍລິຫານຈັດການລະບົບ
├── agent/ # ສ່ວນບໍລິຫານສໍາລັບບໍລິສັດທ່ອງທ່ຽວ
├── assets/ # ຊັບພະຍາກອນຕ່າງໆ (CSS, JavaScript, images)
├── components/ # ສ່ວນປະກອບທີ່ໃຊ້ຮ່ວມກັນ
├── config/ # ໄຟລ໌ການຕັ້ງຄ່າລະບົບ
├── core/ # ຟັງຊັ່ນຫຼັກຂອງລະບົບ
├── db/ # ຖານຂໍ້ມູນ SQLite ແລະໄຟລ໌ທີ່ກ່ຽວຂ້ອງ
├── docs/ # ເອກະສານ
├── includes/ # ໄຟລ໌ທີ່ໃຊ້ຮ່ວມກັນເປັນປະຈໍາ
│ ├── components/ # ສ່ວນປະກອບ UI ທີ່ໃຊ້ຮ່ວມກັນ
│ ├── db/ # ການເຊື່ອມຕໍ່ແລະການຈັດການຖານຂໍ້ມູນ
│ └── functions/ # ຟັງຊັ່ນທີ່ໃຊ້ຮ່ວມກັນ
├── js/ # ສຄຣິບ JavaScript
├── logs/ # ບັນທຶກລະບົບ
├── mobile/ # ສ່ວນສໍາລັບອຸປະກອນມືຖື
├── modules/ # ໂມດູນຕ່າງໆຂອງລະບົບ
├── pages/ # ຫນ້າຕ່າງໆຂອງເວັບໄຊທ໌
│ ├── components/ # ສ່ວນປະກອບສະເພາະຂອງຫນ້າ
├── public/ # ໄຟລ໌ສາທາລະນະທີ່ສາມາດເຂົ້າເຖິງໄດ້ໂດຍກົງ
├── tmp/ # ໄຟລ໌ຊົ່ວຄາວ
├── uploads/ # ໄຟລ໌ທີ່ຜູ້ໃຊ້ອັບໂຫຼດ
├── vendor/ # ໄລບຣາຣີພາຍນອກ
└── views/ # ໄຟລ໌ທີ່ໃຊ້ສໍາລັບການສະແດງຜົນ
ໂຄງສ້າງໄດເຣກທໍຣີມືຖື (Mobile Directory Structure)
ໂຄງສ້າງໄດເຣກທໍຣີສ່ວນມືຖືມີດັ່ງນີ້:
/mobile/
├── assets/ # ຊັບພະຍາກອນສໍາລັບມືຖື (CSS, JavaScript, images)
├── components/ # ສ່ວນປະກອບ UI ສໍາລັບມືຖື
├── css/ # ໄຟລ໌ CSS ສະເພາະມືຖື
├── includes/ # ໄຟລ໌ທີ່ໃຊ້ຮ່ວມກັນສໍາລັບມືຖື
├── js/ # ສຄຣິບ JavaScript ສໍາລັບມືຖື
└── pages/ # ຫນ້າຕ່າງໆສໍາລັບມືຖື
ການກຳນົດຄ່າ (Configuration)
ລະບົບນີ້ມີວິທີການຕັ້ງຄ່າຫຼັກດັ່ງນີ້:
1. ການຕັ້ງຄ່າຖານຂໍ້ມູນ
ການຕັ້ງຄ່າຖານຂໍ້ມູນຢູ່ໃນໄຟລ໌ includes/db/database.php. ລະບົບໃຊ້ SQLite ເປັນຖານຂໍ້ມູນພື້ນຖານ, ເຊິ່ງຈັດເກັບຢູ່ໃນ db/flight_booking.sqlite.
2. ການຕັ້ງຄ່າເຊສຊັນ (Session)
ການຕັ້ງຄ່າເຊສຊັນຢູ່ໃນໄຟລ໌ includes/session_config.php. ເຊສຊັນຖືກຕັ້ງໃຫ້ໝົດອາຍຸພາຍໃນ 7 ວັນ ແລະ ຈັດເກັບໃນໄດເຣກທໍຣີ tmp/sessions.
3. URL ແລະ ເສັ້ນທາງ (Path)
ຟັງຊັ່ນຊ່ວຍເຫຼືອສໍາລັບ URL ແລະ ເສັ້ນທາງຢູ່ໃນໄຟລ໌ includes/functions.php. ຟັງຊັ່ນ url($path) ໃຊ້ສໍາລັບສ້າງ URL ເຕັມ.
4. ການຕັ້ງຄ່າການອັບໂຫຼດໄຟລ໌
ການອັບໂຫຼດໄຟລ໌ຖືກຕັ້ງຄ່າໃຫ້ບັນທຶກໄຟລ໌ໄປຍັງໄດເຣກທໍຣີ uploads/ ແລະ ຂະຫນາດສູງສຸດທີ່ອະນຸຍາດແມ່ນ 5MB. ລະບົບຮອງຮັບໄຟລ໌ PDF, JPEG, PNG, ແລະ GIF.
ຂັ້ນຕອນການຮ້ອງຂໍ (Request Flow)
ຂັ້ນຕອນການຮ້ອງຂໍໃນລະບົບ Lao Air ມີດັ່ງນີ້:
- ຜູ້ໃຊ້ຮ້ອງຂໍ URL (ຕົວຢ່າງ:
https://demo.laogair.com/pages/book_ticket.php) - ເຊີເວີປະມວນຜົນການຮ້ອງຂໍ ແລະ ໂຫຼດໄຟລ໌ PHP ທີ່ຖືກຮ້ອງຂໍ
- ໄຟລ໌ PHP ຈະໂຫຼດການຕັ້ງຄ່າເຊສຊັນຈາກ
includes/session_config.php - ໄຟລ໌ຈະໂຫຼດສ່ວນຫົວຂອງຫນ້າ (
includes/header.php) - ເປັນໄປຕາມຕັວຊີ້ວັດ ຫຼື ການກະທໍາ, ຂໍ້ມູນຈະຖືກເອົາມາຈາກຖານຂໍ້ມູນ
- ຂໍ້ມູນຈະຖືກປະມວນຜົນ ແລະ ສະແດງຜົນຕາມຮູບແບບທີ່ຕ້ອງການ
- ໄຟລ໌ຈະໂຫຼດສ່ວນທ້າຍຂອງຫນ້າ (
includes/footer.php) - ຜົນຜະລິດສຸດທ້າຍຈະຖືກສົ່ງກັບໄປຫາຜູ້ໃຊ້
ລະບົບນີ້ໃຊ້ການຮ້ອງຂໍແບບງ່າຍໂດຍບໍ່ມີຕົວຈັດການເສັ້ນທາງທີ່ຊັບຊ້ອນ (router). ການເຂົ້າເຖິງຫນ້າຕ່າງໆຈະເປັນໄປຕາມໂຄງສ້າງໄຟລ໌ໂດຍກົງ.
ພາບລວມໂຄງສ້າງ (Architecture Overview)
Lao Air ໃຊ້ໂຄງສ້າງແບບງ່າຍ ເຊິ່ງປະກອບດ້ວຍສ່ວນປະກອບຕ່າງໆດັ່ງນີ້:
1. ສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ (User Interface Layer)
- ຫນ້າ PHP ທີ່ມີໂຄດ HTML, CSS, ແລະ JavaScript
- ສ່ວນປະກອບທີ່ໃຊ້ຮ່ວມກັນ (components) ສໍາລັບສ່ວນຕ່າງໆຂອງຫນ້າ
- ຟອມສໍາລັບການຈອງຕັ໋ວ, ການລົງທະບຽນ, ແລະ ການເຂົ້າສູ່ລະບົບ
2. ຊັ້ນທຸລະກິດ (Business Logic Layer)
- ຟັງຊັ່ນສໍາລັບການປະມວນຜົນການຈອງ
- ການຢືນຢັນຂໍ້ມູນ (validation) ແລະ ການຮັກສາຄວາມປອດໄພ
- ການຄຸ້ມຄອງເຊສຊັນ ແລະ ຄຸກກີ້
3. ຊັ້ນເຂົ້າເຖິງຂໍ້ມູນ (Data Access Layer)
- ການເຊື່ອມຕໍ່ຖານຂໍ້ມູນ SQLite
- ຟັງຊັ່ນສໍາລັບການອ່ານ, ຂຽນ, ແກ້ໄຂ, ແລະ ລຶບຂໍ້ມູນ
- ການຄຸ້ມຄອງການເຊື່ອມຕໍ່ຖານຂໍ້ມູນ
ໂຄງສ້າງຫຼັກຂອງລະບົບ
ລະບົບ Lao Air ແບ່ງອອກເປັນ 3 ສ່ວນຫຼັກ:
1. ສ່ວນຜູ້ໃຊ້ທົ່ວໄປ (Front-end)
ສໍາລັບຜູ້ໃຊ້ທົ່ວໄປທີ່ຕ້ອງການຈອງຕັ໋ວ. ປະກອບດ້ວຍຟອມການຈອງ, ການຊໍາລະເງິນ, ແລະ ການຄຸ້ມຄອງການຈອງ.
2. ສ່ວນຜູ້ໃຊ້ລະບົບ (Agent Portal)
ສໍາລັບບໍລິສັດທ່ອງທ່ຽວທີ່ເປັນນາຍຫນ້າຂາຍຕັ໋ວ. ສາມາດເຂົ້າເຖິງໄດ້ຜ່ານໄດເຣກທໍຣີ /agent/.
3. ສ່ວນຜູ້ບໍລິຫານ (Admin Panel)
ສໍາລັບຜູ້ບໍລິຫານລະບົບ. ມີຄວາມສາມາດໃນການຈັດການຜູ້ໃຊ້, ຕັ້ງຄ່າລະບົບ, ແລະ ເບິ່ງລາຍງານຕ່າງໆ. ສາມາດເຂົ້າເຖິງໄດ້ຜ່ານໄດເຣກທໍຣີ /admin/.
ໄຟລ໌ເຂົ້າສູ່ລະບົບ (Entry Files)
ໄຟລ໌ເຂົ້າສູ່ລະບົບຫຼັກຂອງ Lao Air ມີດັ່ງນີ້:
1. index.php
ໄຟລ໌ເຂົ້າສູ່ລະບົບຫຼັກ. ເມື່ອຜູ້ໃຊ້ເຂົ້າເບິ່ງເວັບໄຊທ໌, ໄຟລ໌ນີ້ຈະຖືກເອີ້ນໃຊ້ແລະຈະໂອນໄປຫາໄຟລ໌ home.php.
2. home.php
ສະແດງຫນ້າຫຼັກຂອງເວັບໄຊທ໌ ພ້ອມທັງຟອມຄົ້ນຫາການບິນແລະຂໍ້ມູນໂປຣໂມຊັນຕ່າງໆ.
3. login.php
ໄຟລ໌ສໍາລັບຫນ້າເຂົ້າສູ່ລະບົບ. ຜູ້ໃຊ້ສາມາດເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີຂອງພວກເຂົາ.
4. register.php
ໄຟລ໌ສໍາລັບຫນ້າລົງທະບຽນ. ຜູ້ໃຊ້ໃຫມ່ສາມາດສ້າງບັນຊີໃຫມ່ໄດ້ຢູ່ທີ່ນີ້.
5. admin/index.php & agent/index.php
ໄຟລ໌ເຂົ້າສູ່ລະບົບສໍາລັບແຜງຄວບຄຸມຜູ້ບໍລິຫານແລະຜູ້ໃຊ້ລະບົບ.
ການເຂົ້າເຖິງ URL (URL Access)
ລະບົບ Lao Air ໃຊ້ໂຄງສ້າງ URL ແບບງ່າຍໂດຍອີງໃສ່ໂຄງສ້າງໄຟລ໌ໂດຍກົງ. URL ຫຼັກມີດັ່ງນີ້:
https://demo.laogair.com/- ຫນ້າຫຼັກຂອງເວັບໄຊທ໌https://demo.laogair.com/login.php- ຫນ້າເຂົ້າສູ່ລະບົບhttps://demo.laogair.com/register.php- ຫນ້າລົງທະບຽນhttps://demo.laogair.com/pages/book_ticket.php- ຫນ້າຈອງຕັ໋ວhttps://demo.laogair.com/admin/- ແຜງຄວບຄຸມຜູ້ບໍລິຫານhttps://demo.laogair.com/agent/- ແຜງຄວບຄຸມຜູ້ໃຊ້ລະບົບ (ບໍລິສັດທ່ອງທ່ຽວ)
ການຄຸ້ມຄອງ URL
Lao Air ໃຊ້ຮູບແບບການເຂົ້າເຖິງໄຟລ໌ແບບງ່າຍ. ລະບົບບໍ່ໄດ້ໃຊ້ຕົວຈັດການເສັ້ນທາງ (router) ທີ່ຊັບຊ້ອນແຕ່ໃຊ້ການເຊື່ອມຕໍ່ໄຟລ໌ PHP ໂດຍກົງ.
ພາຣາມິເຕີ URL
ລະບົບໃຊ້ພາຣາມິເຕີ GET ແລະ POST ເພື່ອຄວບຄຸມການດໍາເນີນງານ. ຕົວຢ່າງ:
https://demo.laogair.com/pages/book_ticket.php?flight_type=round-trip- ເປີດຫນ້າຈອງຕັ໋ວໄປ-ກັບhttps://demo.laogair.com/pages/view_booking.php?id=123- ເບິ່ງລາຍລະອຽດການຈອງ ID 123
ໄຟລ໌ການຕັ້ງຄ່າຖານຂໍ້ມູນ (Database Configuration)
ລະບົບ Lao Air ໃຊ້ຖານຂໍ້ມູນ SQLite ເພື່ອເກັບຂໍ້ມູນ. ການຕັ້ງຄ່າຖານຂໍ້ມູນຢູ່ໃນໄຟລ໌ includes/db/database.php.
ສະຖານທີ່ຈັດເກັບຖານຂໍ້ມູນ
ຖານຂໍ້ມູນ SQLite ເກັບຢູ່ໃນໄຟລ໌ db/flight_booking.sqlite. ໂຄດຕໍ່ໄປນີ້ກໍານົດທີ່ຕັ້ງຂອງຖານຂໍ້ມູນ:
// Define the SQLite database file path
define('DB_FILE', __DIR__ . '/../../db/flight_booking.sqlite');
// Ensure the database directory exists
$db_dir = __DIR__ . '/../../db';
if (!file_exists($db_dir)) {
mkdir($db_dir, 0755, true);
}
ການເຊື່ອມຕໍ່ຖານຂໍ້ມູນ
ຟັງຊັ່ນ getConnection() ຖືກໃຊ້ເພື່ອເຊື່ອມຕໍ່ກັບຖານຂໍ້ມູນ. ມັນໃຊ້ວິທີການແບບ singleton ເພື່ອຮັບປະກັນວ່າມີການເຊື່ອມຕໍ່ພຽງຄັ້ງດຽວ:
function getConnection() {
static $conn = null;
if ($conn === null) {
try {
$conn = new SQLite3(DB_FILE);
// Enable foreign keys support
$conn->exec('PRAGMA foreign_keys = ON');
} catch (Exception $e) {
error_log("Database connection error: " . $e->getMessage());
die("Database connection failed. Please try again later.");
}
}
return $conn;
}
ການດຳເນີນງານຂໍ້ມູນ (Database Operations)
ລະບົບ Lao Air ໃຊ້ຟັງຊັ່ນມາດຕະຖານສໍາລັບການດໍາເນີນງານຖານຂໍ້ມູນ:
ການຄິວຣີຂໍ້ມູນ (Query Data)
ຟັງຊັ່ນ runQuery() ໃຊ້ສໍາລັບການຄິວຣີຂໍ້ມູນຈາກຖານຂໍ້ມູນ:
function runQuery($sql, $params = []) {
$conn = getConnection();
try {
$stmt = $conn->prepare($sql);
// Bind parameters
if (!empty($params)) {
foreach ($params as $i => $param) {
$paramType = is_int($param) ? SQLITE3_INTEGER :
(is_float($param) ? SQLITE3_FLOAT : SQLITE3_TEXT);
$stmt->bindValue($i + 1, $param, $paramType);
}
}
$result = $stmt->execute();
// If it's a SELECT query, return the results as an array
if (stripos(trim($sql), 'SELECT') === 0) {
$rows = [];
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
$rows[] = $row;
}
return $rows;
}
return true;
} catch (Exception $e) {
error_log("Query error: " . $e->getMessage() . " - SQL: " . $sql);
return false;
}
}
ຮັບ ID ຂອງແຖວລ່າສຸດ (Last Insert ID)
ຟັງຊັ່ນ getLastInsertId() ໃຊ້ສໍາລັບຮັບ ID ຂອງແຖວທີ່ຫາກໍ່ຖືກເພີ່ມ:
function getLastInsertId() {
$conn = getConnection();
return $conn->lastInsertRowID();
}
ຕົວຢ່າງການນໍາໃຊ້
ຕົວຢ່າງຂ້າງລຸ່ມນີ້ສະແດງການໃຊ້ເພື່ອຄົ້ນຫາຂໍ້ມູນການບິນ:
// Search flights from VTE to LPQ
$flights = runQuery(
"SELECT * FROM flights WHERE departure_code = ? AND arrival_code = ?",
["VTE", "LPQ"]
);
// Insert a new booking
$success = runQuery(
"INSERT INTO bookings (booking_number, flight_type, total_amount, status) VALUES (?, ?, ?, ?)",
["B12345", "round-trip", 2500000, "pending"]
);
// Get the booking ID
$bookingId = getLastInsertId();
ຕາຕະລາງຖານຂໍ້ມູນ (Database Tables)
ລະບົບ Lao Air ປະກອບດ້ວຍຕາຕະລາງຕໍ່ໄປນີ້:
1. flights - ເກັບຂໍ້ມູນການບິນ
- id: ລະຫັດລາຍການບິນ
- flight_number: ເລກທີຖ້ຽວບິນ
- airline: ສາຍການບິນ
- departure_city: ເມືອງຕົ້ນທາງ
- departure_code: ລະຫັດສະຫນາມບິນຕົ້ນທາງ
- arrival_city: ເມືອງປາຍທາງ
- arrival_code: ລະຫັດສະຫນາມບິນປາຍທາງ
- departure_time: ເວລາອອກເດີນທາງ
- arrival_time: ເວລາຮອດປາຍທາງ
- duration: ໄລຍະເວລາການບິນ
- price: ລາຄາຕັ໋ວ
- seat_class: ປະເພດທີ່ນັ່ງ
- flight_date: ວັນທີເດີນທາງ
- aircraft: ປະເພດເຮືອບິນ
- baggage_allowance: ນໍ້າຫນັກກະເປົາທີ່ອະນຸຍາດ
- is_direct: ເປັນຖ້ຽວບິນທາງກົງຫຼືບໍ່
- is_international: ເປັນຖ້ຽວບິນສາກົນຫຼືບໍ່
2. bookings - ເກັບຂໍ້ມູນການຈອງ
- id: ລະຫັດການຈອງ
- booking_number: ເລກທີການຈອງ
- user_id: ລະຫັດຜູ້ໃຊ້
- customer_name: ຊື່ລູກຄ້າ
- flight_type: ປະເພດການບິນ (ໄປ-ກັບ, ທາງດຽວ, ຫຼາຍເສັ້ນທາງ)
- total_amount: ຈໍານວນເງິນທັງຫມົດ
- status: ສະຖານະການຈອງ
- currency: ສະກຸນເງິນ
- payment_method: ວິທີການຊໍາລະເງິນ
- payment_status: ສະຖານະການຊໍາລະເງິນ
3. booking_details - ເກັບລາຍລະອຽດການຈອງ
- id: ລະຫັດລາຍລະອຽດການຈອງ
- booking_id: ລະຫັດການຈອງ (ອ້າງອີງຈາກຕາຕະລາງ bookings)
- flight_id: ລະຫັດການບິນ (ອ້າງອີງຈາກຕາຕະລາງ flights)
- passenger_name: ຊື່ຜູ້ໂດຍສານ
- passenger_type: ປະເພດຜູ້ໂດຍສານ (ຜູ້ໃຫຍ່, ເດັກນ້ອຍ, ເດັກອ່ອນ)
- contact_email: ອີເມວຕິດຕໍ່
- contact_phone: ເບີໂທຕິດຕໍ່
- passport_number: ເລກທີຫນັງສືເດີນທາງ
- is_primary_contact: ເປັນຜູ້ຕິດຕໍ່ຫຼັກຫຼືບໍ່
4. documents - ເກັບເອກະສານທີ່ກ່ຽວຂ້ອງກັບການຈອງ
- id: ລະຫັດເອກະສານ
- booking_id: ລະຫັດການຈອງ (ອ້າງອີງຈາກຕາຕະລາງ bookings)
- document_type: ປະເພດເອກະສານ
- description: ລາຍລະອຽດເອກະສານ
- file_name: ຊື່ໄຟລ໌
- file_path: ເສັ້ນທາງໄຟລ໌
5. ຕາຕະລາງອື່ນໆ
ລະບົບຍັງມີຕາຕະລາງເພີ່ມເຕີມດັ່ງນີ້:
- company_accounts: ບັນຊີບໍລິສັດສໍາລັບລູກຄ້າບໍລິສັດ
- org_users: ຜູ້ໃຊ້ລະບົບປະເພດອົງກອນ
- account_bookings: ການເຊື່ອມໂຍງລະຫວ່າງບັນຊີບໍລິສັດແລະການຈອງ
- agents: ຂໍ້ມູນຕົວແທນຂາຍ
- agent_bookings: ການເຊື່ອມໂຍງລະຫວ່າງຕົວແທນຂາຍແລະການຈອງ
- admins: ຜູ້ບໍລິຫານລະບົບ
ການເຂົ້າສູ່ລະບົບຜູ້ໃຊ້ (User Authentication)
ລະບົບ Lao Air ມີລະບົບການຢືນຢັນຕົວຕົນຫຼາຍຮູບແບບສໍາລັບຜູ້ໃຊ້ປະເພດຕ່າງໆ:
ປະເພດຜູ້ໃຊ້
ລະບົບປະກອບມີຜູ້ໃຊ້ຫຼາຍປະເພດ:
- ຜູ້ໃຊ້ບຸກຄົນ: ລູກຄ້າທົ່ວໄປທີ່ຈອງຕັ໋ວສ່ວນຕົວ
- ຜູ້ໃຊ້ອົງກອນ: ຜູ້ໃຊ້ຈາກຫ້ອງການ, ພະແນກ, ກົມ, ກະຊວງ, ຫຼື ອົງກອນອື່ນໆ
- ຕົວແທນຂາຍ: ບໍລິສັດທ່ອງທ່ຽວຫຼືຜູ້ຂາຍຕັ໋ວ
- ຜູ້ບໍລິຫານລະບົບ: ຜູ້ທີ່ມີສິດໃນການຄຸ້ມຄອງລະບົບ
ຂະບວນການເຂົ້າສູ່ລະບົບ
ຂະບວນການເຂົ້າສູ່ລະບົບແມ່ນດັ່ງນີ້:
- ຜູ້ໃຊ້ປ້ອນອີເມວແລະລະຫັດຜ່ານໃນຫນ້າເຂົ້າສູ່ລະບົບ (
login.php) - ລະບົບກວດສອບຂໍ້ມູນກັບຕາຕະລາງຜູ້ໃຊ້ທີ່ເຫມາະສົມ
- ຖ້າຂໍ້ມູນຖືກຕ້ອງ, ລະບົບຈະສ້າງເຊສຊັນແລະບັນທຶກຂໍ້ມູນຜູ້ໃຊ້
- ຜູ້ໃຊ້ຖືກນໍາໄປຍັງໜ້າທີ່ເຫມາະສົມກັບປະເພດຜູ້ໃຊ້
ການຈັດການເຊສຊັນ
ການຈັດການເຊສຊັນແມ່ນດັ່ງນີ້:
- ເຊສຊັນ PHP ໃຊ້ເພື່ອຕິດຕາມສະຖານະການເຂົ້າສູ່ລະບົບຂອງຜູ້ໃຊ້
- ຂໍ້ມູນເຊສຊັນຖືກຈັດເກັບໃນໄດເຣກທໍຣີ
tmp/sessions - ເຊສຊັນຖືກຕັ້ງໃຫ້ໝົດອາຍຸພາຍໃນ 7 ວັນ
- ຄຸກກີ້ເຊສຊັນຖືກຕັ້ງຄ່າ HttpOnly ແລະ Secure (ເມື່ອໃຊ້ HTTPS)
ການຮັກສາຄວາມປອດໄພລະຫັດຜ່ານ
ລະຫັດຜ່ານຖືກຮັກສາຄວາມປອດໄພດັ່ງນີ້:
- ລະຫັດຜ່ານຖືກເຂົ້າລະຫັດດ້ວຍຟັງຊັນ
password_hash()ຂອງ PHP - ໃຊ້
PASSWORD_DEFAULTເຊິ່ງປັດຈຸບັນແມ່ນ bcrypt algorithm - ເມື່ອເຂົ້າສູ່ລະບົບ, ລະຫັດຜ່ານຖືກກວດສອບດ້ວຍຟັງຊັນ
password_verify()
ການລົງທະບຽນຜູ້ໃຊ້
ຂະບວນການລົງທະບຽນຜູ້ໃຊ້ແມ່ນດັ່ງນີ້:
- ຜູ້ໃຊ້ໃຫມ່ກ່ອນຟອມໃນໄຟລ໌
register.php - ລະບົບກວດສອບວ່າອີເມວບໍ່ຊໍ້າກັບຜູ້ໃຊ້ທີ່ມີຢູ່ແລ້ວ
- ຂໍ້ມູນຜູ້ໃຊ້ຖືກບັນທຶກໃນຕາຕະລາງຜູ້ໃຊ້ທີ່ເຫມາະສົມ
- ຜູ້ໃຊ້ໄດ້ຮັບການຢືນຢັນແລະສາມາດເຂົ້າສູ່ລະບົບໄດ້
ການປະຕິບັດ (Deployment)
ຄວາມຕ້ອງການເຊີເວີ (Server Requirements)
ເພື່ອນໍາໃຊ້ລະບົບ Lao Air, ເຊີເວີຄວນມີຄຸນສົມບັດດັ່ງນີ້:
- ເຊີເວີເວັບ: Apache ຫຼື Nginx
- PHP ເວີຊັນ 7.4 ຫຼື ໃຫມ່ກວ່າ
- ການສະຫນັບສະຫນູນ SQLite3
- PHP Extensions: PDO, JSON, GD, mbstring, fileinfo, zip, openssl
- ຢ່າງຫນ້ອຍ 512MB ຂອງຫນ່ວຍຄວາມຈໍາ (RAM) ສໍາລັບ PHP
- ພື້ນທີ່ຈັດເກັບຂໍ້ມູນຢ່າງຫນ້ອຍ 500MB
ຂັ້ນຕອນການຕິດຕັ້ງ (Installation Steps)
ຂັ້ນຕອນການຕິດຕັ້ງລະບົບ Lao Air ມີດັ່ງນີ້:
- ອັບໂຫຼດໄຟລ໌ທັງຫມົດໄປຍັງເຊີເວີ
- ຮັບປະກັນວ່າໄດເຣກທໍຣີ
db,tmp, ແລະuploadsສາມາດຂຽນໄດ້ (writable) - ຕັ້ງຄ່າ URL ຂອງເວັບໄຊທ໌ໃນໄຟລ໌
includes/functions.php - ເປີດເວັບໄຊທ໌ແລະລອງເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີທົດລອງທີ່ກໍານົດໄວ້ໃນ
includes/db/database.php
ຂໍ້ແນະນໍາໃນການປະຕິບັດ (Deployment Recommendations)
ຂໍ້ແນະນໍາໃນການປະຕິບັດລະບົບ Lao Air ໃນສະພາບແວດລ້ອມການຜະລິດ:
- ໃຊ້ການເຊື່ອມຕໍ່ HTTPS ສໍາລັບການເຂົ້າລະຫັດການສື່ສານ
- ຕັ້ງຄ່າສິດອະນຸຍາດໄຟລ໌ຢ່າງຖືກຕ້ອງ: 755 ສໍາລັບໄດເຣກທໍຣີ, 644 ສໍາລັບໄຟລ໌
- ປົກປິດໄດເຣກທໍຣີທີ່ບໍຈໍາເປັນໂດຍໃຊ້ໄຟລ໌ .htaccess (ສໍາລັບ Apache) ຫຼື ການຕັ້ງຄ່າເຊີເວີ (ສໍາລັບ Nginx)
- ເຮັດການສໍາຮອງຂໍ້ມູນຖານຂໍ້ມູນເປັນປະຈໍາ
- ຕັ້ງຄ່າ OPcache ສໍາລັບປະສິດທິພາບຂອງ PHP ທີ່ດີຂຶ້ນ
ໄຟລ໌ .htaccess (ສໍາລັບ Apache)
ໄຟລ໌ .htaccess ຢູ່ທີ່ root directory ຊ່ວຍໃນການຕັ້ງຄ່າລະບົບແລະດໍາເນີນການປ່ຽນເສັ້ນທາງບາງຢ່າງ:
# Enable rewriting
RewriteEngine On
# Handle errors
ErrorDocument 404 /404.html
ErrorDocument 500 /502.html
# Protect sensitive files
<FilesMatch "(\.htaccess|\.htpasswd|\.sqlite)$">
Order Allow,Deny
Deny from all
</FilesMatch>
# Set PHP configuration
php_value upload_max_filesize 5M
php_value post_max_size 8M
php_flag register_globals off
php_flag display_errors off
# Security headers
Header always set X-XSS-Protection "1; mode=block"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
ຄວາມຕ້ອງການລະບົບ (System Requirements)
ຄວາມຕ້ອງການຂັ້ນຕໍ່າ (Minimum Requirements)
ຄວາມຕ້ອງການຂັ້ນຕໍ່າສໍາລັບການເຮັດວຽກຂອງລະບົບ Lao Air ມີດັ່ງນີ້:
ຄວາມຕ້ອງການຝັ່ງເຊີເວີ (Server Requirements)
- ລະບົບປະຕິບັດການ: Linux (recommended), Windows Server, macOS
- ເຊີເວີເວັບ: Apache 2.4+ ຫຼື Nginx 1.18+
- PHP: ເວີຊັນ 7.4 ຫຼື ໃຫມ່ກວ່າ
- ຖານຂໍ້ມູນ: SQLite 3.31.0 ຫຼື ໃຫມ່ກວ່າ
- PHP Extensions: sqlite3, pdo_sqlite, json, gd, mbstring, fileinfo, openssl, zip, curl
- ຫນ່ວຍຄວາມຈໍາ: ຢ່າງຫນ້ອຍ 512MB ຂອງ RAM ສໍາລັບ PHP
- ພື້ນທີ່ຈັດເກັບຂໍ້ມູນ: ຢ່າງຫນ້ອຍ 500MB
ຄວາມຕ້ອງການຝັ່ງໄຄລເອັນ (Client Requirements)
- ເວັບບຣາວເຊີທີ່ຮອງຮັບ:
- Google Chrome 90+
- Mozilla Firefox 88+
- Microsoft Edge 90+
- Safari 14+
- JavaScript: ເປີດໃຊ້ງານ
- Cookies: ເປີດໃຊ້ງານ
- ຄວາມລະອຽດຫນ້າຈໍ: ຢ່າງຫນ້ອຍ 1280x800
ສໍາລັບອຸປະກອນມືຖື (Mobile Requirements)
- ລະບົບປະຕິບັດການ: iOS 12+ ຫຼື Android 8+
- ບຣາວເຊີ: Safari ສໍາລັບ iOS, Chrome ສໍາລັບ Android
- ຄວາມລະອຽດຫນ້າຈໍ: ຢ່າງຫນ້ອຍ 375x667 (iPhone 8)
ຄວາມຕ້ອງການທີ່ແນະນໍາ (Recommended Requirements)
ເພື່ອປະສິດທິພາບທີ່ດີທີ່ສຸດ, ແນະນໍາໃຫ້ມີ:
ຄວາມຕ້ອງການຝັ່ງເຊີເວີ (Server Requirements)
- ລະບົບປະຕິບັດການ: Linux (Ubuntu 20.04 LTS ຫຼື ໃຫມ່ກວ່າ)
- PHP: ເວີຊັນ 8.0 ຫຼື ໃຫມ່ກວ່າ
- ຫນ່ວຍຄວາມຈໍາ: 1GB+ ຂອງ RAM ສໍາລັບ PHP
- ພື້ນທີ່ຈັດເກັບຂໍ້ມູນ: 1GB+ (ຂຶ້ນກັບຂະຫນາດຂອງຖານຂໍ້ມູນ)
- PHP OPcache: ເປີດໃຊ້ງານພ້ອມການຕັ້ງຄ່າທີ່ເຫມາະສົມ
- SSL Certificate: ຕິດຕັ້ງສໍາລັບການເຊື່ອມຕໍ່ HTTPS
ການດາວໂຫຼດແລະລິ້ງເຊື່ອມຕໍ່ທີ່ເປັນປະໂຫຍດ (Downloads and Useful Links)
ການກວດສອບຄວາມເຂົ້າກັນໄດ້ (Compatibility Check)
ເພື່ອກວດສອບວ່າລະບົບຂອງທ່ານມີຄຸນສົມບັດຕາມຄວາມຕ້ອງການຫຼືບໍ່, ທ່ານສາມາດເປີດໄຟລ໌ test_db.php ໃນບຣາວເຊີ. ໄຟລ໌ນີ້ຈະກວດສອບ:
- ເວີຊັນຂອງ PHP
- PHP Extensions ທີ່ຕິດຕັ້ງ
- ການເຊື່ອມຕໍ່ກັບຖານຂໍ້ມູນ SQLite
- ການຕັ້ງຄ່າສິດໃນການຂຽນໄຟລ໌ແລະໄດເຣກທໍຣີ