setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(Exception $e) {
die("Hiba az adatbázis kapcsolódásnál: " . $e->getMessage());
}
// ------------------ TÁBLÁK AUTOMATIKUS LÉTREHOZÁSA ------------------
$db->exec("
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
password VARCHAR(255),
avatar VARCHAR(10),
admin INT DEFAULT 0
);
CREATE TABLE IF NOT EXISTS messages (
id INT AUTO_INCREMENT PRIMARY KEY,
user VARCHAR(50),
avatar VARCHAR(10),
content TEXT,
time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
");
// ------------------ API ------------------
if(isset($_POST['action'])) {
// REGISZTRÁCIÓ
if($_POST['action'] == "register") {
$u = $_POST['user'];
$p = password_hash($_POST['pass'], PASSWORD_DEFAULT);
$a = $_POST['avatar'];
$admin = ($db->query("SELECT COUNT(*) FROM users")->fetchColumn() == 0) ? 1 : 0;
$stmt = $db->prepare("INSERT INTO users (username,password,avatar,admin) VALUES (?,?,?,?)");
$stmt->execute([$u,$p,$a,$admin]);
echo "OK";
exit;
}
// BELÉPÉS
if($_POST['action'] == "login") {
$u = $_POST['user'];
$p = $_POST['pass'];
$stmt = $db->prepare("SELECT * FROM users WHERE username=?");
$stmt->execute([$u]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if(!$user || !password_verify($p, $user['password'])) {
echo "HIBA";
exit;
}
echo json_encode($user);
exit;
}
// ÜZENET KÜLDÉS
if($_POST['action'] == "send") {
$stmt = $db->prepare("INSERT INTO messages (user,avatar,content) VALUES (?,?,?)");
$stmt->execute([$_POST['user'], $_POST['avatar'], $_POST['content']]);
echo "OK";
exit;
}
// ÜZENETEK LEKÉRÉSE
if($_POST['action'] == "load") {
$msgs = $db->query("SELECT * FROM messages ORDER BY id DESC LIMIT 200")->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($msgs);
exit;
}
// ADMIN: ÜZENET TÖRLÉS
if($_POST['action'] == "delete_msg") {
$stmt = $db->prepare("DELETE FROM messages WHERE id=?");
$stmt->execute([$_POST['id']]);
echo "OK";
exit;
}
// ADMIN: ÜZENET MÓDOSÍTÁS
if($_POST['action'] == "edit_msg") {
$stmt = $db->prepare("UPDATE messages SET content=? WHERE id=?");
$stmt->execute([$_POST['content'], $_POST['id']]);
echo "OK";
exit;
}
}
?>
PHP Chat – InfinityFree
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(Exception $e) {
die("Hiba az adatbázis kapcsolódásnál: " . $e->getMessage());
}
// ------------------ TÁBLÁK AUTOMATIKUS LÉTREHOZÁSA ------------------
$db->exec("
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
password VARCHAR(255),
avatar VARCHAR(10),
admin INT DEFAULT 0
);
CREATE TABLE IF NOT EXISTS messages (
id INT AUTO_INCREMENT PRIMARY KEY,
user VARCHAR(50),
avatar VARCHAR(10),
content TEXT,
time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
");
// ------------------ API ------------------
if(isset($_POST['action'])) {
// REGISZTRÁCIÓ
if($_POST['action'] == "register") {
$u = $_POST['user'];
$p = password_hash($_POST['pass'], PASSWORD_DEFAULT);
$a = $_POST['avatar'];
$admin = ($db->query("SELECT COUNT(*) FROM users")->fetchColumn() == 0) ? 1 : 0;
$stmt = $db->prepare("INSERT INTO users (username,password,avatar,admin) VALUES (?,?,?,?)");
$stmt->execute([$u,$p,$a,$admin]);
echo "OK";
exit;
}
// BELÉPÉS
if($_POST['action'] == "login") {
$u = $_POST['user'];
$p = $_POST['pass'];
$stmt = $db->prepare("SELECT * FROM users WHERE username=?");
$stmt->execute([$u]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if(!$user || !password_verify($p, $user['password'])) {
echo "HIBA";
exit;
}
echo json_encode($user);
exit;
}
// ÜZENET KÜLDÉS
if($_POST['action'] == "send") {
$stmt = $db->prepare("INSERT INTO messages (user,avatar,content) VALUES (?,?,?)");
$stmt->execute([$_POST['user'], $_POST['avatar'], $_POST['content']]);
echo "OK";
exit;
}
// ÜZENETEK LEKÉRÉSE
if($_POST['action'] == "load") {
$msgs = $db->query("SELECT * FROM messages ORDER BY id DESC LIMIT 200")->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($msgs);
exit;
}
// ADMIN: ÜZENET TÖRLÉS
if($_POST['action'] == "delete_msg") {
$stmt = $db->prepare("DELETE FROM messages WHERE id=?");
$stmt->execute([$_POST['id']]);
echo "OK";
exit;
}
// ADMIN: ÜZENET MÓDOSÍTÁS
if($_POST['action'] == "edit_msg") {
$stmt = $db->prepare("UPDATE messages SET content=? WHERE id=?");
$stmt->execute([$_POST['content'], $_POST['id']]);
echo "OK";
exit;
}
}
?>
PHP Chat – InfinityFree
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(Exception $e) {
die("Hiba az adatbázis kapcsolódásnál: " . $e->getMessage());
}
// ------------------ TÁBLÁK AUTOMATIKUS LÉTREHOZÁSA ------------------
$db->exec("
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
password VARCHAR(255),
avatar VARCHAR(10),
admin INT DEFAULT 0
);
CREATE TABLE IF NOT EXISTS messages (
id INT AUTO_INCREMENT PRIMARY KEY,
user VARCHAR(50),
avatar VARCHAR(10),
content TEXT,
time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
");
// ------------------ API ------------------
if(isset($_POST['action'])) {
// REGISZTRÁCIÓ
if($_POST['action'] == "register") {
$u = $_POST['user'];
$p = password_hash($_POST['pass'], PASSWORD_DEFAULT);
$a = $_POST['avatar'];
$admin = ($db->query("SELECT COUNT(*) FROM users")->fetchColumn() == 0) ? 1 : 0;
$stmt = $db->prepare("INSERT INTO users (username,password,avatar,admin) VALUES (?,?,?,?)");
$stmt->execute([$u,$p,$a,$admin]);
echo "OK";
exit;
}
// BELÉPÉS
if($_POST['action'] == "login") {
$u = $_POST['user'];
$p = $_POST['pass'];
$stmt = $db->prepare("SELECT * FROM users WHERE username=?");
$stmt->execute([$u]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if(!$user || !password_verify($p, $user['password'])) {
echo "HIBA";
exit;
}
echo json_encode($user);
exit;
}
// ÜZENET KÜLDÉS
if($_POST['action'] == "send") {
$stmt = $db->prepare("INSERT INTO messages (user,avatar,content) VALUES (?,?,?)");
$stmt->execute([$_POST['user'], $_POST['avatar'], $_POST['content']]);
echo "OK";
exit;
}
// ÜZENETEK LEKÉRÉSE
if($_POST['action'] == "load") {
$msgs = $db->query("SELECT * FROM messages ORDER BY id DESC LIMIT 200")->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($msgs);
exit;
}
// ADMIN: ÜZENET TÖRLÉS
if($_POST['action'] == "delete_msg") {
$stmt = $db->prepare("DELETE FROM messages WHERE id=?");
$stmt->execute([$_POST['id']]);
echo "OK";
exit;
}
// ADMIN: ÜZENET MÓDOSÍTÁS
if($_POST['action'] == "edit_msg") {
$stmt = $db->prepare("UPDATE messages SET content=? WHERE id=?");
$stmt->execute([$_POST['content'], $_POST['id']]);
echo "OK";
exit;
}
}
?>
PHP Chat – InfinityFree