❓ คำถามที่พบบ่อย + Troubleshooting
คำถามทั่วไป
ลืมรหัสผ่าน admin ทำยังไง?
ใช้ MySQL command line รีเซ็ตโดยตรง:
USE busticket_db;
UPDATE users SET password = '$2y$10$8K1p...' -- hash ของ 'admin123'
WHERE username = 'admin';
หรือใช้ PHP:
php -r "echo password_hash('newpass', PASSWORD_DEFAULT);"
# แล้ว copy hash ที่ได้ไปใส่ใน UPDATE
เปลี่ยน timezone ของระบบ?
แก้ใน config/config.php:
date_default_timezone_set('Asia/Bangkok'); // default
// เปลี่ยนเป็น 'UTC', 'America/New_York', ...
เปลี่ยน database name / user / password?
แก้ config/database.php:
define('DB_HOST', 'localhost');
define('DB_PORT', '8889'); // MAMP default
define('DB_USER', 'root');
define('DB_PASS', 'root');
define('DB_NAME', 'busticket_db');
ปัญหาการจอง
"ไม่พบเที่ยวรถในเส้นทางและวันที่ที่เลือก"
เกิดจาก:
- วันที่ที่เลือกไม่มีเที่ยวรถสร้างไว้ — ไปสร้างเที่ยวที่ admin/trips.php
- เส้นทางที่เลือกไม่มีจุดจอดที่ใส่ origin หรือ destination — ตรวจ route_stops
- Origin มาหลัง destination ในเส้นทาง (กลับด้าน) — เช่นเลือก หนองคาย → กรุงเทพ บนเส้นทาง R001 (BKK→หนองคาย) ไม่ได้
- เที่ยวรถ status ไม่ใช่ scheduled หรือ boarding
"ที่นั่งบางส่วนถูกจองไปแล้ว"
มี race condition — มีคนจองที่นั่งเดียวกันก่อนคุณ → กลับไปเลือกที่นั่งใหม่
ยกเลิกการจองแล้วได้เงินคืนไหม?
ระบบจะคืนที่นั่งให้เที่ยวรถอัตโนมัติ แต่ไม่ refund เงินอัตโนมัติ — admin ต้องจัดการ refund ผ่านธนาคารเอง แล้วเปลี่ยน payment_status เป็น refunded
ปัญหาการชำระเงิน
QR Code สแกนไม่ได้
ตรวจสอบ:
- ใส่ หมายเลข PromptPay ที่ ตั้งค่าระบบ ครบหรือยัง
- เบอร์ PromptPay เป็น 10 หลัก (มือถือ) หรือ 13 หลัก (บัตรประชาชน)
- ตรวจในหน้า
payment.phpว่า QR แสดงและมียอดเงินตรง
ลูกค้าชำระแล้ว ระบบไม่อัปเดต
ในระบบจริงต้องเชื่อมต่อ Webhook ของธนาคาร — ตอนนี้เป็นโหมดจำลอง (manual confirm) — ใช้ปุ่ม "ฉันชำระเงินแล้ว" หรือยืนยันจาก admin
ปัญหาการสแกน QR
"Cannot access camera"
เบราว์เซอร์อนุญาตกล้องเฉพาะ HTTPS หรือ localhost
- ✅
https://yoursite.com— ใช้ได้ - ✅
http://localhost:8888— ใช้ได้ - ✅
http://127.0.0.1— ใช้ได้ - ❌
http://192.168.1.100— ไม่ได้ (ต้องตั้ง HTTPS ก่อน)
วิธีแก้: ใช้ Tab "จากรูปภาพ" หรือ "กรอกรหัส" แทน
"Html5Qrcode is not defined"
CDN ของไลบรารีโหลดไม่สำเร็จ — เช็คอินเทอร์เน็ตและรีเฟรชหน้า
สแกน QR จากรูปแล้วไม่เจอ
ลอง:
- ใช้รูปคมชัด ไม่เบลอ
- QR ใน frame กลางๆ ไม่บิดเบี้ยว
- รูปไม่ใหญ่เกิน (ลดขนาดเหลือ 1024×1024)
ปัญหาการพิมพ์
ตั๋วพิมพ์ออกมาเล็กเกิน / ใหญ่เกิน
เลือกขนาดกระดาษให้ตรงกับเครื่องพิมพ์ — dropdown มุมขวาบนของหน้าพิมพ์
- เครื่องพิมพ์ความร้อน 80mm → เลือก Thermal 80mm
- เครื่องพิมพ์ A4 ทั่วไป → เลือก A4 หรือ A5
QR Code พิมพ์ไม่ออก
QR ดึงจาก api.qrserver.com — ต้องมีอินเทอร์เน็ตขณะเปิดหน้าพิมพ์
สีพิมพ์ผิด / ไม่ออก
เปิด print dialog → เลือก "Background graphics" / "More settings → Color → Color" ก่อนพิมพ์
หรือใช้ thermal mode (80mm) ที่ไม่มีสี gradient แต่แรก
Technical Issues
"Headers already sent"
ระบบใช้ output buffering แก้แล้ว (ใน config/config.php) — ถ้ายังเจอ ตรวจ:
- มีช่องว่างก่อน
<?phpในไฟล์หรือไม่? - มี BOM ในไฟล์หรือไม่? (บันทึก UTF-8 without BOM)
Database connection failed
ตรวจ MAMP MySQL ทำงานอยู่ + พอร์ตถูก:
mysql -uroot -proot -h127.0.0.1 -P8889
หน้าเป็นสีขาวล้วน / ไม่มีอะไรขึ้น
เปิด PHP error log:
tail -f /Applications/MAMP/logs/php_error.log
หรือเพิ่มใน config.php ชั่วคราว:
error_reporting(E_ALL);
ini_set('display_errors', 1);
ฟอนต์ไม่ขึ้น
Google Fonts โหลดผ่านอินเทอร์เน็ต — ตรวจการเชื่อมต่อ หรือใช้ฟอนต์ system fallback
ภาษาเปลี่ยนไม่ได้
เช็ค cookie ของเบราว์เซอร์ — ลบ cookie ของ site แล้วลองใหม่
Update version ติดตั้งไม่ผ่าน
ดู error log ในตาราง app_versions — column log มีข้อความ error เต็มๆ
ติดต่อสอบถาม
ถ้ายังแก้ไม่ได้ — ตรวจสอบ:
- เริ่มต้นใช้งาน — ขั้นตอนติดตั้ง
- API Reference — ใช้ API ผิด format?
- PHP error log + MySQL error log
