82 lines
2.4 KiB
PHP
82 lines
2.4 KiB
PHP
<?php
|
||
/**
|
||
* Copyright (c) 2018.
|
||
* Author: Igor Barkov <lopar.4ever@gmail.com>
|
||
* Project name: Battles-Game
|
||
*/
|
||
|
||
session_start();
|
||
if (empty($_SESSION['uid'])) {
|
||
header("Location: index.php");
|
||
exit;
|
||
}
|
||
require_once "config.php";
|
||
|
||
$msg = $_POST['msg'] ?? null;
|
||
$uid = $_SESSION['uid'] ?? null;
|
||
if ($msg) {
|
||
try {
|
||
db::c()->query('INSERT INTO `chat` (`user_id`, `msg`) VALUES (?i, "?s")', $uid, $msg);
|
||
} catch (\Krugozor\Database\Mysql\Exception $e) {
|
||
echo "<div style='background-color: #ffaaaa;'>Ошибка: " . $e->getMessage() . "<br> В файле: " . $e->getFile() . " (" . $e->getLine() . ")</div>";
|
||
}
|
||
}
|
||
|
||
function show_messages()
|
||
{
|
||
try {
|
||
$chat = db::c()->query('
|
||
SELECT
|
||
`msg`,
|
||
`msgdate`,
|
||
(SELECT `login` FROM `users` WHERE `users`.`id` = `user_id`) AS `from`,
|
||
`type`
|
||
FROM `chat` ORDER BY `id` LIMIT 50');
|
||
while ($message = $chat->fetch_assoc()) {
|
||
$d = new DateTime($message['msgdate']);
|
||
$m = htmlspecialchars($message['msg']);
|
||
if ($message['type'] == 'sys') { /* Системка */
|
||
echo sprintf('<span style="color:maroon;background:#faa;">%s %s</span><br>', $d->format('H:i'), $m);
|
||
} elseif ($message['type'] == 'sms') { /* Телеграмма */
|
||
echo sprintf('<span style="color:darkgreen;background:#afa;">[Телеграмма]: %s %s</span><br>', $d->format('H:i'), $m);
|
||
} else {
|
||
echo sprintf('%s [%s]: %s<br>', $d->format('H:i'), $message['from'], $m);
|
||
}
|
||
}
|
||
} catch (\Krugozor\Database\Mysql\Exception $e) {
|
||
echo "<div style='background-color: #ffaaaa;'>Ошибка: " . $e->getMessage() . "<br> В файле: " . $e->getFile() . " (" . $e->getLine() . ")</div>";
|
||
}
|
||
}
|
||
|
||
|
||
show_messages();
|
||
\Battles\Template::header('chat');
|
||
?>
|
||
<style>
|
||
form {
|
||
padding: 3px;
|
||
position: fixed;
|
||
bottom: 0;
|
||
width: 100%;
|
||
}
|
||
|
||
form input {
|
||
border: 0;
|
||
padding: 10px;
|
||
width: 80%;
|
||
margin-right: .5%;
|
||
}
|
||
|
||
form input[type="submit"] {
|
||
width: 15%;
|
||
border: none;
|
||
padding: 10px;
|
||
}
|
||
</style>
|
||
<div>
|
||
<?php ?>
|
||
</div>
|
||
<form action="chat.php" method="post">
|
||
<input id="msg" name="msg" size="100" placeholder="Введите сообщение...">
|
||
<input type="submit" value="Отправить">
|
||
</form>
|