Files
forzaapk/testpanel/authenticate.php

151 lines
4.5 KiB
PHP

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
session_start();
try {
$db = new PDO('sqlite:ibo_panel.db');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$createTablesQuery = "
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT NOT NULL UNIQUE,
password TEXT NOT NULL,
admin BOOLEAN NOT NULL DEFAULT 0,
dealer BOOLEAN NOT NULL DEFAULT 0,
balance REAL NOT NULL DEFAULT 0
);
CREATE TABLE IF NOT EXISTS themes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
theme_id TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS sports (
id INTEGER PRIMARY KEY AUTOINCREMENT,
header_n TEXT,
border_c TEXT,
background_c TEXT,
text_c TEXT,
days TEXT,
api TEXT
);
CREATE TABLE IF NOT EXISTS settings (
id INTEGER PRIMARY KEY AUTOINCREMENT,
note_title TEXT NOT NULL,
note_content TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS playlist (
id INTEGER PRIMARY KEY AUTOINCREMENT,
dns_id INTEGER,
mac_address TEXT NOT NULL,
username TEXT NOT NULL,
password TEXT NOT NULL,
pin TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS logintheme (
id INTEGER PRIMARY KEY AUTOINCREMENT,
themelog TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS dns (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
url TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS ads (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title VARCHAR(100),
url TEXT
);
CREATE TABLE IF NOT EXISTS ad_type (
id INTEGER PRIMARY KEY AUTOINCREMENT,
ad_type TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS adsstatus (
id INTEGER PRIMARY KEY AUTOINCREMENT,
adstype TEXT
);
CREATE TABLE IF NOT EXISTS ibo (
id INTEGER NOT NULL,
mac_address VARCHAR(100),
username VARCHAR(100),
password VARCHAR(100),
expire_date VARCHAR(100),
url VARCHAR(100),
title VARCHAR(100),
created_at VARCHAR(100),
access_count INTEGER DEFAULT 0,
PRIMARY KEY(id AUTOINCREMENT)
);
";
$db->exec($createTablesQuery);
$checkSettingsExistsQuery = "SELECT COUNT(*) FROM settings";
$stmt = $db->query($checkSettingsExistsQuery);
$settingsCount = $stmt->fetchColumn();
if ($settingsCount == 0) {
$insertDefaultSettingsQuery = "
INSERT INTO settings (note_title, note_content)
VALUES ('RainBow', 'RainBow');
";
$db->exec($insertDefaultSettingsQuery);
}
$checkThemesExistsQuery = "SELECT COUNT(*) FROM themes";
$stmt = $db->query($checkThemesExistsQuery);
$themesCount = $stmt->fetchColumn();
if ($themesCount == 0) {
$insertDefaultThemeQuery = "INSERT INTO themes (theme_id) VALUES ('theme_1')";
$db->exec($insertDefaultThemeQuery);
}
$checkUserExistsQuery = "SELECT COUNT(*) FROM users";
$stmt = $db->query($checkUserExistsQuery);
$userCount = $stmt->fetchColumn();
if ($userCount == 0) {
$defaultUserQuery = "
INSERT INTO users (username, password, admin, dealer, balance)
VALUES ('admin', 'admin', 1, 0, 0);
";
$db->exec($defaultUserQuery);
}
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $db->prepare("SELECT * FROM users WHERE username = :username AND password = :password");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
$stmt->execute();
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if ($user) {
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
$_SESSION['admin'] = $user['admin'];
$_SESSION['dealer'] = $user['dealer'];
echo json_encode(['success' => true, 'message' => 'Login successful']);
} else {
echo json_encode(['success' => false, 'message' => 'Invalid username or password']);
}
} catch (PDOException $e) {
echo json_encode(['success' => false, 'message' => 'Database error: ' . $e->getMessage()]);
}
?>