<?php /** * Created by PhpStorm. * User: Lopar * Date: 15.01.2019 * Time: 14:51 */ /* * Файл в котором буду аккумулироваться покупка и отправка подарков и сувениров, которые не будут являться предметами, * а просто записями в базе и просто будут отображаться в инвентаре, как неосязаемая сущность со сроком годности или * без и правом игрока скрыть или удалить любой подаренный подарок. * */ session_start(); if ($_SESSION['uid'] != 11263) header("Location: index.php"); require_once 'config.php'; $user = db::c()->query('SELECT `login`, `name` AS `ClanName`, u.`money` FROM `users` u LEFT JOIN `clans` c ON c.`id` = `klan` WHERE u.`id` = ?i', $_SESSION['uid'])->fetch_assoc(); $dirname = "i/presents/"; $images = glob($dirname . "*.png"); if (!empty($_POST['sendAction'])) { if (empty($_POST['present'])) { $status = "Подарок не выбран!"; return; } if (empty($_POST['receiver'])) { $status = "Поле «Получатель» не заполнено!"; return; } $receiver = db::c()->query('SELECT `id` FROM `users` WHERE `login` = "?s"', $_POST['receiver'])->fetch_assoc(); if (empty($receiver)) { $status = "Получатель {$receiver} не найден в базе!"; return; } if (empty($_POST['text'])) $_POST['text'] = null; if (empty($_POST['days']) OR $_POST['days'] < 1 OR !is_numeric($_POST['days'])) $_POST['days'] = 1; $cost = $_POST['days'] * 5; if ($user['money'] < $cost) { $status = "Не хватает кредитов на оплату подарка!"; return; } if ($_POST['sender'] == 1) $sender = "Анонимный подарок"; elseif ($_POST['sender'] == 2 && $user['ClanName']) $sender = "Подарок от клана {$user['ClanName']}"; else $sender = "Подарок от {$user['login']}"; db::c()->query('UPDATE `users` SET `money` = `money` - ?i WHERE `id` = ?i', $cost, $_SESSION['uid']); db::c()->query('INSERT INTO users_presents (owner, img, text, sender, expiration_date) VALUES (?i,"?s","?s","?s",DATE_ADD(CURDATE(),INTERVAL ?i DAY))', $receiver['id'], $_POST['present'], $_POST['text'], $sender, $_POST['days']); $telegraphText = "Вам пришёл подарок от {$sender}!"; db::c()->query('INSERT INTO `telegraph` (receiver, text) VALUES (?i,"?s")', $receiver['id'], $telegraphText); $status = "Подарок удачно доставлен к {$_POST['receiver']}! Вы потратили <b>{$cost}</b> кр."; } ?> <!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8"> <link href="css/main.css" rel="stylesheet"/> <script src="js/main.js"></script> <style> label.present > input { /* HIDE RADIO */ visibility: hidden; /* Makes input not-clickable */ position: absolute; /* Remove input from document flow */ } label.present > input + img { /* IMAGE STYLES */ cursor: pointer; border: 1px solid transparent; } label.present > input:checked + img { /* (RADIO CHECKED) IMAGE STYLES */ border: 1px solid darkred; background: lightcoral; } </style> <title></title> </head> <body> <h1>Магазин подарков</h1> <div class="private"><?php if (!empty($status)) echo $status; ?></div> Вы можете сделать подарок любому персонажу. Ваш подарок будет отображаться в информации о персонаже.<br><br> <div> Выберите подарок:<br> <form method="post"> <?php foreach ($images as $image): ?> <label class="present"> <input type="radio" name="present" value="<?= $image ?>"> <img src="<?= $image ?>" alt=""> </label> <?php endforeach; ?> <br><input name="receiver" placeholder="Имя получателя"><br> <textarea name="text" rows=6 cols=80 placeholder="Текст сопроводительной записки (в информации о персонаже не отображается). Заполнять не обязательно."></textarea><br> <br>Выберите, от чьего имени подарок:<br> <label><input type=radio name=sender value=0 checked> <?= $user['login'] ?></label><br> <label><input type=radio name=sender value=1> анонимно</label><br> <?php if (!empty($user['ClanName'])): ?> <label><input type=radio name=sender value=2> от имени клана <b><?= $user['ClanName'] ?></b></label><br> <?php endif; ?> <br>Долговечность подарка (5кр в день):<br> <input name="days" placeholder="Количество дней"><br> <input type="hidden" name="sendAction" value="1"> <br> <input type="submit" value="Подарить"> </form> </div> </body> </html>