File manager - Edit - /home/webapp69.cm.in.th/u69319090014/shop non 014/register.php
Back
<?php // register.php - Cyberpunk User Registration Page session_start(); require_once 'db.php'; $error = ''; $success = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $username = isset($_POST['username']) ? trim($_POST['username']) : ''; $password = isset($_POST['password']) ? $_POST['password'] : ''; $role = isset($_POST['role']) ? $_POST['role'] : 'customer'; if ($username === '' || $password === '') { $error = 'กรุณากรอกชื่อผู้ใช้และรหัสผ่าน'; } elseif (strlen($password) < 6) { $error = 'รหัสผ่านต้องมีความยาวอย่างน้อย 6 ตัวอักษร'; } elseif (!in_array($role, ['admin', 'customer'])) { $error = 'บทบาทผู้ใช้ไม่ถูกต้อง'; } else { try { // Check if username already exists $stmt = $pdo->prepare("SELECT COUNT(*) FROM users WHERE username = :username"); $stmt->execute([':username' => $username]); if ($stmt->fetchColumn() > 0) { $error = 'ชื่อผู้ใช้นี้ถูกใช้งานแล้วในระบบ'; } else { // Securely hash password with BCrypt $password_hash = password_hash($password, PASSWORD_BCRYPT); // Insert new user $insert_stmt = $pdo->prepare("INSERT INTO users (username, password_hash, role) VALUES (:username, :password_hash, :role)"); $insert_stmt->execute([ ':username' => $username, ':password_hash' => $password_hash, ':role' => $role ]); $success = 'สร้างบัญชีผู้ใช้สำเร็จแล้ว! กำลังนำทางไปหน้าเข้าสู่ระบบ...'; header("refresh:2;url=login.php"); } } catch (Exception $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>MEMBER REGISTRATION - NON LUXURY</title> <!-- Google Fonts --> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600;700;800;900&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300&family=Sarabun:wght@300;400;500;600;700&family=Montserrat:wght@300;400;500;600;700&display=swap" rel="stylesheet"> <!-- Tailwind CSS CDN --> <script src="https://cdn.tailwindcss.com"></script> <script> tailwind.config = { theme: { extend: { colors: { cyber: { bg: '#0A0A0B', // Matte Deep Black card: '#121215', // Warm charcoal card accent: '#D4AF37', // Elegant Satin Gold accentGlow: '#E5C158',// Brighter Champagne Gold success: '#94A89A', // Premium Muted Sage Green danger: '#A94444', // Luxury Wine Red border: '#22211E' // Subtle gold-tinted grey border } }, fontFamily: { sans: ['Sarabun', 'Montserrat', 'sans-serif'], cyber: ['Cinzel', 'Cormorant Garamond', 'Sarabun', 'serif'] } } } } </script> <style> body { background-color: #0A0A0B; color: #EAE6DF; background-image: radial-gradient(circle at 50% 30%, #171512 0%, #0A0A0B 70%); } .neon-text-purple { text-shadow: 0 0 5px #D4AF37, 0 0 10px rgba(212, 175, 55, 0.4); } .neon-border-active:focus { border-color: #D4AF37; box-shadow: 0 0 10px rgba(212, 175, 55, 0.3); } .cyber-btn-glow:hover { box-shadow: 0 0 15px rgba(212, 175, 55, 0.4); } </style> <!-- Multi-language Support --> <script src="lang.js"></script> </head> <body class="min-h-screen flex flex-col items-center justify-center p-6 relative"> <!-- Language Selector Floating Top Right --> <div class="absolute top-6 right-6 flex items-center gap-1.5 bg-cyber-card border border-cyber-border px-3 py-1.5 rounded-lg shadow-xl z-50"> <span class="text-xs text-stone-500">🌐</span> <select id="lang-selector" class="bg-transparent text-xs text-stone-300 outline-none cursor-pointer focus:text-cyber-accent"> <option value="th">TH / ไทย</option> <option value="en">EN / English</option> <option value="zh">ZH / 中文</option> <option value="ja">JA / 日本語</option> <option value="ko">KO / 한국어</option> </select> </div> <div class="max-w-md w-full bg-cyber-card border border-cyber-border rounded-2xl p-8 shadow-2xl relative overflow-hidden"> <!-- Background glows --> <div class="absolute -top-10 -right-10 w-32 h-32 bg-cyber-accent opacity-10 rounded-full blur-3xl"></div> <div class="absolute -bottom-10 -left-10 w-32 h-32 bg-[#A94444] opacity-5 rounded-full blur-3xl"></div> <!-- Header --> <div class="text-center mb-8"> <div class="w-14 h-14 rounded-full bg-gradient-to-br from-cyber-accent/20 to-cyber-border flex items-center justify-center shadow-lg border border-cyber-accent/40 mx-auto mb-4"> <svg class="w-6 h-6 text-cyber-accent" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M18 9v3m0 0v3m0-3h3m-3 0h-3m-2-5a4 4 0 11-8 0 4 4 0 018 0zM3 20a6 6 0 0112 0v1H3v-1z"></path> </svg> </div> <h1 class="font-cyber font-medium text-xl tracking-[0.35em] uppercase text-white" data-lang-key="register_title"> VIP REGISTRATION </h1> <p class="text-[9px] text-amber-400 font-serif tracking-[0.2em] uppercase mt-2" data-lang-key="register_subtitle">MEMBER REGISTRATION // PRIVÉ INVITATION</p> </div> <!-- Alerts --> <?php if ($error !== ''): ?> <div class="bg-[#211516] border border-cyber-danger text-stone-300 text-xs px-4 py-3 rounded-xl mb-6 flex items-center gap-2.5"> <span class="text-cyber-danger">✕</span> <span><?php echo htmlspecialchars($error); ?></span> </div> <?php endif; ?> <?php if ($success !== ''): ?> <div class="bg-[#19221C] border border-cyber-success text-stone-300 text-xs px-4 py-3 rounded-xl mb-6 flex items-center gap-2.5"> <span class="text-cyber-success">✓</span> <span><?php echo htmlspecialchars($success); ?></span> </div> <?php endif; ?> <!-- Register Form --> <form action="register.php" method="POST" class="space-y-5 text-sm"> <!-- Username --> <div class="space-y-1.5"> <label class="text-[9px] font-sans tracking-wider uppercase text-amber-100/60 font-bold block" data-lang-key="username_label">ชื่อผู้ใช้ / MEMBER ACCOUNT</label> <input type="text" name="username" required placeholder="ระบุชื่อผู้ใช้งาน" data-lang-key="username_placeholder" class="w-full bg-[#0A0A0B] border border-cyber-border rounded-lg px-4 py-2.5 text-white outline-none neon-border-active transition font-sans"> </div> <!-- Password --> <div class="space-y-1.5"> <label class="text-[9px] font-sans tracking-wider uppercase text-amber-100/60 font-bold block" data-lang-key="password_label">รหัสผ่าน / ACCOUNT PASSWORD</label> <input type="password" name="password" required placeholder="อย่างน้อย 6 ตัวอักษร" data-lang-key="password_placeholder" class="w-full bg-[#0A0A0B] border border-cyber-border rounded-lg px-4 py-2.5 text-white outline-none neon-border-active transition font-sans"> </div> <!-- Role Selector --> <div class="space-y-1.5"> <label class="text-[9px] font-sans tracking-wider uppercase text-amber-100/60 font-bold block">ระดับบัญชีผู้ใช้ / REGISTRATION TIER</label> <select name="role" required class="w-full bg-[#0A0A0B] border border-cyber-border rounded-lg px-4 py-2.5 text-white outline-none focus:border-cyber-accent cursor-pointer transition font-sans"> <option value="customer">สมาชิกระดับ VIP (VIP Member)</option> <option value="admin">ผู้ควบคุมระบบ (Administrator)</option> </select> <span class="text-[9px] text-stone-500 font-sans block mt-1">// หมายเหตุ: ท่านสามารถเลือกระดับผู้ควบคุมระบบเพื่อทดสอบฟังก์ชันจัดการหลังบ้านได้ทันที</span> </div> <!-- Submit --> <button type="submit" data-lang-key="btn_register" class="w-full bg-cyber-accent hover:bg-cyber-accentGlow text-black font-cyber font-semibold tracking-[0.2em] py-3 rounded-lg transition duration-300 cyber-btn-glow mt-4"> CREATE ACCOUNT // REGISTER </button> </form> <!-- Redirect to login --> <div class="text-center mt-6 pt-4 border-t border-cyber-border/40 text-xs"> <span class="text-stone-400" data-lang-key="already_member">มีบัญชีสมาชิกอยู่แล้ว?</span> <a href="login.php" class="text-cyber-accent hover:text-white font-bold ml-1 transition" data-lang-key="login_here">เข้าสู่ระบบที่นี่</a> </div> </div> </body> </html>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.35 |
proxy
|
phpinfo
|
Settings