File manager - Edit - /home/webapp69.cm.in.th/u69319090041/Shop41/public/login.php
Back
<?php require_once __DIR__ . '/../config/config.php'; require_once __DIR__ . '/../includes/auth.php'; // Handle logout action if (isset($_GET['action']) && $_GET['action'] === 'logout') { unset($_SESSION['user']); unset($_SESSION['vendor_id']); unset($_SESSION['vendor_data']); unset($_SESSION['vendor_status']); $_SESSION['flash_success'] = 'ออกจากระบบเรียบร้อยแล้ว'; header('Location: ' . SITE_URL . '/login.php'); exit; } $error = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST') { verifyCSRFToken($_POST['csrf_token'] ?? ''); $email = sanitize($_POST['email'] ?? ''); $password = $_POST['password'] ?? ''; if (empty($email) || empty($password)) { $error = 'กรุณากรอกอีเมลและรหัสผ่านให้ครบถ้วน'; } elseif (checkBruteForce($email)) { $error = 'ระบุรหัสผ่านผิดเกินกำหนด กรุณาลองใหม่ในอีก 15 นาที'; } else { $db = getDBConnection(); $stmt = $db->prepare("SELECT * FROM users WHERE email = ?"); $stmt->execute([$email]); $user = $stmt->fetch(); if ($user && password_verify($password, $user['password'])) { if ($user['status'] === 'suspended') { $error = 'บัญชีนี้ถูกระงับการใช้งาน กรุณาติดต่อแอดมิน'; } else { resetLoginAttempts($email); $_SESSION['user'] = [ 'id' => $user['id'], 'fullname' => $user['fullname'], 'email' => $user['email'], 'role' => $user['role'] ]; $_SESSION['flash_success'] = 'ยินดีต้อนรับคุณ ' . $user['fullname']; // --- Cart Migration Logic --- try { $sessionId = session_id(); $userId = $user['id']; $guestCartStmt = $db->prepare("SELECT * FROM cart_items WHERE session_id = ? AND user_id IS NULL"); $guestCartStmt->execute([$sessionId]); $guestItems = $guestCartStmt->fetchAll(); foreach ($guestItems as $gItem) { $checkUserItem = $db->prepare("SELECT id, quantity FROM cart_items WHERE user_id = ? AND product_id = ? AND size = ? AND color = ?"); $checkUserItem->execute([$userId, $gItem['product_id'], $gItem['size'], $gItem['color']]); $userItem = $checkUserItem->fetch(); if ($userItem) { $newQty = $userItem['quantity'] + $gItem['quantity']; $db->prepare("UPDATE cart_items SET quantity = ? WHERE id = ?")->execute([$newQty, $userItem['id']]); $db->prepare("DELETE FROM cart_items WHERE id = ?")->execute([$gItem['id']]); } else { $db->prepare("UPDATE cart_items SET user_id = ?, session_id = NULL WHERE id = ?")->execute([$userId, $gItem['id']]); } } } catch (Exception $e) { // Ignore if migration fails (e.g. table not exists yet) } // --- End Cart Migration Logic --- if ($user['role'] === 'admin') { header('Location: ' . SITE_URL . '/admin/index.php'); } else { header('Location: ' . SITE_URL . '/index.php'); } exit; } } else { logLoginAttempt($email); $error = 'อีเมลหรือรหัสผ่านไม่ถูกต้อง'; } } } $pageTitle = "เข้าสู่ระบบ"; require_once __DIR__ . '/../includes/header.php'; ?> <div class="row justify-content-center my-5"> <div class="col-md-5"> <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=""> <input type="hidden" name="csrf_token" value="<?php echo generateCSRFToken(); ?>"> <div class="mb-3"> <label class="form-label font-medium">อีเมล (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"> <div class="d-flex justify-content-between"> <label class="form-label">รหัสผ่าน (Password)</label> <a href="forgot_password.php" class="small text-primary text-decoration-none">ลืมรหัสผ่าน?</a> </div> <input type="password" name="password" class="form-control" placeholder="••••••••" required> </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="register.php" class="text-primary fw-bold text-decoration-none">สมัครสมาชิกที่นี่</a> </div> <hr class="my-4"> <div class="small text-muted"> <p class="mb-1">💡 <strong>บัญชีทดสอบ:</strong></p> <p class="mb-1"><strong>Admin:</strong> admin@shop.com / password123</p> <p class="mb-0"><strong>Customer:</strong> user@shop.com / password123</p> </div> </div> </div> </div> <?php require_once __DIR__ . '/../includes/footer.php'; ?>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.23 |
proxy
|
phpinfo
|
Settings