Файл: shop/upload.php
Строк: 202
<?
require'../shaxty.php'; // waphp.ru - закрытый клуб вап мастеров!
$align='left';
$title='Магазин';
$head='Магазин';
include_once (H.'shaxty/head.php');
check_login();
function parseUA($s) {
if(preg_match('/Opera Mini/1/i', $s)) return 1;
if(preg_match('/Opera Mini/2/i', $s)) return 2;
if(preg_match('/Opera Mini/3/i', $s)) return 3;
if(preg_match('/Opera Mini/4/i', $s)) return 4;
}
function retrans($t){
$a = array('_','YA','Ya','ya','yee','YO','yo','Yo','ZH','zh','Zh','Z','z','CH','ch','Ch','SH','sh','Sh','YE','ye','Ye','YU','yu','Yu','JA','ja','Ja','A','a','B','b','V','v','G','g','D','d','E','e','I','i','J','j','K','k','L','l','M','m','N','n','O','o','P','p','R','r','S','s','T','t','U','u','F','f','H','h','W','w','x','q','Y','y','C','c','!');
$b = array(' ','Я','Я','я','ые','Ё','ё','Ё','Ж','ж','Ж','З','з','Ч','ч','Ch','Ш','ш','Ш','Э','э','Э','Ю','ю','Ю','Я','я','Я','А','а','Б','б','В','в','Г','г','Д','д','Е','е','И','и','Й','й','К','к','Л','л','М','м','Н','н','О','о','П','п','Р','р','С','с','Т','т','У','у','Ф','ф','Х','х','Щ','щ','ъ','ь','Ы','ы','Ц','ц','');
return str_replace($b,$a,$t);
}
function getExt($name) {
return end(explode('.', $name));
}
function checkExt($name) {
$exts[] = 'rar';
$exts[] = 'zip';
$found = false;
foreach($exts as $key=>$value) {
if(getExt($name) == $value) {
$found = true;
break;
}
}
if(!$found) return false;
else return true;
}
function checkExt2($name) {
$exts[] = 'jpg';
$exts[] = 'jpeg';
$exts[] = 'gif';
$exts[] = 'png';
$exts[] = 'bmp';
$exts[] = 'wmf';
$found = false;
foreach($exts as $key=>$value) {
if(getExt($name) == $value) {
$found = true;
break;
}
}
if(!$found) return false;
else return true;
}
function getWithoutPath($filename) {
return end(explode("/", $filename));
}
function p20repl($fn) {
return str_replace('%20', ' ', $fn);
}
if(isset($id)){
$id2= rus_lat(rus_utf_tolower(del($id)));
if (ctype_digit($id)) $sql = "and `id` = '$id'";
else if (!ctype_digit($id)) $sql = "and `name_lat` = '$id2'";
}
$cat=mysql_fetch_array(mysql_query("select * from shop_files where tip = 'cat' $sql;"));
if($cat['adds']!=1){
echo '<b>Неверная категория</b>';
echo $div1.'<a href="./">Магазин</a>'.$div9;
include_once (H.'shaxty/foot.php');
}
$info = mysql_fetch_assoc(mysql_query("SELECT * FROM `wm` where `id_us` = '".$user['id']."' limit 1"));
if(empty($info['wmid']) or empty($info['wmr']) or $info['check']==0){
echo 'Для того чтобы добавить свой товар, нужно указать ваш <a href="/user/wm.php">WMID</a> в анкете и подтвердить его<br /><br />';
echo $div1.'<a href="./">Магазин</a>'.$div9;
include_once (H.'shaxty/foot.php');
}
include_once ('head.php');
// Выводим папки :)
$record=split("|", $cat['refer']);
$num=count($record)-1;
for ($i=1;$i<$num;$i++){
if($i>=$num)break;
$adr=$record[$i];
$cat0=mysql_fetch_array(mysql_query("select * from shop_files where tip = 'cat' and `name_lat` = '$adr';"));
$put .= '»<a href="index.php?id='.$cat0['id'].'">'.$cat0['name'].'</a>';
}
if($cat['name'])$catn = '»<a href="index.php?id='.$cat['id'].'">'.$cat['name'].'</a>';;
echo $div4.'<a href="./">Категории</a>'.$put.$catn.'';
echo '»<b>Добавление товара</b>'.$div9;
///////////////////////////////////////////////////
if (empty($act)){
echo ' К загрузке допускаются только архивы форматов <b>.rar</b> и <b>.zip</b><br>
<b>Перед загрузкой ознакомтесь с <a href="lic.php">Соглашением</a></b><br /><br />';
echo '<form action="upload.php?act=act&id='.$cat['id'].''.SID.'" method="post" enctype="multipart/form-data">';
echo '<label for="fuid">Загрузить файл (max. '.$set['scripts_size'].' мб)</label><br/>';
echo '<b>*</b>Файл:<br/>';
echo '<input type="file" name="userfile" /><br/>';
echo '<dl></dl>Добавить скрины: (jpg, jpeg, gif, png, bmp, wmf)<br>';
for ($i = 0; $i < 5; $i++) {
echo '<input name="scrinfile[]" type="file">';
if(isset($_POST['file['.$i.']']))echo '|Код для вставки: <input name="Name" type="text" value="'.$_POST['file['.$i.']'].'">';
echo '<br />';
}
echo '<br /><b>*</b>Имя:<br/><input type="text" name="name" value="" /><br/>';
echo '<b>*</b>Описание:<br/><textarea cols="'.$user['pole2'].'" rows="'.$user['pole1'].'" name="about"></textarea><br/>';
echo '<b>*</b>Цена (10 - 5000 рублей):<br/><input type="text" name="price" value="10" size="5" /><br/>';
echo '<b>*</b>Количество копий в продоже: (0-неограниченно)<br/><input type="text" name="kopii" value="0" size="5" /><br/>';
echo '<br /><input type="submit" class="ibutton" name="send" value="Добавить" /></form><br/>';
}else{
if(isset($_FILES['userfile']) && $_FILES['userfile']['error'] == 0) {
if(!checkExt($_FILES['userfile']['name'])) $err .= 'Запрещенный формат файла<br/>';
$fnames=$_FILES['userfile']['name']; //имя
$fname = strtolower($_FILES['userfile']['name']);
if ((preg_match("/.php/i", $fnames)) or (preg_match("/.pl/i", $fnames)) or ($fnames == ".htaccess")) {
$messs = '[b]'.$user['user'].'[/b] пытался выгрузить в магазин файл [b]'.$fname.'[/b]';
mysql_query ("INSERT INTO logs (log,msg,time) VALUES ('shell','$messs','$time')");
$err .= 'Файлы такого типа запрещены! ';
}
$ext2 = explode(".", $fname);
if (count($ext2) != 2) {
$messs = '[b]'.$user['user'].'[/b] пытался выгрузить в магазин файл [b]'.$fname.'[/b]';
mysql_query ("INSERT INTO logs (log,msg,time) VALUES ('shell','$messs','$time')");
echo '<br />Запрещены файлы не имеющие имени, расширения, или с двойным расширением.<br />';
include_once (H.'shaxty/foot.php');
}
if (strlen($fname) > 30) {
echo '<br />Длина названия файла не должна превышать 30 символов!<br />';
include_once (H.'shaxty/foot.php');
}
if (eregi("[^a-z0-9.()+_-]", $fname)) {
echo '<br />В названии файла "<b>' . $fname . '</b>" присутствуют недопустимые символы.<br />';
echo 'Разрешены только латинские символы, цифры и некоторые знаки ( .()+_- )<br />Запрещены пробелы.<br />';
include_once (H.'shaxty/foot.php');
}
if($_FILES['userfile']['size'] > 1024*1024*$set['scripts_size']) {
$err .= 'Размер файла превышает '.$set['scripts_size'].' Мб.';
}
$size = $_FILES['userfile']['size'];
$path = rand(00000, 99999).del(check(retrans($_FILES['userfile']['name'])));
if(file_exists('../tmp/temp/shop_files/'.base64_encode($path))) $err .= 'Файл уже существует';
if (empty($err)){
copy($_FILES['userfile']['tmp_name'], '../tmp/temp/shop_files/'.base64_encode($path));
}
} else {
$err .= 'Ошибка загрузки файла: '.$_FILES['userfile']['error'].'<br/>';
}
$about = check($_POST['about']);
$name = check($_POST['name']);
$price = check(intval($_POST['price']));
$kopii = check(intval($_POST['kopii']));
if ($price<10)$err .= 'Товар не должен быть дешевле 10 рублей<br />';
if ($price>5000)$err .= 'Товар не должен быть дороже 5000 рублей<br />';
//if ($kopii<1)$err .= 'Неверное число копий<br />';
if (strlen2($about)<5)$err .= 'Короткое описание!<br />';
if (strlen2($name)<5)$err .= 'Короткое название!<br />';
if (empty($err)){
$refid = $cat['id'];
$refer = $cat['refer'].$cat['name_lat']."|";
$query = mysql_query("INSERT INTO `shop_files` (`user_id`, `path`, `name`, `infolder`, `size` , `timeupload`, `about`, `price`, `kopii`, `tip`,`refid`, `refer`) VALUES ('$user[id]', '$path', '$name', '$infolder' , '$size' , '$time', '$about', '$price', '$kopii', 'file', '$refid', '$refer');");
chmod($path, 0644);
if ($query){
$usid_files = mysql_insert_id();
}else{ echo 'Ошибка загрузки!';
include_once (H.'shaxty/foot.php');
}
}else{ echo $err;
include_once (H.'shaxty/foot.php');
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
for($i=0; $i<count($_FILES['scrinfile']['name']); $i++)
{
if(empty($_FILES['scrinfile']['name'][$i])){
continue;
}
if(!checkExt2($_FILES['scrinfile']['name'][$i])) $err .= 'Запрещенный формат файла<br/>';
$fnames=$_FILES['scrinfile']['name'][$i]; //имя
$fname = strtolower($_FILES['scrinfile']['name'][$i]);
if ((preg_match("/.php/i", $fnames)) or (preg_match("/.pl/i", $fnames)) or ($fnames == ".htaccess")) {
$messs = '[b]'.$user['user'].'[/b] пытался выгрузить в магазин файл [b]'.$fname.'[/b]';
mysql_query ("INSERT INTO logs (log,msg,time) VALUES ('shell','$messs','$time')");
$err .= 'Файлы такого типа запрещены!';
}
$ext2 = explode(".", $fname);
if (count($ext2) != 2) {
$messs = '[b]'.$user['user'].'[/b] пытался выгрузить в магазин файл [b]'.$fname.'[/b]';
mysql_query ("INSERT INTO logs (log,msg,time) VALUES ('shell','$messs','$time')");
echo '<br />Запрещены файлы не имеющие имени, расширения, или с двойным расширением.<br />';
include_once (H.'shaxty/foot.php');
}
if (strlen($fname) > 30) {
echo '<br />Длина названия файла не должна превышать 30 символов!<br />';
include_once (H.'shaxty/foot.php');
}
if (eregi("[^a-z0-9.()+_-]", $fname)) {
echo '<br />В названии файла "<b>' . $fname . '</b>" присутствуют недопустимые символы.<br />';
echo 'Разрешены только латинские символы, цифры и некоторые знаки ( .()+_- )<br />Запрещены пробелы.<br />';
include_once (H.'shaxty/foot.php');
}
if($_FILES['scrinfile']['size'][$i] > 1024*1024*$set['scripts_size']) {
$err .= 'Размер файла превышает '.$set['scripts_size'].' Мб.';
}
$screen = rand(00000, 99999).del(check(retrans($_FILES['scrinfile']['name'][$i])));
if(file_exists('files_screen/'.$screen)) $err .= 'Файл уже существует';
if (empty($err)){
copy($_FILES['scrinfile']['tmp_name'][$i], 'files_screen/'.$screen);
mysql_query("INSERT INTO `shop_file_screen` (`file`, `screen`) VALUES ('$usid_files', '$screen');");
}else{ echo $err;
include_once (H.'shaxty/foot.php');
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
header ('Location: index.php?id='.$cat['id'].'&'.SID); exit;
}
echo "<br/>";
echo $div1.'<a href="./">Магазин</a>'.$div9;
include_once (H.'shaxty/foot.php');
?>