File manager - Edit - /home/webapp69.cm.in.th/u69319090034/Shop 034/register.php
Back
<?php // หน้าสมัครสมาชิกสำหรับ ผู้ซื้อ และ ผู้ขาย (register.php) require_once 'auth.php'; // ถ้า Log in แล้ว Redirect ไปหน้าหลัก if (isLoggedIn()) { header('Location: index.php'); exit; } $error = ''; $success = ''; // รับบทบาทเริ่มต้นจาก URL (default: buyer) $role = isset($_GET['role']) && in_array($_GET['role'], ['buyer', 'seller']) ? $_GET['role'] : 'buyer'; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $username = trim($_POST['username'] ?? ''); $password = $_POST['password'] ?? ''; $confirm_password = $_POST['confirm_password'] ?? ''; $fullname = trim($_POST['fullname'] ?? ''); $email = trim($_POST['email'] ?? ''); $role = in_array($_POST['role'] ?? '', ['buyer', 'seller']) ? $_POST['role'] : 'buyer'; if (empty($username) || empty($password) || empty($fullname)) { $error = 'กรุณากรอกข้อมูลที่จำเป็นให้ครบถ้วน (ชื่อผู้ใช้, รหัสผ่าน, ชื่อ-นามสกุล)'; } elseif ($password !== $confirm_password) { $error = 'รหัสผ่านและยืนยันรหัสผ่านไม่ตรงกัน'; } elseif (strlen($password) < 6) { $error = 'รหัสผ่านต้องมีความยาวอย่างน้อย 6 ตัวอักษร'; } else { try { // ตรวจสอบว่าชื่อผู้ใช้ซ้ำหรือไม่ $stmt = $conn->prepare("SELECT id FROM users WHERE username = :username"); $stmt->execute([':username' => $username]); if ($stmt->fetch()) { $error = 'ชื่อผู้ใช้นี้ถูกใช้งานแล้ว กรุณาเลือกชื่ออื่น'; } else { // บันทึกผู้ใช้ใหม่ $hashedPassword = password_hash($password, PASSWORD_BCRYPT); $stmt = $conn->prepare(" INSERT INTO users (username, password, fullname, email, role) VALUES (:username, :password, :fullname, :email, :role) "); $stmt->execute([ ':username' => $username, ':password' => $hashedPassword, ':fullname' => $fullname, ':email' => !empty($email) ? $email : null, ':role' => $role ]); $userId = $conn->lastInsertId(); // Auto Login หลังสมัครเสร็จ $_SESSION['user_id'] = $userId; $_SESSION['user_username'] = $username; $_SESSION['user_fullname'] = $fullname; $_SESSION['user_email'] = $email; $_SESSION['user_role'] = $role; if ($role === 'seller') { header('Location: seller_dashboard.php'); } else { header('Location: index.php'); } exit; } } catch (PDOException $e) { $error = 'เกิดข้อผิดพลาดของระบบ: ' . $e->getMessage(); } } } ?> <!DOCTYPE html> <html lang="th"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>สมัครสมาชิก - AMARA STUDIO</title> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Sarabun:wght@300;400;500;600;700&display=swap"> <style> *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } :root { --primary: #c5a880; --primary-hover: #b0936b; --dark: #121214; --border: #e2e8f0; --font-eng: 'Outfit', sans-serif; --font-th: 'Sarabun', sans-serif; } body { font-family: var(--font-th), var(--font-eng); background: linear-gradient(135deg, #121214 0%, #1e1e28 50%, #121214 100%); min-height: 100vh; display: flex; align-items: center; justify-content: center; position: relative; overflow-x: hidden; padding: 20px; } .register-card { width: 100%; max-width: 480px; background: rgba(255, 255, 255, 0.98); border-radius: 20px; padding: 40px 35px; box-shadow: 0 20px 50px rgba(0,0,0,0.5); z-index: 10; position: relative; } .btn-close-home { position: absolute; top: 20px; right: 20px; width: 36px; height: 36px; border-radius: 50%; background: #f1f5f9; border: 1px solid #e2e8f0; color: #64748b; display: flex; align-items: center; justify-content: center; text-decoration: none; font-size: 18px; font-weight: 300; transition: all 0.2s ease; } .btn-close-home:hover { background: #fee2e2; color: #ef4444; border-color: #fca5a5; transform: rotate(90deg); } .logo-box { text-align: center; margin-bottom: 25px; } .logo-box a { font-family: var(--font-eng); font-size: 26px; font-weight: 800; color: var(--dark); text-decoration: none; letter-spacing: 2px; } .logo-box a span { color: var(--primary); } .role-selector { display: flex; background: #f1f5f9; border-radius: 12px; padding: 4px; margin-bottom: 25px; } .role-btn { flex: 1; padding: 10px; text-align: center; border: none; background: transparent; font-family: var(--font-th); font-weight: 600; font-size: 15px; color: #64748b; border-radius: 8px; cursor: pointer; transition: all 0.2s ease; text-decoration: none; display: inline-block; } .role-btn.active { background: #ffffff; color: var(--dark); box-shadow: 0 2px 8px rgba(0,0,0,0.08); } .form-group { margin-bottom: 18px; } .form-group label { display: block; font-size: 13px; font-weight: 600; color: #475569; margin-bottom: 6px; } .form-control { width: 100%; padding: 12px 16px; border: 1.5px solid var(--border); border-radius: 10px; font-size: 14px; font-family: var(--font-th); outline: none; transition: border-color 0.2s; } .form-control:focus { border-color: var(--primary); } .btn-submit { width: 100%; padding: 14px; background: var(--dark); color: white; border: none; border-radius: 10px; font-family: var(--font-th); font-size: 16px; font-weight: 600; cursor: pointer; transition: background 0.2s; margin-top: 10px; } .btn-submit:hover { background: var(--primary); } .alert-danger { background: #fee2e2; color: #dc2626; padding: 12px 15px; border-radius: 10px; font-size: 14px; margin-bottom: 20px; } .footer-link { text-align: center; margin-top: 20px; font-size: 14px; color: #64748b; } .footer-link a { color: var(--primary); text-decoration: none; font-weight: 600; } </style> </head> <body> <div class="register-card"> <a href="index.php" class="btn-close-home" title="กลับสู่หน้าหลัก">✕</a> <div class="logo-box"> <a href="index.php">AMARA<span>STUDIO</span></a> <p style="color: #64748b; font-size: 14px; margin-top: 6px;">สร้างบัญชีใหม่เพื่อเริ่มต้นใช้งาน</p> </div> <!-- แท็บเลือกสมัคร: ผู้ซื้อ หรือ ผู้ขาย --> <div class="role-selector"> <a href="register.php?role=buyer" class="role-btn <?= $role === 'buyer' ? 'active' : '' ?>">🛍️ สมัครผู้ซื้อ</a> <a href="register.php?role=seller" class="role-btn <?= $role === 'seller' ? 'active' : '' ?>">🏪 สมัครผู้ขาย</a> </div> <?php if (!empty($error)): ?> <div class="alert-danger"><?= htmlspecialchars($error) ?></div> <?php endif; ?> <form action="register.php" method="POST"> <input type="hidden" name="role" value="<?= htmlspecialchars($role) ?>"> <div class="form-group"> <label>ชื่อผู้ใช้งาน (Username) *</label> <input type="text" name="username" class="form-control" placeholder="ตั้งชื่อผู้ใช้ภาษาอังกฤษ" required value="<?= htmlspecialchars($_POST['username'] ?? '') ?>"> </div> <div class="form-group"> <label><?= $role === 'seller' ? 'ชื่อร้านค้า / ชื่อผู้ขาย *' : 'ชื่อ-นามสกุล *' ?></label> <input type="text" name="fullname" class="form-control" placeholder="<?= $role === 'seller' ? 'เช่น ร้าน Amara Store' : 'เช่น สมชาย สายช้อป' ?>" required value="<?= htmlspecialchars($_POST['fullname'] ?? '') ?>"> </div> <div class="form-group"> <label>อีเมล (Email)</label> <input type="email" name="email" class="form-control" placeholder="example@email.com" value="<?= htmlspecialchars($_POST['email'] ?? '') ?>"> </div> <div class="form-group"> <label>รหัสผ่าน (Password) *</label> <input type="password" name="password" class="form-control" placeholder="อย่างน้อย 6 ตัวอักษร" required> </div> <div class="form-group"> <label>ยืนยันรหัสผ่าน *</label> <input type="password" name="confirm_password" class="form-control" placeholder="กรอกรหัสผ่านอีกครั้ง" required> </div> <button type="submit" class="btn-submit"> <?= $role === 'seller' ? 'สมัครเปิดร้านค้า (ผู้ขาย)' : 'ลงทะเบียน (ผู้ซื้อ)' ?> </button> </form> <div class="footer-link"> มีบัญชีผู้ใช้อยู่แล้ว? <a href="login.php?role=<?= $role ?>">เข้าสู่ระบบที่นี่</a> </div> </div> </body> </html>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.23 |
proxy
|
phpinfo
|
Settings