151 lines
4.5 KiB
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()]);
|
|
}
|
|
?>
|