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