Перейти к публикации

Рекомендованные сообщения

Это что за загрузка файлов такая, которая "кушает все ресурсы"?

Загрузка файлов ничего не кушает, кроме ресурсов файловой системы.

А она работает на порядок выше, чем думает и работает даже тысяча пользователей.

Я ещё не видел сайты, которые "висели" из-за загрузки.

Да и разделения ресурсов в ПХП впринципе нет.

Ссылка на сообщение
Поделиться на других сайтах
;) Просто я заметил, что при загрузке файла по http протоколу, т.е. перекачка с сервера на сервер, сайт не откликается у меня....
Ссылка на сообщение
Поделиться на других сайтах

Ну... Может оно и не так, но я это вижу именно в таком варианте. Могу даже дать ссылочку потестить :) Если кому интересно в асю или в googleTalk стучитесь

Ссылка на сообщение
Поделиться на других сайтах

Ну... Может оно и не так, но я это вижу именно в таком варианте. Могу даже дать ссылочку потестить :) Если кому интересно в асю или в googleTalk стучитесь

Может это тупо просто занимается твой канал интернета закачкой файла))

Ссылка на сообщение
Поделиться на других сайтах

Может.. Но опять не вяжется один момент. Я же перекачиваю с сайта на сайт. Причём тут мой интернет?

Ссылка на сообщение
Поделиться на других сайтах

Итак, всё необходимое сделал. А именно теперь можно и редактировать полноценно и добавлять и удалять файлы :) Теперь очень хочу сделать четыре вещи

1. Оптимизировать код (убать или поправить его до такой степени, чтобы модуль работал быстро).

2. Добавить возможность вывода файлов через RSS

3. Отправка файлов на E-mail.

4. Вывод похожих файлов (как новости).

Может кто поможет (можно даже за денежку)?

Ссылка на сообщение
Поделиться на других сайтах

Столкнулся с проблемой. При добавлении комментария мы используем функцию word_filter(),которая подгружается из parse.class.php. Для 6,5 я поменял путь, но теперь при поппытке добавить коммент выкидывает ошибку

Fatal error: Call to undefined function word_filter() in F:\Web\DiskS\fmnokia_test\engine\modules\files.php on line 1669

Мы ведь подгружаем файл parse.class.php, в чём же дело. Если же "выдрать" функцию word_filter() из самого файла и вставить в files.php то всё работает. Почему же так косячит?

В файле modules/files.php часть кода

//################################################################################

####################################

//		Функция добавление коментариев

//################################################################################

####################################

