Вход Регистрация
Файл: admin.php
Строк: 313
<?php
require_once('core/start.php');
if(
$user['level']<1){
header('location:/');
die();
}
$title 'Админка';
require_once(
root.'core/header.php');
switch(
$do){
default:
echo 
'<div class="ot4">Админка</div>';
echo 
'<div class="block">- <a href="?do=zapis">Управление записями</a><br />- <a href="?do=bann">Черный список</a><br />- <a href="?do=set">Настройки системы</a><br />- <a href="?do=smiles">Смайлы</a><br />- <a href="?do=submail">Рассылка писем по E-mail</a></div>';
break;
case 
set:
echo 
'<div class="ot4">Настройки системы</div>';
if(isset(
$_GET['good'])) msg('Сохранено!');
if(isset(
$_GET['error'])) err('Ошибка! Данные не сохранены.');
if(isset(
$_POST['save'])){
$title = isset($_POST['title']) ? secur($_POST['title']) : false;
$keywords = isset($_POST['keywords']) ? secur($_POST['keywords']) : false;
$description = isset($_POST['description']) ? secur($_POST['description']) : false;
$reg = isset($_POST['reg']) ? num($_POST['reg']) : false;
$onl = isset($_POST['onl']) ? num($_POST['onl']) : false;
$index_end = isset($_POST['index_end']) ? num($_POST['index_end']) : false;
if(
$index_end<OR $index_end>25){
$err 'Не меньше 5 и не больше 25.';
}
$end = isset($_POST['end']) ? num($_POST['end']) : false;
if(
$end<OR $end>25){
$err 'Не меньше 5 и не больше 25.';
}
if (empty(
$err)) {
core::$dbs->query("UPDATE setting SET keywords = ?, description = ?, reg = ?, onl = ?, index_end = ?, end = ?, title = ? WHERE id = ? LIMIT 1", array($keywords,$description,$reg,$onl,$index_end,$end,$title,1));
header('location: ?do=set&good');
} else {
header('location: ?do=set&error');
}
}
echo 
'<div class="block"><form action="?do=set" method="post">Название сайта:<br /><input type="text" name="title" value="'.$set['title'].'"/><br />Keywords:<br /><textarea name="keywords">'.$set['keywords'].'</textarea><br />Description:<br /><textarea name="description">'.$set['description'].'</textarea><br />Регистрация:<br /><select name="reg">';
if(
$set['reg']==1){
echo 
'<option value="1">Открытa</option>';
}elseif(
$set['reg']==2){
echo 
'<option value="2">Закрыта</option>';
}
echo 
'<option value="1">Открытa</option><option value="2">Закрыта</option></select><br />Записей на главной странице:<br /><input type="text" name="index_end" value="'.$set['index_end'].'" size="5"/><br />Записей/Kомментариев на странице:<br /><input type="text" name="end" value="'.$set['end'].'" size="5"/><br />Юзер онлайн(сек.): <br /><input type="text" name="onl" value="'.$set['onl'].'" size="5"/><br /><input type="submit" name="save" value="Сохранить"/></form></div>';
break;
case 
zapis:
echo 
'<div class="ot4">Управление записями</div>';
echo 
'<div class="vib"><a href="?do=add_zapis">Добавить запись</a></div>';
$count core::$dbs->querySingle("SELECT count(id) FROM `blog`");
$n = new pager($count,10,'?');
$array core::$dbs->query("SELECT * FROM `blog` ORDER BY `time` DESC LIMIT $n->start,$n->end");
if(
$array->rowCount()==0err('Записей нет!');
while(
$arr $array -> fetch()){
$message = (mb_strlen($arr['text'])>120 mb_substr($arr['text'],0,120'UTF-8') . '...'out($arr['text']) . '');
echo 
'<div class="block">[<a href="?do=red_zapis&amp;id='.$arr['id'].'">ред.</a>][<a href="?do=del_zapis&amp;id='.$arr['id'].'">удл.</a>] <b>'.stripslashes($arr['name']).'</b> ['.times($arr['time']).']</div>
<div class="block">
<p>' 
$message .'</p><p><br/> '.(strlen($arr['text'])>120 '<a class="lenk" href="/blog/'.$arr['latname'].'.html">Далее &rarr;</a> ':NULL).'</p></div>';
}
echo 
$n->pag();
break;
case 
add_zapis:
echo 
'<div class="ot4">Добавить запись</div>';
if (isset(
$_POST['ok'])) {
$name secur($_POST['name']);
$text secur($_POST['text']);
if(empty(
$name) || strlen($name)<5){
$err 'Название записи не введено или слишком короткое. Мин. 5 символов.';
}
if(empty(
$text) || strlen($text)<5){
$err 'Содержание записи не введено или слишком короткое. Мин. 5 символов.';
}
if(
core::$dbs->querySingle("SELECT COUNT(id) FROM `blog` WHERE `name` = ?",array($name))>0){
$err 'Такая запись уже есть!';
}
if(empty(
$err)){
core::$dbs->query("INSERT INTO `blog` SET `name` = ?, `text` = ?, `user_id` = ?, `time` = ?, `tags` = ?, `latname` = ?",array($name,$text,$user['id'],time(),secur($_POST['tags']),retrans(del(strtolower($name)))));
$last core::$dbs->lastInsertId();
$name core::$dbs->queryFetch("SELECT * FROM `blog` WHERE `id` = ? LIMIT 1",array($last));
msg('Запись успешно добавлена!<br />- <a href="/blog/'.$name['latname'].'.html">Перейти к записи</a>');
require_once(
root.'core/footer.php');
die();
} else {
err($err);
}
}
echo 
'<div class="block"><form action="?do=add_zapis" method="post">Название:<br /><input type="text" name="name"/><br />Содержание [<a href="/other/bbcode.php">BBcode</a>]:<br /><textarea name="text"></textarea><br />Метки [через запятую]:<br /><input type="text" name="tags"/><br /><input type="submit" name="ok" value="Добавить"/></form></div>';
break;
case 
red_zapis:
$arr core::$dbs->queryFetch("SELECT * FROM `blog` WHERE `id` = ? LIMIT 1",array($id));
if(empty(
$arr['id'])){
header('location:/');
die();
}
echo 
'<div class="ot4">Изменить запись</div>';
if (isset(
$_POST['ok'])) {
$name secur($_POST['name']);
$text secur($_POST['text']);
if(empty(
$name) || strlen($name)<5){
$err 'Название записи не введено или слишком короткое. Мин. 5 символов.';
}
if(empty(
$text) || strlen($text)<5){
$err 'Содержание записи не введено или слишком короткое. Мин. 5 символов.';
}
$latname strtolower(retrans(del($name)));
if(empty(
$err)){
core::$dbs->query("UPDATE `blog` SET `name` = ?, `text` = ?, `latname` = ?, `tags` = ? WHERE `id` = ? LIMIT 1",array($name,$text,$latname,secur($_POST['tags']),$arr['id']));
msg('Запись успешно изменена!<br />- <a href="/blog/'.$arr['latname'].'.html">Перейти к записи</a>');
require_once(
root.'core/footer.php');
die();
} else {
err($err);
}
}
echo 
'<div class="block"><form action="?do=red_zapis&amp;id='.$id.'" method="post">Название:<br /><input type="text" name="name" value="'.$arr['name'].'"/><br />Содержание [<a href="/other/bbcode.php">BBcode</a>]:<br /><textarea name="text">'.$arr['text'].'</textarea><br />Теги:<br /><input type="text" name="tags" value="'.$arr['tags'].'"/><br /><input type="submit" name="ok" value="Добавить"/></form></div>';
break;
case 
del_zapis:
$arr core::$dbs->queryFetch("SELECT * FROM `blog` WHERE `id` = ? LIMIT 1",array($id));
if(empty(
$arr['id'])){
header('location:/');
die();
}
echo 
'<div class="ot4">Удалить запись</div>';
core::$dbs->query("DELETE FROM `blog` WHERE `id` = ? LIMIT 1",array($arr['id']));
msg('Запись успешно удалена!');
break;
case 
bann:
echo 
'<div class="ot4">Черный список</div>';
if (isset(
$_GET['del'])) {
core::$dbs->query("DELETE FROM `bann` WHERE `id` = ? LIMIT 1",array(num($_GET['uid'])));
header('location: ?do=bann');
die();
}
$count core::$dbs->querySingle("SELECT count(id) FROM `bann` WHERE `type` = ?",array('bann'));
$n = new pager($count,$end,'?do=bann&amp;');
$array core::$dbs->query("SELECT * FROM `bann` WHERE `type` = ? ORDER BY `time_bann` DESC LIMIT $n->start,$end",array('bann'));
if(
$array->rowCount()==0err('Пусто...');
while(
$arr $array -> fetch()){
echo 
'<div class="block">[<a href="?do=bann&amp;del&amp;uid='.$arr['id'].'">осв.</a>]
'
.us($arr['user_id']).' / до '.date('d.m.Y - H:i'$arr['time_bann']).'<br />Причина: '.out($arr['why']).'</div>';
}
echo 
$n->pag();
break;
case 
banned:
if(!
user_inf($id)){
require_once(
root.'core/footer.php');
die();
}
if(
core::$dbs->querySingle("SELECT count(id) FROM `bann` WHERE `user_id` = ?",array($id))==1){
err('Этот пользователь уже забанен!!!');
require_once(
root.'core/footer.php');
die();
}
if(
$id==$user['id']){
header('location:/');
die();
}
echo 
'<div class="ot4">Банн</div>';
if(!isset(
$_POST['ok'])){
echo 
'<div class="block"><form action="?do=banned&amp;id='.$id.'" method="post">Ник/ID:<br /><input type="text" name="nick" value="'.user_inf($id'user').'"/><br/>Время:<br/><input type="text" name="na"/><br/>
<select name="vremja">
<option value="min">Минут</option>
<option value="chas">Часов</option>
<option value="sut">Суток</option>
<option value="mes">Месяцев</option>
</select><br/>
Причина:<br/>
<input type="text" name="why"/>
<br/>
<input type="submit" name="ok" value="Блокировать"/>
</form></div>'
;
} else {
if(empty(
$_POST['na'])){
$err 'Не указано время блокировки!';
}
if(empty(
$_POST['why'])){
$err 'Не указана причина блокировки!';
}
if (
$_POST['vremja'] == 'min'$na = (int)$_POST['na'] * 60;
if (
$_POST['vremja'] == 'chas'$na = (int)$_POST['na'] * 60 60;
if (
$_POST['vremja'] == 'sut'$na = (int)$_POST['na'] * 60 60 24;
if (
$_POST['vremja'] == 'mes'$na = (int)$_POST['na'] * 60 60 24 30;
$why secur($_POST['why']);
$na time() + $na;
if(empty(
$err)){
core::$dbs->query("INSERT INTO `bann` SET `time_bann` =?, `who` =?, `user_id` =?, `why` = ?, `type` = ?",array($na,$user['id'],$id,$why,'bann'));
msg('Пользователь <b>'.user_inf($id,'user').'</b> забанен!');
require_once(
root.'core/footer.php');
die();
} else {
err($err);
}
}
break;
case 
upd:
$arr core::$dbs->queryFetch("SELECT * FROM `users` WHERE `id` = ? LIMIT 1",array($id));
if(empty(
$arr['id'])){
header('location:/');
die();
}
if ((
user_inf($id'level')>$user['level']) || $user['level']==user_inf($id'level') && $user['id']!=$id && $id==1){
err('Информация про админа закрыта!');
require_once(
root.'core/footer.php');
exit();
}
echo 
'<div class="ot4">Изменить профиль</div>';
if (isset(
$_POST['ok'])) {
$login secur($_POST['login']);
$level num($_POST['level']);
if(empty(
$login)){
$err 'Логие слишком короткий.';
}
if(empty(
$err)){
core::$dbs->query("UPDATE `users` SET `user` = ?, `level` = ? WHERE `id` = ? LIMIT 1",array($login,$level,$arr['id']));
msg('Успешно сохранено!');
require_once(
root.'core/footer.php');
die();
} else {
err($err);
}
}
echo 
'<div class="block"><form action="?do=upd&amp;id='.$id.'" method="post">Логин:<br /><input type="text" name="login" value="'.$arr['user'].'"/><br />Уровень:<br/><select name="level">';
if(
$arr['level']==1){
echo 
'<option value="1">Админ</option>';
echo 
'<option value="0">Пользователь</option>';
} else {
echo 
'<option value="0">Пользователь</option>';
echo 
'<option value="1">Админ</option>';
}
echo 
'</select><br/><input type="submit" name="ok" value="Изменить"/></form></div>';
break;
case 
add_smiles:
echo 
'<div class="ot4">Добавить смайл</div>';
if(isset(
$_GET['save'])) msg('Успешно добавлено!');
if(isset(
$_GET['error'])) err('Ошибка!');
if(isset(
$_POST['ok'])){
$name secur($_POST['name']);
if(empty(
$name)) $err 'Введите название смайла!';
$FileName $_FILES['file']['name'];
$FileSize $_FILES['file']['size'];
$GetExt = array('.gif','.jpeg','.jpg','.png');
$ext strtolower(strrchr($_FILES['file']['name'], '.'));
if(!
preg_match('#([a-z0-9-_]{1,32})#i'$FileName)) $err .= 'Не правильное имя файла!';
if (
$FileSize 1024 1024$err .= 'Размер файла более 2 Мб!';
if (
$FileSize 1024 1024$err .= 'Размер файла более 2 Мб!';
if(empty(
$FileName)){$err 'Выберите файл.';}
if(
preg_match('/(.php|.pl|.htaccess)/i'$FileName) || !in_array($ext$GetExt)) $err .= 'Запрещенный формат файла!';
$file 'file_'.mt_rand(10009999).$ext;
if(empty(
$err)){
copy($_FILES['file']['tmp_name'], root '/smiles/' $file);
core::$dbs->query("INSERT INTO `smiles` SET `file` = ?, `name` = ?",array($file,$name));
header('location: ?do=add_smiles&save');
die();
}
}
err($err);
echo 
'<div class="block"><form action="?do=add_smiles" method="post" enctype="multipart/form-data">Название:<br /><input type="text" name="name"/><br />Файл [jpg,jpeg,gif,png]:<br/>
<input name="file" type="file"/><br/>
<input type="submit" name="ok" value="Добавить"></form></div>'
;
break;
case 
smiles:
echo 
'<div class="ot4">Смайлы</div>';
echo 
'<div class="vib"><a href="?do=add_smiles">Добавить смайл</a></div>';
$count core::$dbs->querySingle("SELECT COUNT(id) from `smiles`");
if(
$count==0err('Смайлов нет!');
$n = new pager($count,$end'?do=smiles&');
$array core::$dbs->query("SELECT * FROM `smiles` ORDER BY `id` DESC LIMIT $n->start,$end");
while(
$arr $array->fetch()){
echo 
'<div class="block">[<a href="?do=edit_smiles&amp;id='.$arr['id'].'">ред.</a>][<a href="?do=smiles&amp;id='.$arr['id'].'&del">x</a>] '.$arr['name'].' - <img src="smiles/'.$arr['file'].'" alt="*"/></div>';
}
echo 
$n->pag();
break;
case 
submail:
echo 
'<div class="ot4">Рассылка писем</div>';
$data date("d-M-Y");
if (empty(
$_POST['mess'])){
echo 
'<div class="block">Сообщение:<br /><form action="?do=submail" method="post"><textarea name="mess"></textarea><br /><input type="submit" value="Разослать"/></form></div>';
} else {
$mess secur($_POST['mess']);
echo 
msg('Сообщение отправлено:<br/>');
$theme $_SERVER['HTTP_HOST'] . ' News (' $data ')';
$from 'mail@' $_SERVER['HTTP_HOST'];
$xfile core::$dbs->query("SELECT `user`,`mail` FROM `users` WHERE `mail`!=?",array(''));
$n 0;
while (
$udata $xfile -> fetch()){
$msg "Рассылка писем " $_SERVER['HTTP_HOST'] . " от $data$mess " $_SERVER['HTTP_HOST'];
mail($udata['mail'], "$theme"$msg"From: $from rn" .
"Content-Type: text/plain; charset="utf-8" rn" "X-Mailer: PHP/" .
phpversion());
$n++;
}
}
break;
}
if (isset(
$_GET['do'])) echo '<div class="vib"><a href="admin.html">Админка</a></div>';
require_once(
root.'core/footer.php');
?>
Онлайн: 0
Реклама