File manager - Edit - /home/webapp69.cm.in.th/u69319090041/Shop41/public/register.php
Back
<?php require_once __DIR__ . '/../config/config.php'; require_once __DIR__ . '/../includes/auth.php'; $error = ''; $success = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST') { verifyCSRFToken($_POST['csrf_token'] ?? ''); $fullname = sanitize($_POST['fullname'] ?? ''); $email = sanitize($_POST['email'] ?? ''); $phone = sanitize($_POST['phone'] ?? ''); $password = $_POST['password'] ?? ''; $password_confirm = $_POST['password_confirm'] ?? ''; if (empty($fullname) || empty($email) || empty($password)) { $error = 'กรุณากรอกข้อมูลสำคัญให้ครบถ้วน'; } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $error = 'รูปแบบอีเมลไม่ถูกต้อง'; } elseif (strlen($password) < 6) { $error = 'รหัสผ่านต้องมีความยาวอย่างน้อย 6 ตัวอักษร'; } elseif ($password !== $password_confirm) { $error = 'รหัสผ่านและการยืนยันรหัสผ่านไม่ตรงกัน'; } else { $db = getDBConnection(); $stmt = $db->prepare("SELECT id FROM users WHERE email = ?"); $stmt->execute([$email]); if ($stmt->fetch()) { $error = 'อีเมลนี้ถูกใช้งานในระบบแล้ว'; } else { $hashedPassword = password_hash($password, PASSWORD_BCRYPT); $stmt = $db->prepare("INSERT INTO users (fullname, email, password, phone, role) VALUES (?, ?, ?, ?, 'customer')"); if ($stmt->execute([$fullname, $email, $hashedPassword, $phone])) { $_SESSION['flash_success'] = 'สมัครสมาชิกสำเร็จ! กรุณาเข้าสู่ระบบ'; header('Location: ' . SITE_URL . '/login.php'); exit; } else { $error = 'เกิดข้อผิดพลาดในการลงทะเบียน กรุณาลองใหม่อีกครั้ง'; } } } } $pageTitle = "สมัครสมาชิก"; require_once __DIR__ . '/../includes/header.php'; ?> <div class="row justify-content-center my-5"> <div class="col-md-6"> <div class="card card-custom p-4"> <div class="text-center mb-4"> <h3 class="fw-bold">📝 สมัครสมาชิกใหม่</h3> <p class="text-muted">เข้าร่วมกับเราเพื่อรับสิทธิพิเศษและช้อปปิ้งได้สะดวกยิ่งขึ้น</p> </div> <?php if (!empty($error)): ?> <div class="alert alert-danger py-2"><?php echo $error; ?></div> <?php endif; ?> <form method="POST" action="" onsubmit="return validateRegisterForm();"> <input type="hidden" name="csrf_token" value="<?php echo generateCSRFToken(); ?>"> <div class="mb-3"> <label class="form-label">ชื่อ - นามสกุล *</label> <input type="text" name="fullname" class="form-control" placeholder="เช่น สมชาย ใจดี" required value="<?php echo sanitize($_POST['fullname'] ?? ''); ?>"> </div> <div class="mb-3"> <label class="form-label">อีเมล (Email) *</label> <input type="email" name="email" class="form-control" placeholder="name@example.com" required value="<?php echo sanitize($_POST['email'] ?? ''); ?>"> </div> <div class="mb-3"> <label class="form-label">เบอร์โทรศัพท์</label> <input type="tel" name="phone" class="form-control" placeholder="0812345678" value="<?php echo sanitize($_POST['phone'] ?? ''); ?>"> </div> <div class="row"> <div class="col-md-6 mb-3"> <label class="form-label">รหัสผ่าน *</label> <input type="password" id="reg_password" name="password" class="form-control" placeholder="อย่างน้อย 6 ตัวอักษร" required> </div> <div class="col-md-6 mb-3"> <label class="form-label">ยืนยันรหัสผ่าน *</label> <input type="password" id="reg_confirm" name="password_confirm" class="form-control" placeholder="พิมพ์อีกครั้ง" required> </div> </div> <button type="submit" class="btn btn-primary-custom w-100 py-2 mt-2">ยืนยันการสมัครสมาชิก ✨</button> </form> <div class="mt-4 text-center"> <span class="text-muted">มีบัญชีสมาชิกอยู่แล้ว?</span> <a href="login.php" class="text-primary fw-bold text-decoration-none">เข้าสู่ระบบ</a> </div> </div> </div> </div> <script> function validateRegisterForm() { const pass = document.getElementById('reg_password').value; const confirm = document.getElementById('reg_confirm').value; if (pass.length < 6) { alert('⚠️ รหัสผ่านต้องมีความยาวอย่างน้อย 6 ตัวอักษร'); return false; } if (pass !== confirm) { alert('⚠️ รหัสผ่านและการยืนยันรหัสผ่านไม่ตรงกัน'); return false; } return true; } </script> <?php require_once __DIR__ . '/../includes/footer.php'; ?>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.22 |
proxy
|
phpinfo
|
Settings