function postcomment() {

global $tpl, $member_id, $user_group, $db, $config, $filesConfig, $is_logged, $lang;

include ENGINE_DIR.'/classes/parse.class.php';

$parse = new ParseFilter();

$parse->safe_mode = true;

$id = intval ($_POST['id']);

$fileid = intval ($_POST['fileid']);

$autor = $db->safesql($parse->process(trim($_POST['name'])));

$email = $db->safesql($parse->process(trim($_POST['mail'])));

$stop = array ();

if ($filesConfig['allow_comments'] == "0"){

$stop[] = "Комментарии запрещены";

$check_status = TRUE;

}

if (!$is_logged AND $filesConfig['allowed_guest_com'] == "0"){

$stop[] = "Добавление комментариев для незарегистрированных посетителей запрещено! <br>Уважаемый посетитель вы вошли на сайт как незарегистрированный пользователь. <br>Мы рекомендуем вам зарегистрироваться либо войти на сайт под своим именем.";

$check_status = TRUE;

}

if ($is_logged)

{

	$autor = $member_id['name'];

	$email = $member_id['email'];

}

if ($is_logged){

$is_register = 1;}

else{

$is_register = 0;}

$time = date ("Y-m-d H:i:s", (time()+$config['date_adjust']*60));


if ($_SERVER['HTTP_X_FORWARDED_FOR']) $_IP = $db->safesql($_SERVER['HTTP_X_FORWARDED_FOR']); else $_IP = $db->safesql($_SERVER['REMOTE_ADDR']);


if ($config['allow_comments_wysiwyg'] != "yes")

		$comments = $db->safesql($parse->BB_Parse($parse->process($_POST['comments']), false));

	else{

		$parse->ParseFilter(Array('div', 'a', 'span', 'p', 'br'), Array(), 0, 1);

		$comments = $db->safesql($parse->BB_Parse($parse->process($_POST['comments'])));

	}

	$comments = word_filter($comments);

	if (!$user_group[$member_id['user_group']]['captcha']) {

		$_SESSION['sec_code_session'] = 1;

		$_POST['sec_code'] = 1;

	}

	if( strlen($autor) > 50){

		$stop[] = $lang['news_err_1'];

		$check_status = TRUE;

	}


	if( strlen($email) > 50 AND !$is_logged){

		$stop[] = $lang['news_err_2'];

		$check_status = TRUE;

	}

	if(!$fileid){

		$stop[] = "Данный файл не существует";

		$check_status = TRUE;


	}

	if( strlen($comments) > 3000){

		$stop[] = $lang['news_err_3'];

		$check_status = TRUE;

	}

	if ($_POST['sec_code'] != $_SESSION['sec_code_session'] OR !$_SESSION['sec_code_session']) {

		$stop[] = "Введен неверный код безопасности";

		$check_status = TRUE;

		 }

		 if ($comments ==''){

		$stop[] = $lang['news_err_11'];

		$check_status = TRUE;

	}

if($member_id['user_group'] > 2 AND intval ($config['flood_time']) AND $check_status != TRUE){

		if(flooder($_IP) == TRUE ){

		$stop[] = "Включена защита от флуда!!!<br>Вы сможете добавить повторно комментарий для данного файла только через {$config['flood_time']} секунд";

		$check_status = TRUE;

		}

}

$row = $db->super_query("SELECT id, approve from " . PREFIX . "_downloads WHERE id='".intval($fileid)."'");

if (!$row['id'] OR $row['approve'] ==1) {

	$stop[] = "Добавление комментариев для этого файла запрещено.";

	$check_status = TRUE;

	}

	if (!$is_logged and $check_status != TRUE) {

	$row = $db->query("SELECT name from " . PREFIX . "_users where LOWER(name) = '".strtolower($autor)."'");

	if ($db->num_rows($row) > 0) {

	 $stop[] = $lang['news_err_7'];

	 $check_status = TRUE;

	 }

	}

	if (empty($autor) and $check_status != TRUE) {

		$stop[] = $lang['news_err_9'];

		$check_status = TRUE;

	}

	if($email == " " or $email == ""){ $email = ""; }

	else{ $ok = FALSE;

		if(preg_match("/^[\.A-z0-9_\-]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $email)) $ok = TRUE;

		elseif($config['allow_url_instead_mail'] == "yes" and preg_match("/((http(s?):\/\/)|(www\.))([\w\.]+)([\/\w+\.-?]+)/", $email)) $ok = TRUE;

		elseif($config['allow_url_instead_mail'] != "yes"){

			  $stop[] = $lang['news_err_10'];

			  $check_status = TRUE;

		}

		else{

			  $stop[] = $lang['news_err_10'];

			  $check_status = TRUE;

		}

	}

	if(intval($config['auto_wrap']) > 1){

		$comments = preg_replace("#([^\s<>'\"/\.\\-\?&\n\r\%]{".intval($config['auto_wrap'])."})#i", "\\1<br />" ,$comments);

	}

	if ($check_status) {


			msgbox ($lang['all_err_1'], implode("<br />", $stop)."<br /><br /><a href=\"java script:history.go(-1)\">".$lang['all_prev']."</a>");


	} else {

	$_SESSION['sec_code_session'] = 0;

	$db->query("INSERT INTO ".PREFIX."_files_com SET id='$newid', post_id='$fileid', user_id='$member_id[user_id]', date='$time', autor='$autor', email='$email', text='$comments', ip='$_IP', is_register='$is_register'");



/////+1

$db->query("UPDATE " . PREFIX . "_downloads set comm_num=comm_num+1 where id ='$fileid'");

if ($is_logged) {

$db->query("UPDATE " . PREFIX . "_users set comm_num=comm_num+1 where user_id='$member_id[user_id]'");

}

if($config['flood_time'] != 0 and $config['flood_time'] != ""){

	 $time = time()+($config['date_adjust']*60);

	 $db->query("INSERT INTO " . PREFIX . "_flood (id, ip) values ('$time', '$_IP')");

	}

if ($config['allow_alt_url'] == "yes") {

$url ="/files/file$fileid.html#comment";

}

else {

$url ="/index.php?do=files&op=download&fileid=$fileid#comment";

}

@header ("Location: $url");

}

}//postcomment end

//################################################################################

####################################

//		Функция добавление коментариев  END

//################################################################################

####################################

Изменено пользователем Snake
Ссылка на сообщение
Поделиться на других сайтах

Snake, да странно конечно.

По коду - убери $tpl из global - он же не используется.

И ещё - функция по моему часто будет делать кучу лишних телодвижений.

К примеру, мы запретили комментировать файл гостям. В этом условии мы видим что гость пытается оставить комментарий

if (!$is_logged AND $filesConfig['allowed_guest_com'] == "0"
- всё, можно смело заканчивать работу функции и вывести мессагу об ошибке. Нет же - она у тебя продолжает работать и парсить почём зря исходные данные. Не понятно зачем... А проверка на то можно ли вообще к этому файлу оставлять комментарии всем проводится где-то посередине :) И ещё. Улыбнуло :)
if ($is_logged){

$is_register = 1;}

else{

$is_register = 0;}
Фактически ты создаёшь клона переменной $is_logged. потому как $is_logged и $is_register всегда равны друг другу. Вроде всё) Да кстати немного не по теме, но давно хотел спросить знающих людей... Зачем нам писать так:
$comments = preg_replace("#([^\s<>'\"/\.\\-\?&\n\r\%]{".intval($config['auto_wrap'])."})#i", "\\1<br />" ,$comments);
когда проще вот так:
$comments = wordwrap($comments, intval($config['auto_wrap']), "<br />");

