Файл: adminka.php
Строк: 319
<?php
/* Скрипт знакомств без регистрации
Автор: romanvht
roman.vkostin@gmail.com */
include 'inc/db.php';
include 'inc/head.php';
include 'inc/func.php';
$do = in_t($_GET['do']);
echo'<div class="title">Админка</div>';
switch ($do){
default:
echo'<div class="text">';
echo'<form action="?do=auth" method="post">
Логин:<br />
<input name="login" type="login" size="30" maxlength="30" /><br />
Пароль:<br />
<input name="pass" type="password" size="30" maxlength="30" /><br />
<input name="" type="submit" value="Войти" />
</form></div>';
if($_SESSION['admin'] == 1)header("Location: ?do=main");
break;
case 'auth':
setcookie ("admlogin", "$admlogin",time()*100);
setcookie ("admpass", "$admpass",time()*100);
$log = in_t($_POST['login']);
$pass = in_t($_POST['pass']);
if($log == $admlogin && md5(sha1($pass)) == $admpass){
$_SESSION['admin'] = 1;
header("Location: ?do=main");
} else { echo '<div class="text">Введенный логин или пароль неверный!</div>'; }
break;
case 'exit':
if($_SESSION['admin'] == 1){
setcookie ("admlogin", "0",time()-3600*60*30);
setcookie ("admpass", "0",time()-3600*60*30);
session_destroy();
echo '<div class="text">Вы вышли</div>';
} else { header("Location: ?"); }
break;
case 'jal':
if($_SESSION['admin'] == 1){
$page=int($_GET['page']);
$count=$db->query("SELECT `id` FROM `jalobs`")->num_rows;
$n = new navigator($count, '10', '?do=jal&');
$array = $db->query('SELECT * FROM `jalobs` ORDER BY `id` DESC '.$n->limit);
while($r = $array->fetch_assoc())
{
$new = ($r['view'] == '0') ? ' <span style="color: red;">[новая]</span>' : '';
echo '<div class="text"><b>Жалоба на анкету:</b> '.$r[ank].'<br/>';
echo '<b>Дата:</b> '.vrem($r['date']).$new;
echo '<br/>'.$r['text'];
echo '</br><a href="?do=inf&id='.$r['ank'].'">[Управление анкетой]</a>';
echo '</div>';
}
echo $n->navi();
$db->query("UPDATE `jalobs` SET `view` = '1' WHERE `view` = '0'");
} else { header("Location: ?"); }
break;
case 'regions':
if($_SESSION['admin'] == 1){
if(isset($_GET[del])){
$del = int($_GET[del]);
$db->query("DELETE FROM `regions` WHERE `id` = '$del'");
$db->query("DELETE FROM `ankets` WHERE `region` = '$del'");
header("Location: ?do=regions");
}
if(isset($_POST[create])){
$create = 0;
$name = in_t($_POST[name]);
$db->query("INSERT INTO `regions` SET `name` = '$name'");
header("Location: ?do=regions");
}
echo '<div class="text"><form action="?do=regions" method="post">
Добавить регион:<br />
<input name="name" type="text" size="30" maxlength="30" /><br />
<input name="create" type="submit" value="Добавить" />
</form></div>';
$q = $db->query("SELECT * FROM `regions` ORDER BY `name` ASC");
while($a = $q->fetch_assoc())
{
echo '<div class="text">- '.$a[name].' <a href="?do=regions&del='.$a[id].'">[уд]</a></div>';
}
} else { header("Location: ?"); }
break;
case 'main':
if($_SESSION['admin'] == 1){
$newj = $db->query("SELECT `id` FROM `jalobs` WHERE `view` = '0'")->num_rows;
echo'<div class="menu"><a href="?do=inf">Управление анкетой</a></div>
<div class="menu"><a href="?do=jal">Жалобы ('.$newj.' новых)</a></div>
<div class="menu"><a href="?do=regions">Регионы</a></div>
<div class="menu"><a href="?do=ban">Забанить IP</a></div>
<div class="menu"><a href="?do=noban">Разбанить IP</a></div>
<div class="menu"><a href="?do=exit">Снести сессию</a></div>';
} else { header("Location: ?do=index"); }
break;
case 'ban':
if($_SESSION['admin'] == 1){
$ip = htmlspecialchars(trim($_POST['ip']));
$id = int($_GET[id]);
$a = $db->query("SELECT `ip` FROM `ankets` WHERE `id` = '$id'")->fetch_assoc();
echo'<div class="text">';
echo '<form action="?do=ban" method="post">
Введите IP:<br />
<input value="'.$a[ip].'" name="ip" type="text" size="30" maxlength="30" /><br />
Причина:<br />
<textarea rows="5" cols="30" name="message"></textarea><br>
<input name="" type="submit" value="Забанить!" />
</form>';
if(!empty($ip) && !empty($message)){
$message = in_t($_POST['message']);
echo 'IP: '.$ip.' занесен в черный список';
$db->query('INSERT INTO `ban`(`ip`,`pri`) VALUES ("'.$ip.'","'.$message.'")');
}
echo '</div>';
} else { header("Location: ?"); }
break;
case 'noban':
if($_SESSION['admin'] == 1){
$nob = int($_POST['nob']);
echo'<div class="text">';
if(!empty($nob)){
echo 'IP разбанен';
$db->query('DELETE FROM `ban` WHERE `id` = "'.$nob.'"');
}
echo'<form action="?do=noban" method="post">
Выберите:<br />';
echo'<select name="nob">';
$sql = $db->query("SELECT `id`,`ip` FROM `ban` ORDER BY id DESC");
while($r = $sql->fetch_assoc())
{
echo'<option value="'.$r['id'].'">'.$r['ip'].'</option>';
}
echo'</select><br />
<input name="" type="submit" value="Разбанить" />';
echo'</form>';
echo'</div>';
} else { header("Location: ?"); }
break;
case 'clear':
if($_SESSION['admin'] == 1){
$db->query("TRUNCATE TABLE `ankets`");
$db->query("TRUNCATE TABLE `regions`");
unlink('foto');
echo'<div class="text">База сайта очищена</div>';
} else { header("Location: ?"); }
break;
case 'inf':
if($_SESSION['admin'] == 1){
$id = int($_REQUEST['id']);
if(!empty($id)){
echo'<div class="text">';
$a = $db->query("SELECT * FROM `ankets` WHERE `id`='$id'")->fetch_assoc();
if(!empty($a[id])){
echo '<b>IP:</b> '.$a[ip].' <a href="?do=ban&id='.$a[id].'">Бан</a><br/>';
echo '</div>';
echo '<div class="text">';
echo (!empty($a[foto])) ? '<img src="/'.$a[foto].'"/ width="150">' : 'Нет фото';
echo '</div><div class="text"><a href="?do=editfoto&id='.$a[id].'">Заменить фото</a> | <a href="?do=delfoto&id='.$a[id].'">Удалить</a><br/>';
echo '<a href="?do=edit&id='.$a[id].'">Изменить анкету</a><br/>';
echo 'Удалить анкету <a href="?do=del&id='.$a[id].'">Да</a></div><div class="text">';
$img = ($a[sex] == 0) ? '<img src="/style/img/user.png"/>' : '<img src="/style/img/woman.png"/>';
$r = $db->query("SELECT `name` FROM `regions` WHERE `id` = '$a[region]'")->fetch_assoc();
echo $img.' <b>'.$a[name].' '.$a[fam].'</b> ('.$a[age].' лет)<br/>';
echo '<b>Номер:</b> '.$a[tel].'<br/>';
echo '<b>Адрес:</b> '.$r[name].', '.$a[city].'<br/>';
echo '<b>Цель знакомства:</b> '.$a[cel].'<br/>';
echo '<b>О себе:</b> '.$a[info].'</div>';
echo '<div class="text"><b>Дата добавления:</b> '.vrem($a[date]).'<br/>';
}else{
echo 'Анкета была удалена!';
}
echo '</div>';
}else{
echo '<div class="text"><form action="?do=inf" method="post">
Введите ID анкеты:<br />
<input name="id" type="text" size="30" maxlength="30" /><br />
<input name="ok" type="submit" value="Управление" />
</form></div>';
}
} else { header("Location: ?"); }
break;
case 'edit':
if($_SESSION['admin'] == 1){
$id = int($_REQUEST[id]);
$a = $db->query("SELECT * FROM `ankets` WHERE `id` = '$id'")->fetch_assoc();
if(empty($a[id])){
echo '<div class="text">Анкета не найдена</div>';
echo'<div class="text">';
echo '<form action="?do=edit" method="post">';
echo 'Введите ID: <br/><input name="id" type="text" size="11" maxlength="11" value="" /><br />';
echo '<input type="submit" value="Изменить анкету" name=""></form></div>';
}else{
//// Запросы
if(!empty($_POST[save])){
$name = in_t($_POST[name]);
$fam = in_t($_POST[fam]);
$age = int($_POST[age]);
$sex = int($_POST[sex]);
$tel = int($_POST[tel]);
$region = int($_POST[region]);
$city = in_t($_POST[city]);
$cel = in_t($_POST[cel]);
$info = in_t($_POST[info]);
echo'<div class="text">';
if(strlen($name) < 3 || strlen($name) > 30 ) $err.='- Слишком короткое или длинное имя! Max: 30, Min: 3<br>';
if(strlen($fam) < 3 || strlen($fam) > 30 ) $err.='- Слишком короткая или длинная фамилия! Max: 30, Min: 3<br>';
if(strlen($age) < 2 || strlen($age) > 2 ) $err.='- Неверный возраст<br>';
if(strlen($city) < 3 || strlen($city) > 80 ) $err.='- Слишком короткое/длинное название города<br>';
if(strlen($cel) < 3 || strlen($cel) > 300 ) $err.='- Слишком короткая/длинная цель знакомства! Max: 300, Min: 3<br>';
if(strlen($tel) < 10 || strlen($tel) > 12 ) $err.='- Неверный номер телефона<br>';
if(strlen($info) < 3 || strlen($info) > 500 ) $err.='- Слишком короткая/длинная информация о себе! Max: 500, Min: 3<br>';
if(empty($err)){
$db->query("UPDATE `ankets` SET `name` = '$name', `fam` = '$fam', `age` = '$age', `sex` = '$sex', `region` = '$region', `city` = '$city', `cel`= '$cel', `tel` = '$tel', `info` = '$info' WHERE `id` = '$a[id]'");
header("Location: ?do=inf&id=$a[id]");
}else{
echo '<div class="text">'.$err.'</div>';
}
}
////
echo'<div class="text">';
echo '<form action="?do=edit" method="post">';
echo 'Номер телефона (max: 11):<br />';
echo '<input name="tel" type="text" size="11" maxlength="11" value="'.$a[tel].'" />';
echo '<br/>Имя (max: 30):<br />';
echo '<input name="name" type="text" size="30" maxlength="30" value="'.$a[name].'" /><br />';
echo 'Фамилия (max: 30):<br />';
echo '<input name="fam" type="text" size="30" maxlength="30" value="'.$a[fam].'" /><br />';
echo '<input name="age" type="text" size="3" maxlength="2" value="'.$a[age].'" /><br />';
echo 'Ваш пол: <br/>';
echo '<select name="sex">';
if($a[sex] == 0){
echo '<option value="0">Мужской</option>';
echo '<option value="1">Женский</option>';
}else{
echo '<option value="1">Женский</option>';
echo '<option value="0">Мужской</option>';
}
echo '</select><br />';
echo 'Регион: <br/>';
echo '<select name="region">';
$regus = $db->query("SELECT `id`,`name` FROM `regions` WHERE `id` = '$a[region]'")->fetch_assoc();
echo '<option value="'.$regus[id].'">'.$regus[name].'</option>';
$q = $db->query("SELECT `id`,`name` FROM `regions` ORDER BY `name` ASC");
while($r = $q->fetch_assoc()){
echo '<option value="'.$r[id].'">'.$r[name].'</option>';
}
echo '</select><br />';
echo 'Город (max: 80):<br />';
echo '<input name="city" type="text" size="30" maxlength="80" value="'.$a[city].'" /><br />';
echo 'Цель знакомства (max: 300):<br />';
echo '<textarea rows="2" cols="30" name="cel">'.$a[cel].'</textarea><br>';
echo 'О себе (max: 500): <br />
<textarea rows="5" cols="30" name="info">'.$a[info].'</textarea><br>';
echo '<input type="hidden" value="'.$a[id].'" name="id"><input type="submit" value="Изменить анкету" name="save"></form></div>';
}
} else { header("Location: ?"); }
break;
case 'del':
if($_SESSION['admin'] == 1){
$id = abs(intval($_GET['id']));
$a = $db->query("SELECT `id`,`foto` FROM `ankets` WHERE `id`='$id'")->fetch_assoc();
if(empty($a[id])){
echo '<div class="text">Ошибка при удалении</div>';
}else{
if(!empty($a[foto]))unlink($a[foto]);
$db->query('DELETE FROM `ankets` WHERE `id` = "'.$id.'"');
echo '<div class="text">Анкета успешно удалена</div>';
}
} else { header("Location: ?"); }
break;
case 'delfoto':
if($_SESSION['admin'] == 1){
$id = abs(intval($_GET['id']));
$a = $db->query("SELECT `id`,`foto` FROM `ankets` WHERE `id`='$id' LIMIT 1")->fetch_assoc();
if(empty($a[id])){
echo '<div class="text">Ошибка при удалении</div>';
}else{
if(!empty($a[foto]))unlink($a[foto]);
$db->query("UPDATE `ankets` SET `foto` = '' WHERE `id` = '$id'");
echo '<div class="text">Фото анкеты успешно удалено</div>';
echo'<div class="menu"><a href="?do=inf&id='.$id.'">В админку</a></div>';
}
} else { header("Location: ?"); }
break;
case 'editfoto':
if($_SESSION['admin'] == 1){
$id = abs(intval($_GET['id']));
$a = $db->query("SELECT `id`,`foto` FROM `ankets` WHERE `id`='$id' LIMIT 1")->fetch_assoc();
if(empty($a[id])){
echo '<div class="text">Анкета не существует блеать</div>';
}else{
echo'<div class="text">';
/// Zapros
if(!empty($_POST[save])){
$pics = array('.jpg', '.jpeg', '.gif', '.png');
$fname = $_FILES['file']['name'];
$ext = strtolower(strrchr($fname, '.'));
$fsize = $_FILES['file']['size'];
if ($fsize > (1048576 * 1)) {
$err .= 'Размер фото превышает допустимое значение. [Max. 1mb.]<br />';
}
if (preg_match('/.php/i', $fname) || preg_match('/.pl/i', $fname) || $fname == '.htaccess' || !in_array($ext, $pics)) {
$err .= 'Не верное расширение файла.<br />';
}
if(empty($err)){
if(!empty($a[foto]))unlink($a[foto]);
$foto = 'foto/' . md5(time()) . $ext;
copy($_FILES['file']['tmp_name'], $foto);
$db->query("UPDATE `ankets` SET `foto` = '$foto' WHERE `id` = '$a[id]'");
header("Location: ?do=inf&id=$a[id]");
}else{
echo $err;
}
}
////
echo (empty($a[foto])) ? 'Нет фото' : '<img width="100px" src="'.$a[foto].'"/>';
echo '</div><div class="text">';
echo '<form action="?do=editfoto&id='.$a[id].'" method="post" enctype="multipart/form-data">';
echo 'Новое фото: (max. 1mb)<br /><input type="file" name="file"/><br />';
echo '<input type="submit" value="Добавить фото" name="save"></form></div>';
}
} else { header("Location: ?"); }
break;
}
if($do != 'main')echo'<div class="menu"><a href="adminka.php">В админку</a></div>';
include 'inc/foot.php';
?>