Файл: shops.php
Строк: 155
<?php
require 'config.php';
$align = 'center';
$title = 'Магазин';
aut();
head();
who_add(0, 'enter');
$go = isset($_GET['go']) ? $_GET['go'] : NULL;
switch($go) {
default:
echo '<img src="index.gif" alt="shop"/><br/>';
echo ($user['level'] == 9) ?
'» <a href="shops?go=adm_1">Управление подарками</a><br/>
» <a href="shops?go=adm_2">Управление категориями</a><br/>--~~~--<br/>'
:
'';
$num_my = mysql_result(mysql_query("SELECT COUNT(*) FROM `shops` WHERE `have` = '1' AND `have_user` = '$user[id]'"), 0);
echo '» <a href="shops?go=user_view&nk='.$user['id'].'">Мои подарки</a> (' . $num_my . ')<br/>--~~~--<br/>';
if (isset($_GET['good_load'])) echo '<b style="color:green">Файл загружен!</b><br/><br/>';
if (isset($_GET['good_create'])) echo '<b style="color:green">Категория создана!</b><br/><br/>';
if (isset($_GET['good_del'])) echo '<b style="color:green">Категория со вложеными файлами удалена!</b><br/><br/>';
if (isset($_GET['good_present'])) echo '<b style="color:green">Подарок отправлен!</b><br/><br/>';
if (isset($_GET['good_del_p'])) echo '<b style="color:green">Подарок удален!</b><br/><br/>';
$select = mysql_query("SELECT * FROM `shops` WHERE `type` = 'k'");
echo '<b>Категории</b><br/>';
if (mysql_affected_rows() != false) {
while($a = mysql_fetch_assoc($select)) {
$num_gifts = mysql_result(mysql_query("SELECT COUNT(*) FROM `shops` WHERE `cid` = '".(int)$a['id']."' AND `type` = 'p' AND `have` = '0'"), 0);
echo '* <a href="shops?go=view&uid='.$a['id'].'">' . $a['name'] . '</a> (' . $num_gifts . ')<br/>- - -<br/>';
}
} else {
echo 'Категорий нет...<br/>';
}
break;
case adm_1:
echo '<u>Выберите категорию для загрузки нового подарка</u><br/><br/>';
$select = mysql_query("SELECT * FROM `shops` WHERE `type` = 'k'");
if (mysql_affected_rows() != false) {
while($a = mysql_fetch_assoc($select)) {
$num_gifts = mysql_result(mysql_query("SELECT COUNT(*) FROM `shops` WHERE `cid` = '".(int)$a['id']."' AND `type` = 'p' AND `have` = '0'"), 0);
echo '<a href="shops?go=load&uid='.$a['id'].'"><b>' . $a['name'] . '</b></a> (' . $num_gifts . ')<br/>- - -<br/>';
}
} else {
echo 'Категорий нет...<br/>';
}
break;
case load:
$uid = (int)$_GET['uid'];
$exists = mysql_query("SELECT `id` FROM `shops` WHERE `id` = '$uid'");
$nazv = trim(mysql_real_escape_string(check($_POST['nazv'])));
$price = (int)$_POST['price'];
if (isset($_POST['load_ok'])) {
$pictures = array('.gif', '.jpg', '.jpeg', '.png');
$ext = strtolower(strrchr($_FILES['file']['name'], '.'));
$par = getimagesize($_FILES['file']);
$fnames = $_FILES['file']['name'];
if (empty($nazv)) $err .= 'Вы не заполнили название!<br/>';
if (empty($price)) $err .= 'Вы не заполнили цену!<br/>';
if ($price > 5000) $err .= 'Зачем такая большая сумма?<br/>';
if (!isset($_FILES['file'])) $err .= 'Вы не выбрали файл!<br/>';
if (($par[0] > 640) or ($par[1] > 480)) $err .= 'Неправильное расширение файла!<br/>';
if ((preg_match("/.php/i", $fnames)) or (preg_match("/.pl/i", $fnames)) or ($fnames == ".htaccess")) $err .= 'Недопустимое расширение файла!<br/>';
if (!in_array($ext, $pictures)) $err .= 'Недопустимое расширение файла!<br/>';
if ($_FILES['file']['size'] > (1024 * 100)) $err .= 'Размер файла не должен превышать 100Kb!<br/>';
if (empty($err)) {
$foto = "shops_img/img_".time().$ext."";
$today = date('d-m-Y, H:i');
@copy($_FILES['file']['tmp_name'], $foto);
@chmod(basename($foto), 0777);
mysql_query("INSERT INTO `shops` SET
`name` = '$nazv',
`price` = '$price',
`type` = 'p',
`cid` = '$uid',
`author` = '$user[id]',
`date` = '$today',
`path` = '$foto',
`have` = '0',
`have_user` = '0'");
header('Location: shops?good_load');
} else {
echo $err;
}
}
else
{
if (mysql_num_rows($exists) == false) {
echo 'Такая категория отсутствует!<br/>';
foot();
exit();
}
echo 'Максимальный размер файла 100kb. расширение 640х480px.<br/>
Допустимые форматы: *gif *jpg *jpeg *png.<br/>
<form ENCTYPE="multipart/form-data" action="shops.php?go=load&uid='.$uid.'" method="POST">
#Изображение:<br/>
<INPUT NAME="file" TYPE="file" SIZE="20">
<br/>
#Название:<br/>
<input type="text" name="nazv" maxlength="15"/>
<br/>
#Цена:<br/>
<input type="text" name="price" size="4" maxlength="4"/>
<br/>
<input type="submit" name="load_ok" value="Загрузить"/>
</form>';
}
break;
case adm_2:
if (isset($_POST['kat_ok'])) {
$name = trim(mysql_real_escape_string(check($_POST['name'])));
$exists = mysql_query("SELECT `id` FROM `shops` WHERE `name` = '$name'");
if (mysql_num_rows($exists) != false) $error .= 'Такая категория уже существует!<br/>';
if (empty($name)) $error .= 'Не заполнено название категории!<br/>';
if (isset($name{20})) $error .= 'Слишком длинное название категории!<br/>';
if (empty($error)) {
mysql_query("INSERT INTO `shops` SET `name` = '$name', `type` = 'k'");
header('Location: shops?good_create');
} else {
echo $error;
}
}
if (isset($_GET['new_kat'])) {
echo '#Новая категория:<br/>
<form method="POST" action="shops?go=adm_2">
<input type="text" maxlength="20" name="name"/>
<br/>
<input type="submit" name="kat_ok" value="Создать"/>
</form>';
}
echo '<a href="shops?go=adm_2&new_kat"><b>Новая категория</b></a><br/><br/>';
$kats = mysql_query("SELECT * FROM `shops` WHERE `type` = 'k'");
if (mysql_affected_rows() != false) {
while($a = mysql_fetch_assoc($kats)) {
if ($user['level'] == 9) $del = '[<a href="shops?go=delete&x='.$a['id'].'">X</a>]';
$num_gifts = mysql_result(mysql_query("SELECT COUNT(*) FROM `shops` WHERE `cid` = '".(int)$a['id']."' AND `type` = 'p' AND `have` = '0'"), 0);
echo $del . '* <a href="shops?go=view&uid='.$a['id'].'">' . $a['name'] . '</a> (' . $num_gifts . ')<br/>- - -<br/>';
}
} else {
echo 'Категорий нет...<br/>';
}
break;
case view:
$uid = (int)$_GET['uid'];
$exists = mysql_query("SELECT `id` FROM `shops` WHERE `id` = '$uid'");
if (mysql_num_rows($exists) == false) {
echo 'Такая категория отсутствует!<br/>';
foot();
exit();
}
$page = isset($_GET['page']) ? abs(intval($_GET['page'])) : 1;
$start = ($page - 1) * 5;
$all = mysql_result(mysql_query("SELECT COUNT(*) FROM `shops` WHERE `cid` = '$uid'"), 0);
$all = ceil($all/5);
$all = $all > 5 ? 5 : $all;
$view = mysql_query("SELECT * FROM `shops` WHERE `cid` = '$uid' ORDER BY `id` DESC LIMIT ".abs(intval($start)).", 5");
if (mysql_affected_rows() != false) {
while($q = mysql_fetch_assoc($view)) {
if ($user['level'] == 9) $d = '[<a href="shops?del_p&x='.$q['id'].'">x</a>]';
echo $d . '<a href="shops?go=buy&p='.$q['id'].'">
<img src="resize.php?img='.$q['path'].'&width=80&height=0" alt="prev"/></a>
<br/>
<u>' . $q['name'] . '</u><br/>
Загружен: ' . $q['date'] . '<br/>
Загрузил: ' . user_inf($q['author'], 'user') . '<br/>
Цена: ' . $q['price'] . 'р<br/>* * *<br/>';
}
} else {
echo 'Раздел пуст...<br/>';
}
echo '<br/><br/>';
for($i = 1; $i <= $all; $i++)
{
echo $pr=(($i == 1 || $i == $all || abs($i-$page) < 2) ? ($i == $page ? " [$i] " : ' <b><a href="shop?go=view&uid='.$uid.'&page='.$i.'">'.$i.'</a></b>') : (($pr == ' ... ' || $pr == '')? '' : ' ... '));
}
break;
case del_p:
$x = abs((int)$_GET['x']);
$del = mysql_query("SELECT `path` FROM `shops` WHERE `cid` = '$x' AND `type` = 'p' AND `have` = '0'");
if (mysql_num_rows($del) == false) {
echo 'Такого подарка не существует!<br/>';
} else {
$in_del = mysql_fetch_array($del);
if (file_exists($in_del[0])) unlink($in_del[0]);
mysql_query("DELETE FROM `shops` WHERE `cid` = '$x' AND `type` = 'p' AND `have` = '0'");
header('Location: shops?good_del_p');
}
break;
case delete:
$x = abs((int)$_GET['x']);
$test = mysql_query("SELECT `id` FROM `shops` WHERE `id` = '$x' AND `type` = 'k'");
if (mysql_num_rows($test) == false) {
echo 'Такой категории не существует!<br/>';
}
else
{
$dop_del = mysql_query("SELECT `path` FROM `shops` WHERE `cid` = '$x' AND `type` = 'p' AND `have` = '0'");
while($in_del = mysql_fetch_array($dop_del)) {
if (file_exists($in_del[0])) unlink($in_del[0]);
}
mysql_query("DELETE FROM `shops` WHERE `id` = '$x' AND `type` = 'k'");
mysql_query("DELETE FROM `shops` WHERE `cid` = '$x' AND `type` = 'p' AND `have` = '0'");
header('Location: shops?good_del');
}
break;
case buy:
$p = (int)$_GET['p'];
$pr = mysql_query("SELECT * FROM `shops` WHERE `id` = '$p' AND `type` = 'p' AND `have` = '0'");
if (mysql_num_rows($pr) == false) {
echo 'Такого подарка не существует!<br/>';
foot();
exit();
}
$sel = mysql_fetch_assoc($pr);
if (isset($_POST['send'])) {
$komu = check($_POST['komu']);
$comm = trim(mysql_real_escape_string(check($_POST['comm'])));
if (empty($komu)) $err .= 'Не введен получатель!<br/>';
if (!user_inf($komu)) $err .= 'Пользователь ' . htmlspecialchars($komu) . ' не найден!<br/>';
if (empty($comm)) $err .= 'Не введен коментарий!<br/>';
if ($user['rur'] < $sel['price']) $err .= 'Вам нехватает еще ' . ($sel['price'] - $user['rur']) . ' рублей для покупки!<br/>';
if ($_POST['anonim'] == true) $who = 0;
else $who = $id;
if (empty($err)) {
$today = date('d-m-Y, H:i');
$sql_1 = "INSERT INTO `shops` SET
`date` = '$today',
`comment` = '$comm',
`author` = '$who',
`type` = 'p',
`path` = '$sel[path]',
`have` = '1',
`have_user` = '$komu'";
$sql_2 = "UPDATE `users` SET `rur` = `rur` - '".(int)$sel['price']."' WHERE `id` = '$user[id]'";
if (mysql_query($sql_1) && mysql_query($sql_2)) {
header('Location: shops?go=good_present');
} else {
echo mysql_error();
}
}
}
if ($user['rur'] < $sel['price']) {
echo 'Вам нехватает еще ' . ($sel['price'] - $user['rur']) . ' рублей для покупки!<br/>';
} else {
echo '<form method="POST" action="shops?go=buy&p='.$p.'">
#Кому (ID):<br/>
<input type="text" name="komu"/>
<br/>
#Комментарий:<br/>
<input type="text" name="comm" maxlenght="50"/>
<br/>
Анонимно: <input type="checkbox" name="anonim" value="1"/>
<br/>
<input type="submit" name="send" value="Подарить"/>
</form>';
}
break;
case user_view:
$nk = (int)$_GET['nk'];
if (!user_inf($nk)) {
echo 'Пользователь не найден!<br/>';
foot();
exit();
}
if (isset($_GET['delete'])) {
$x = (int)$_GET['x'];
$prv = mysql_query("SELECT `id`, `path` FROM `shops` WHERE `have_user` = '$nk' AND `have` = '1' AND `id` = '$x'");
if ($komu != $nk) {
echo 'Это не Ваш подарок!<br/>';
foot();
exit();
}
if (mysql_num_rows($prv) == false) {
echo 'Подарка не существует!<br/>';
} else {
$in_del = mysql_fetch_array($prv);
if (file_exists($in_del[1])) unlink($in_del[1]);
mysql_query("DELETE FROM `shops` WHERE `have_user` = '$nk' AND `have` = '1' AND `id` = '$x'");
header('Location: shops?go=user_view&nk='.$nk.'');
}
}
$page = isset($_GET['page']) ? abs(intval($_GET['page'])) : 1;
$start = ($page - 1) * 5;
$all = mysql_result(mysql_query("SELECT COUNT(*) FROM `shops` WHERE `cid` = '$uid'"), 0);
$all = ceil($all/5);
$all = $all > 5 ? 5 : $all;
$v = mysql_query("SELECT * FROM `shops` WHERE `have_user` = '$nk' AND `have` = '1' ORDER BY `id` DESC LIMIT ".abs(intval($start)).", 5");
if (mysql_affected_rows() != false) {
while($a = mysql_fetch_assoc($v)) {
if ($a['author'] == 0) $who = '<font color="#FF0000">Аноним</font>';
else $who = user_inf($a['author'], 'user');
if ($user['id'] == $nk) $cl = '[<a href="shops?go=user_view&delete&nk='.$nk.'&x='.$a['id'].'">x</a>]';
echo $cl . '<img src="resize.php?img='.$a['path'].'&width=80&height=0" alt="prev"/>
<br/>
Подарил: ' . $who . '<br/>
Подарен: ' . $a['date'] . '<br/>
Комментарий: ' . $a['comment'] . '<br/>* * *<br/>';
}
} else {
echo 'Подарков нет...<br/>';
}
echo '<br/><br/>';
for($i = 1; $i <= $all; $i++)
{
echo $pr=(($i == 1 || $i == $all || abs($i-$page) < 2) ? ($i == $page ? " [$i] " : ' <b><a href="shop?go=user_view&nk='.$nk.'&page='.$i.'">'.$i.'</a></b>') : (($pr == ' ... ' || $pr == '')? '' : ' ... '));
}
break;
}
echo gb . '<a href="enter">Прихожая</a> ' . div;
foot();
?>