From c692469ba452ad578dc18fbb0d85cd2ec3978897 Mon Sep 17 00:00:00 2001
From: 65160381 <65160381@go.buu.ac.th>
Date: Mon, 24 Mar 2025 14:31:20 +0000
Subject: [PATCH] Update 2 files

- /views/register.ejs
- /controllers/registerController.js
---
 controllers/registerController.js | 69 +++++++++++--------------------
 views/register.ejs                |  9 +---
 2 files changed, 24 insertions(+), 54 deletions(-)

diff --git a/controllers/registerController.js b/controllers/registerController.js
index 8b25697..4223358 100644
--- a/controllers/registerController.js
+++ b/controllers/registerController.js
@@ -1,54 +1,31 @@
-const bcrypt = require('bcrypt');
-const pool = require('../db');
+registerUser: async (req, res) => {
+    const { email, rpassword, confirm_password, fname, lname } = req.body;
 
-module.exports = {
-    showRegisterPage: (req, res) => {
-        res.render('register', { message: req.flash('message') });
-    },
-
-    registerUser: async (req, res) => {
-        const { email, rpassword, confirm_password } = req.body;
-
-        // ตรวจสอบข้อมูลที่จำเป็น
-        if (!email || !rpassword || !confirm_password) {
-            req.flash('message', 'กรุณากรอกข้อมูลให้ครบถ้วน');
-            return res.redirect('/register');
-        }
+    // ตรวจสอบว่ารหัสผ่านทั้งสองตรงกันหรือไม่
+    if (rpassword !== confirm_password) {
+        req.flash('message', 'Passwords do not match!');
+        return res.redirect('/register');
+    }
 
-        // ตรวจสอบว่ารหัสผ่านทั้งสองตรงกันหรือไม่
-        if (rpassword !== confirm_password) {
-            req.flash('message', 'Passwords do not match!');
+    try {
+        // ตรวจสอบว่าอีเมลมีอยู่ในระบบหรือไม่
+        const [existingUser] = await pool.execute('SELECT * FROM users WHERE email = ?', [email]);
+        if (existingUser.length > 0) {
+            req.flash('message', 'Email is already registered.');
             return res.redirect('/register');
         }
 
-        try {
-            // ตรวจสอบว่าอีเมลมีอยู่ในระบบหรือไม่
-            const [existingUser] = await pool.execute('SELECT * FROM users WHERE email = ?', [email]);
-            if (existingUser.length > 0) {
-                req.flash('message', 'Email is already registered.');
-                return res.redirect('/register');
-            }
-
-            // แฮชรหัสผ่าน
-            const hashedPassword = await bcrypt.hash(rpassword, 10);
+        // แฮชรหัสผ่าน
+        const hashedPassword = await bcrypt.hash(rpassword, 10);
 
-            // บันทึกข้อมูลผู้ใช้ในฐานข้อมูล
-            const query = 'INSERT INTO users (email, password) VALUES (?, ?)';
-            const [result] = await pool.execute(query, [email, hashedPassword]);
+        // บันทึกข้อมูลผู้ใช้ในฐานข้อมูล รวมทั้ง fname และ lname
+        const query = 'INSERT INTO users (email, password, fname, lname) VALUES (?, ?, ?, ?)';
+        await pool.execute(query, [email, hashedPassword, fname, lname]);
 
-            // ตรวจสอบว่ามีการบันทึกข้อมูลสำเร็จหรือไม่
-            if (result.affectedRows > 0) {
-                req.flash('message', 'Registration successful, please login.');
-                res.redirect('/login');
-            } else {
-                req.flash('message', 'เกิดข้อผิดพลาดในการสมัครสมาชิก');
-                res.redirect('/register');
-            }
-
-        } catch (err) {
-            console.error('Error inserting user:', err);
-            req.flash('message', 'เกิดข้อผิดพลาดในการสมัครสมาชิก');
-            res.redirect('/register');
-        }
+        // ส่งข้อความแจ้งเตือนและเปลี่ยนเส้นทางไปที่หน้า login
+        res.redirect('/login');
+    } catch (err) {
+        console.error('Error inserting user:', err);
+        res.status(500).send('Error occurred');
     }
-};
+}
diff --git a/views/register.ejs b/views/register.ejs
index 25e8de5..5fa3dbd 100644
--- a/views/register.ejs
+++ b/views/register.ejs
@@ -41,13 +41,6 @@
       <form action="/user/register" method="POST">
         <h1 class="h3 mb-3 fw-normal">Sign up</h1>
     
-        <!-- Show error message if any -->
-        <% if (message && message.length > 0) { %>
-          <div class="alert alert-danger" role="alert">
-            <%= message %>
-          </div>
-        <% } %>
-
         <div class="form-floating">
             <label for="floatingUsername">Username</label>
             <input type="text" class="form-control" id="floatingUsername" name="username" placeholder="Username" required>
@@ -79,7 +72,7 @@
         </div>
     
         <button class="btn btn-primary w-100 py-2" type="submit">Sign up</button>
-      </form>
+    </form>
     
     </main>
     
-- 
GitLab