Файл: 3020.ru/file_3020/plugins/shop.bought.php
Строк: 169
<?
if ($level == 0){
die('Только для зарегистрированных пользователей');
}
if (isset($ID) && $level > 1 && !isset($_GET['admin'])) {
$ank = $sql -> fetch("SELECT * FROM `users` WHERE `id` = '$ID' LIMIT 1");
}
if (!isset($ank['id']) && isset($user) || $level < 3) {
$ank = $user;
}
if (isset($_GET['goods'])) {
$id_goods = (int) $_GET['goods'];
$pays = $sql -> fetch("SELECT * FROM `shop_pays` WHERE `id_goods` = '$id_goods' AND `id_user` = '$ank[id]' AND `pays` = '1' LIMIT 1");
if ($pays['id_user'] == $ank['id'] && $pays['pays'] == 1) {
$goods = $sql -> fetch("SELECT * FROM `shop_goods` WHERE `id` = '$pays[id_goods]' AND `id_user` = '$pays[id_author]' LIMIT 1");
if ($goods['id']) {
$file = unserialize($goods['file']);
if (is_file(FILES . 'shop/' . $file['cache'] . '.dat')) {
if ($file['ras'] == 'zip' && $system['copy_name']) {
// Удаляем старый архив
@unlink(TMP . $file['cache'] . '.dat');
// Копируем в TMP папку
if (@copy(FILES . 'shop/' . $file['cache'] . '.dat', TMP . $file['cache'] . '.dat') === TRUE) {
$zip = new ZipArchive;
// Открываем новый архив
if ($zip->open(TMP . $file['cache'] . '.dat') === TRUE){
// Создать внутри архива файл и записать в него содержимое
$zip->addFromString($system['copy_name'] . '.txt', $system['copy_text']);
// закрыть архив
$zip->close();
}
}
//if ($goods['id_user'] != $user['id'] && !isset($pays['id'])) {
admin_log($user['id'], 'Покупатели|Скачивание товара '.$goods['name'].' ', "Скачивание архива товара [url=/goods/" . $goods['id'] . "]" . $goods['name'] . "[/url]");
//}
if (is_file(TMP . $file['cache'] . '.dat')){
DownloadFile(TMP . $file['cache'] . '.dat', latin($file['name']) . '_'.$pays['id_author'].'-'.$ank['id'].'_'.$time.'.' . $file['ras'], $file['type']);
exit;
}
}
DownloadFile(FILES . 'shop/' . $file['cache'] . '.dat', latin($file['name']) . '_'.$pays['id_author'].'-'.$ank['id'].'_'.$time.'.' . $file['ras'], $file['type']);
exit;
}
}
}
}
if (isset($_POST['pass1']) && isset($_GET['setpass'])) {
if ($_POST['pass1'] && !preg_match("#^([A-z0-9])+$#ui", $_POST['pass1'])) {
$err[] = 'Пароль должен содержать только английские буквы и цифры';
}
if ($ank['pass_pays'] != '0') {
if ($_POST['oldpass'] != $ank['pass_pays']) {
$err[] = 'Старый пароль введен не верно';
}
}
if ($_POST['pass1'] != $_POST['pass2']) {
$err[] = 'Пароли не совпадают';
}
if (strlen2($_POST['pass1']) > 12) {
$err[] = 'Пароль слишком длинный';
} elseif (strlen2($_POST['pass1']) < 3) {
$err[] = 'Пароль слишком короткий';
}
if (!isset($err)) {
$sql -> update("UPDATE `users` SET `pass_pays` = '" . $sql->esc($_POST['pass1']) . "' WHERE `id` = '$ank[id]' LIMIT 1");
$_SESSION['pass_pays'] = $_POST['pass1'];
$_SESSION['message'] = 'Пароль успешно установлен';
header('Location: /?func=' . $func . '&id=' . $ank['id']);
exit;
}
}
if (isset($_POST['pass']) && isset($_GET['inpass'])) {
if ($_POST['pass'] != $ank['pass_pays']) {
$err[] = 'Неверный пароль';
}
if (!isset($err)) {
$_SESSION['pass_pays'] = $_POST['pass'];
header('Location: /?func=' . $func . '&id=' . $ank['id']);
exit;
}
}
if (isset($_POST['pass']) && isset($_GET['unpass'])) {
if ($_POST['pass'] != $ank['pass_pays']) {
$err[] = 'Неверный пароль';
}
if (!isset($err)) {
$sql -> update("UPDATE `users` SET `pass_pays` = '0' WHERE `id` = '$ank[id]' LIMIT 1");
$_SESSION['pass_pays'] = 0;
$_SESSION['message'] = 'Пароль успешно удален';
header('Location: /?func=' . $func . '&id=' . $ank['id']);
exit;
}
}
$system['title'] = 'Список покупок ' . ($ank['id'] != $user['id'] ? login($ank['id']) : '');
require SYS . 'header.php';
if (isset($_GET['setpass'])) {
?>
<div class="nav2">
<form class="form-horizontal" action="/?func=<?= $func?>&id=<?= $ank['id']?>&setpass" method="POST">
<? if ($ank['pass_pays'] != '0') { ?>
<div class="control-group">
<label class="control-label" for="oldpass">Старый пароль</label>
<div class="controls">
<input type="text" id="oldpass" name="oldpass" placeholder="Старый пароль..">
</div>
</div>
<? } ?>
<div class="control-group">
<label class="control-label" for="pass1">Введите пароль</label>
<div class="controls">
<input type="password" id="pass1" name="pass1" placeholder="Пароль..">
</div>
</div>
<div class="control-group">
<label class="control-label" for="pass2">Повторите пароль</label>
<div class="controls">
<input type="password" id="pass2" name="pass2" placeholder="Повторите пароль..">
</div>
</div>
<div class="control-group">
<div class="controls">
<button type="submit" class="btn">Сохранить</button>
</div>
</div>
</form>
</div>
<?
} elseif ($ank['pass_pays'] != '0' && (!isset($_SESSION['pass_pays']) || $_SESSION['pass_pays'] != $ank['pass_pays'])) {
?>
<div class="nav2">
<form class="form-horizontal" action="/?func=<?= $func?>&id=<?= $ank['id']?>&inpass" method="POST">
<div class="control-group">
<label class="control-label" for="pass">Введите пароль</label>
<div class="controls">
<input type="password" id="pass" name="pass" placeholder="Пароль..">
</div>
</div>
<div class="control-group">
<div class="controls">
<button type="submit" class="btn">Войти</button>
</div>
</div>
</form>
</div>
<?
} elseif ($ank['pass_pays'] != '0' && isset($_GET['unpass'])) {
?>
<div class="nav2">
<form class="form-horizontal" action="/?func=<?= $func?>&id=<?= $ank['id']?>&unpass" method="POST">
<div class="control-group">
<label class="control-label" for="pass">Введите пароль</label>
<div class="controls">
<input type="password" id="pass" name="pass" placeholder="Пароль..">
</div>
</div>
<div class="control-group">
<div class="controls">
<button type="submit" class="btn">Убрать пароль</button>
</div>
</div>
</form>
</div>
<?
} else {
$k_post = $sql -> selectCount("SELECT COUNT(*) FROM `shop_pays` WHERE `id_user` = '$ank[id]' AND `pays` = '1'");
if ($k_post == 0) {
?>
<div class="alert" style="margin: 2px;">Список покупок пуст</div>
<?
} else {
$k_page = k_page($k_post, $system['page_str']);
$page = page($k_page);
$start = $system['page_str'] * $page - $system['page_str'];
$array = $sql -> select("SELECT * FROM `shop_pays` WHERE `id_user` = '$ank[id]' AND `pays` = '1' ORDER BY `time_pays` DESC LIMIT $start, $system[page_str]");
foreach ($array AS $post) {
$goods = $sql -> fetch("SELECT * FROM `shop_goods` WHERE `id` = '$post[id_goods]' AND `unlink` = '0' LIMIT 1");
if ($goods['screens']) {
$screen = unserialize($goods['screens']);
if (is_file(SRC . 'screen/shop/' . $screen[0] . '.png')) {
$_src = '/_src/img.php?link=' . base64_encode(SRC.'screen/shop/' . $screen[0] . '.png') . '&width=70&height=70';
}
} else {
$_src = '/_src/img.php?link=' . base64_encode(ROOT.'_images/images/no_image.png') . '&width=70&height=70';
}
if ($goods['id']){
$file = unserialize($goods['file']);
}
$num++;
?>
<div class="media <?= ($num % 2 ? "nav1" : "nav2")?>">
<img src="<?= $_src?>" class="img-polaroid pull-left" />
<a href="/goods/<?= $post['id_goods']?>"><?= text($post['name'])?></a> (<?= vremja($post['time_pays'])?>)<br />
<? if ($goods['id']) { ?>
Описание: <?= text_str($goods['msg'], 12, 80)?><br />
<i class="icon-download-alt"></i> <a href="/cash/user/<?= $ank['id']?>/goods/<?= $post['id_goods']?>/download/<?= text(latin($file['name']))?>.<?= text($file['ras'])?>">Скачать <?= text($file['name'])?>.<?= text($file['ras'])?></a> <?= size_file($file['size'])?><br />
<? } else { ?>
<span class="off">К сожалению товар удален</span><br />
<? } ?>
Продавец: <?= login($post['id_author'], 1)?><br />
</div>
<?
}
if ($k_page > 1) {
str('/?func=' . $func . '&id=' . $ank['id'] . '&', $k_page, $page);
}
}
}
?>
<div class="foot">
<? if (($level > 1) && $ank['pass_pays'] != '0'){ ?>Пароль: <?=$ank['pass_pays']?><br /><?}?>
» <a href="/?func=<?= $func?>&id=<?= $ank['id']?>&setpass"><?= ($ank['pass_pays'] == '0' ? 'Установить' : 'Изменить')?> пароль</a><br />
<? if ($ank['pass_pays'] != '0') { ?>
» <a href="/?func=<?= $func?>&id=<?= $ank['id']?>&unpass">Убрать пароль</a><br />
<? } ?>
</div>