diff --git a/controllers/registerController.js b/controllers/registerController.js index 8b2569712be92d6ddf20e1cf8dfc295a9e426de9..42233587ea67aad2ef86207aec0ee6733080c83d 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 25e8de5cb5fa30de7c7689ff116365fcdf3fb96c..5fa3dbdcb3e62e8c8cae4ca226bba482a28e7196 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>