Файл: comments.php
Строк: 83
<?php
require '__core/inc.php';
head(array('title' => 'Отзывы | Миледи'));
if (!empty($_POST)) {
$com_name = trim($_POST['com_name']);
$com_text = trim($_POST['com_text']);
$com_type = trim($_POST['com_type']);
$err = array();
if (empty($com_name)) {
$err[] = 'Заполните поле "Ваше имя"';
}
if (empty($com_text)) {
$err[] = 'Заполните поле "Отзыв"';
}
/* Проверка IP в чёрном списке */
$sql = "SELECT * FROM `blacklist` WHERE `ip` = :ip";
$result = $dbh->prepare($sql);
$result->bindValue(":ip", $_SERVER['REMOTE_ADDR'], PDO::PARAM_STR);
$result->execute();
$check = $result->fetch(PDO::FETCH_ASSOC);
if (!empty($check)) {
$err[] = 'Ваш IP находится в черном списке. Вы не можете писать отзывы.';
}
if (empty($err)) {
$sql = "
INSERT INTO `comments` (`com_name`, `com_text`, `com_type`, `com_date`, `com_uagent`, `com_ip`)
VALUES (:com_name, :com_text, :com_type, NOW(), :com_uagent, :com_ip)
";
$result = $dbh->prepare($sql);
$result->bindValue(":com_name", $com_name, PDO::PARAM_STR);
$result->bindValue(":com_text", $com_text, PDO::PARAM_STR);
$result->bindValue(":com_type", $com_type, PDO::PARAM_INT);
$result->bindValue(":com_uagent", $_SERVER['HTTP_USER_AGENT'], PDO::PARAM_STR);
$result->bindValue(":com_ip", $_SERVER['REMOTE_ADDR'], PDO::PARAM_STR);
$result->execute();
$_SESSION['msg'] = 'Отзыв успешно добавлен';
header("Location: /comments");
exit;
}
}
if (!empty($_GET['delete']) && !empty($_SESSION['admin'])) {
$com_id = $_GET['delete'];
$sql = "DELETE FROM `comments` WHERE `com_id` = :com_id";
$result = $dbh->prepare($sql);
$result->bindValue(":com_id", $com_id, PDO::PARAM_INT);
$result->execute();
header("Location: /comments");
exit;
}
if (!empty($_GET['banip']) && !empty($_SESSION['admin'])) {
$ip = $_GET['banip'];
$sql = "INSERT INTO `blacklist` (`ip`) VALUES (:ip)";
$result = $dbh->prepare($sql);
$result->bindValue(":ip", $ip, PDO::PARAM_STR);
$result->execute();
header("Location: /comments");
exit;
}
get_msg();
if (!empty($err)):
?>
<div class="error">
<ul>
<?php foreach ($err as $error): ?>
<li><?= $error ?></li>
<?php endforeach; ?>
</ul>
</div>
<?php
endif;
?>
<div class="content">
<div class="title">Отзывы</div>
<ul>
<?php
$total = $dbh->query("SELECT * FROM `comments`")->rowCount();
$p = new Pagination;
$p->sett($total, $config['other']['perpage']);
$query = "SELECT * FROM `comments` ORDER BY `com_id` DESC " . $p->limit();
$sql = $dbh->query($query);
$data = $sql->fetchAll(PDO::FETCH_ASSOC);
if ($total):
foreach ($data as $comment):
?>
<li>
<b>Имя:</b> <?= htmlspecialchars($comment['com_name']) ?> <?= $comment['com_date'] ?><br />
<b>Отзыв:</b> <?= nl2br(htmlspecialchars($comment['com_text'])) ?><br />
<b><?= (empty($comment['com_type']) ? 'Положительный' : 'Отрицательный') ?></b><br />
<?php if (isset($_SESSION['admin'])): ?>
<a href="/comments?delete=<?= $comment['com_id'] ?>">Удалить</a><br />
<b>IP:</b> <?= $comment['com_ip'] ?> <a href="/comments?banip=<?= $comment['com_ip'] ?>">[В ЧС]</a><br />
<b>uAgent:</b> <?= $comment['com_uagent'] ?><br />
<?php endif; ?>
<hr />
</li>
<?php
endforeach;
echo $p->get();
else:
?>
<li>Отзывы не добавлены</li>
<?php endif; ?>
</ul>
</div>
<form method="POST">
<ul>
<li><label for="com_name">Ваше имя:</label></li>
<li><input id="com_name" name="com_name" value="<?= (isset($_POST['com_name']) ? htmlspecialchars($_POST['com_name']) : NULL) ?>"/></li>
<li><label for="com_text">Отзыв:</label></li>
<li><textarea id="com_text" name="com_text"><?= (isset($_POST['com_text']) ? htmlspecialchars($_POST['com_text']) : NULL) ?></textarea></li>
<li><select name="com_type"><option value="0">Положительный</option><option value="1" <?= (isset($_POST['com_type']) && $_POST['com_type'] == 1 ? 'selected' : NULL) ?>>Отрицательный</option></select></li>
<li><img src="captcha.php" alt=""/><br /><label for="captcha">Введите проверочный код:</label><br /></li>
<li><input id="captcha" name="captcha"/></li>
<li><button>Добавить</button></li>
</ul>
</form>
<?php
if (!empty($_SESSION['admin'])) {
?>
<a href="/apanel/blacklist">Черный список</a>
<?php
}
?>
<div class="nav">
<ul>
<li><a href="/">Главная</a></li>
</ul>
</div>
<?php
footer();
?>