у меня всё

Ссылка на сообщение
Поделиться на других сайтах

lifestar,

За сколько бы ты взялся "почистить" и потимизировать код модуля Files ? Мне нажно сделать модуль быстрым и с как можно меньшими запросами.

Ссылка на сообщение
Поделиться на других сайтах

Игрался с локалкой. Скопировал папку с сайтом для тестирования торого сайта вместе с моудлем 2.1. Какого же было мое удивление, когда "автокатегории" вывели список категорий и кол-во сайтов со старого сайта. Базы данных, естественно, разные, а в админке категории отсутствуют. Подскажите плз, куда модуль записал их?

Ссылка на сообщение
Поделиться на других сайтах

Господа, простите что вмешиваюсь :)

Могли бы утрочнить кое-что. Что за версия Модуля Files у вас используется? 1.5? Откуда скачать можно и есть ли дистрибутив для DLE 6.5?

Изменено пользователем Rebz
Ссылка на сообщение
Поделиться на других сайтах

1. Оптимизировать код (убать или поправить его до такой степени, чтобы модуль работал быстро).

2. Добавить возможность вывода файлов через RSS

В моем давно это все есть. Скоро напишу версию 2.0)

Ссылка на сообщение
Поделиться на других сайтах

ShVad,

У тебя же не на основе Files модуль делалася. А многим актуально именно на нём, т.к. прикинь сколько ссылко измениться перейдя на новый модуль.

Ссылка на сообщение
Поделиться на других сайтах

На днях запущу тестовую версию... потестите и если багов будет мало, то можно будет выпустить Files 2.3 оптимизированный для DLE 6.5.

Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте!

Перерыл кучу информации, весь яндекс, все возможные темы с mod files 2.0.

Проблема заключается в addfile, форма заполняется, файл отправляется, он выкладывается и всё нормально работает, но после отправки формы и надписи что пойдёт на рассмотрение, в шапке вылезает вот такое предупреждение:

Warning: move_uploaded_file(): Operation not permitted in /pub/home/имя_скрыл/htdocs/engine/modules/addfile.php on line 244 Warning: chmod(): Operation not permitted in /pub/home/имя_скрыл/htdocs/engine/modules/addfile.php on line 245
Открывая ругань, там кусок кода:
##================================Функция загрузки файла=========================================##

function do_upload($upload_dir) {

	global $file_name, $file_prefix;

	$temp_name = $_FILES['file_a']['tmp_name'];

	$file_path = $upload_dir.$file_prefix.$file_name;

if (is_uploaded_file($_FILES['file_a']['tmp_name'])){

move_uploaded_file($temp_name, $file_path); #строка 244

chmod ($file_path, 0666); #строка 245

}

}

##==============================================================================

=================##

Отметил строку 244 и 245... Знаю что права, но не пойму где их верно проставить, папка uploads и все в ней папки с правами 777, самое интересное что Денвер не ругается...

Data Life Engine 5.5

Изменено пользователем SNAKE-VLAD
Ссылка на сообщение
Поделиться на других сайтах

У тебя же не на основе Files модуль делалася. А многим актуально именно на нём, т.к. прикинь сколько ссылко измениться перейдя на новый модуль.

Кто сказал что на основе? Я бы сказал про мод филес(он мне не нравится, Я так и не понял зачем там файл вывода весит 90Кб??? В нем дублируются функции и лишнии куски кода от DLE).

Посмотри когда создан домен www.pocketx.ru - перед тем как его создать, Я написал архив файлов. Тогда еще про мод филес речи не шло...

Даже смешно получается), DLE Files сделан на основе mod files :lol:

Изменено пользователем ShVad
Ссылка на сообщение
Поделиться на других сайтах

Кто подскажет, функиця рейтинга где-то в движке прописана отдельно? Т.е. можно ли подключить рейтинг пользуясь кодом движка или писать заново?

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...