<?php /** * Copyright (c) 2018. * Author: Igor Barkov <lopar.4ever@gmail.com> * Project name: Battles-Game */ use Battles\Database\DBPDO; use Battles\Template; session_start(); require_once "config.php"; $msg = $_POST['msg'] ?? null; $uid = $_SESSION['uid'] ?? null; if ($msg) { $db = new DBPDO(); $db->execute('INSERT INTO chat (user_id,msg) VALUES (?,?)', [$uid, $msg]); } function show_messages() { $db = new DBPDO(); $chat = $db->ofetchALL('SELECT msg,msgdate,type,s.login AS sender, r.login AS receiver, s.id AS sid, r.id AS rid FROM chat LEFT JOIN users s on s.id = chat.user_id LEFT JOIN users r on r.id = chat.receiver_id WHERE r.id = ? OR r.id IS NULL OR s.id = ? ORDER BY chat.id', [$_SESSION['uid'], $_SESSION['uid']]); $i = 0; while ($i < count($chat)) { $d = new DateTime($chat[$i]->msgdate); $m = htmlspecialchars($chat[$i]->msg); if ($chat[$i]->type == 'sys') { /* Системка */ echo sprintf('<span style="color:maroon;background:#faa;">%s %s</span><br>', $d->format('H:i'), $m); } elseif ($chat[$i]->rid == $_SESSION['uid']) { /* С указанным получателем */ if ($chat[$i]->type == 'sms') { /* Телеграмма */ echo sprintf('<span style="color:darkgreen;background:#afa;">%s Телеграмма от [%s]: %s</span><br>', $d->format('d.m.Y H:i'), $chat[$i]->sender, $m); } elseif ($chat[$i]->type == 'private') { /* Приват */ echo sprintf('<span style="background:#efe;">%s [%s] → [%s]: %s</span><br>', $d->format('H:i'), $chat[$i]->sender, $chat[$i]->receiver, $m); } else { /* Общак */ echo sprintf('%s [%s] → [%s]: %s<br>', $d->format('H:i'), $chat[$i]->sender, $chat[$i]->receiver, $m); } } else { /* Без указанного получателя */ echo sprintf('%s [%s]: %s<br>', $d->format('H:i'), $chat[$i]->sender, $m); } $i++; } unset($i, $chat, $db); } Template::header('chat'); show_messages(); ?> <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>