Managemen Jaringan Propesional


prepare(" SELECT id, nama_pemilik, username, email, akses, profile, password FROM data_server WHERE username = :username OR email = :username LIMIT 1 "); $stmt->execute([ ':username' => $username ]); $user = $stmt->fetch(PDO::FETCH_ASSOC); // ===================================================== // JIKA DITEMUKAN DI DATA_SERVER // ===================================================== if ($user) { if (password_verify($password, $user['password'])) { // --------------------------------------------- // Update last_login // --------------------------------------------- $stmtUpdate = $pdo->prepare(" UPDATE data_server SET last_login = :waktu WHERE id = :id "); $stmtUpdate->execute([ ':waktu' => $waktu, ':id' => $user['id'] ]); // --------------------------------------------- // Cek standar username dan password // --------------------------------------------- $usernameKurang = mb_strlen($user['username']) < 6; $passwordKurang = strlen($password) < 8; // --------------------------------------------- // Jika username/password belum memenuhi standar // --------------------------------------------- if ($usernameKurang || $passwordKurang) { session_regenerate_id(true); $_SESSION['wajib_update_akun'] = true; $_SESSION['update_akun_id'] = $user['id']; $_SESSION['update_akun_tipe'] = 'master'; header("Location: update_akun.php"); exit; } // --------------------------------------------- // Login normal // --------------------------------------------- session_regenerate_id(true); $_SESSION['master'] = $user['id']; sweetAlert( "Login Berhasil", "success", baseurl() ); } else { sweetAlert( "Login Gagal.. Username atau Password Tidak terdaftar", "error" ); } } else { // ===================================================== // 2. CEK USER_AKSES // ===================================================== // // Hanya user status ACTIVE yang boleh login // $stmt = $pdo->prepare(" SELECT id, id_data_server, id_group_akses, nama, nomor_whatsapp, username, password, profile, email, status FROM user_akses WHERE ( username = :username OR email = :username ) AND status = 'active' LIMIT 1 "); $stmt->execute([ ':username' => $username ]); $user1 = $stmt->fetch(PDO::FETCH_ASSOC); // ===================================================== // USER_AKSES DITEMUKAN // ===================================================== if ($user1) { if (password_verify($password, $user1['password'])) { // --------------------------------------------- // Update last_login // --------------------------------------------- $stmtUpdate = $pdo->prepare(" UPDATE user_akses SET last_login = :waktu WHERE id = :id "); $stmtUpdate->execute([ ':waktu' => $waktu, ':id' => $user1['id'] ]); // --------------------------------------------- // Cek standar username/password // --------------------------------------------- $usernameKurang = mb_strlen($user1['username']) < 6; $passwordKurang = strlen($password) < 8; // --------------------------------------------- // Wajib update akun // --------------------------------------------- if ($usernameKurang || $passwordKurang) { session_regenerate_id(true); $_SESSION['wajib_update_akun'] = true; $_SESSION['update_akun_id'] = $user1['id']; $_SESSION['update_akun_tipe'] = 'user'; header("Location: update_akun.php"); exit; } // --------------------------------------------- // Login normal // --------------------------------------------- session_regenerate_id(true); $_SESSION['user'] = $user1['id']; sweetAlert( "Login Berhasil", "success", baseurl() ); } else { sweetAlert( "Login Gagal.. Username atau Password Tidak terdaftar", "error" ); } } else { /* * User tidak ditemukan. * * Termasuk user yang username/email benar * tetapi status = inactive. * * Sengaja tidak dibedakan supaya informasi * status akun tidak dibocorkan dari halaman login. */ sweetAlert( "Login Gagal.. Username atau Password Tidak terdaftar atau akun tidak aktif", "error" ); } } } catch (PDOException $e) { sweetAlert( "Login Gagal.. Terjadi kesalahan pada sistem", "error" ); // Aktifkan hanya untuk debugging: // error_log($e->getMessage()); } } } ?>