Forums / National / Russian / Тех. поддержка / Бета-впечатления v.0.0.2

<<<1...5...891011

Тема обсуждения багов

Trustmaster
#151 2009-02-12 21:09
Ребят, у меня человеческая просьба: давайте поменьше эмоций и флейма. Уважайте себя и своё время, а также мнение собеседника.

Sergey, Cotonti к cookies относится гораздо более ревностно, чем Seditio. Поэтому правильно заполнить домен и путь - не каприз, а необходимость. Кто считает, что это блажь ленивых программистов, того в ближайшем будущем ждет кара в виде всё возрастающих по популярности CSRF-атак.

sprintf() подлежит замене, и в первую очередь в голове Киландора, который слишком привык к этой функции. И надо бы тикет оформить по этому поводу.

Судя по всему, проблемы sprintf() связаны только с некоторыми специфическими моментами - в частности растягивание по ширине. У нас ничего такого не используется, так что с отставкой sprintf() повременим.

# Sergey : Решил поискать раздел bugs, как через облоко тегов влетел вот так:
http://www.cotonti.com/plug.php?e=tags&a=forums&t=bugs
и получил
2009-02-10 12:26
Fatal error : SQL error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND tag_area = 'forums'' at line 1
Никто эту ошибку не игнорировал. Она была добавлена в раздел Bugs и изучается. Пока проблему не обнаружили, потому что она работает исключительно для тэга "bugs" (если изменить хоть одну букву, то ошибка уже не возникает) и исключительно на этом сайте.
May the Source be with you!
This post was edited by Trustmaster (2009-02-13 05:00, 15 years ago)
Asmo
#152 2009-02-13 05:37
Asmo, что скажешь - будем исправлять найденный тобою баг перестановкой sed_file_check() после проверки, или есть другие мысли? Если будем, может тогда я поправлю код - ты не против?
Конечно надо фиксить, только не пойму почему ты у меня об этом спрашиваешь.
Вчера проверял, баг полностью фиксится перестановкой проверки
$fcheck = sed_file_check($u_tmp_name, $u_name, $f_extension);
if($fcheck == 1)
{
под
if (is_uploaded_file($u_tmp_name) && $u_size>0 && $u_size<($maxfile*1024) && $f_extension_ok && ($pfs_totalsize+$u_size)<$maxtotal*1024   )
{
esclkm
#153 2009-02-13 05:39
у меня на сайте она появилась для слова cotonti/ но насколько я понял она возникла после того как я удалил новость где было это слово котонти.
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Trustmaster
#154 2009-02-13 06:29
Asmo, уже сделано, и в самом лучшем виде :)

esclkm, это наталкивает на подозрение о том, что некорректно удалились связи с тэгами при удалении статьи. Надо будет проверить догадку.
May the Source be with you!
dervan
#155 2009-02-13 08:03
# Asmo : Конечно надо фиксить, только не пойму почему ты у меня об этом спрашиваешь.
И правда, чё это я... (c)корова :)

# Asmo : Вчера проверял, баг полностью фиксится перестановкой проверки
Ещё одно соображение появилось, после общения в топике PFS Problem, там у человека что-то странное творится (возможно этот самый баг с подменой сообщения об ошибке - но не факт, файл на котором сбоит весит всего 800 kb). Последний скриншот там красноречивый - максимальный размер файла 2000 Gb. А вот какой код в system/core/pfs/pfs.inc.php:
	$maxfile = $row['grp_pfs_maxfile'];
и затем та самая проверка с этим $maxfile. Т.е. можно в админке поставить максимальный размер файла, превышающий настройки сервера - и опять начнётся цирк с конями. Поэтому $maxfile надо получать так:
	$ini_maxfile = ini_min(ini_get(upload_max_filesize), ini_get(post_max_size), ini_get(memory_limit));
	$maxfile = min($row['grp_pfs_maxfile'], $ini_maxfile);
Здесь функцища ini_min() - условная запись, там возможны сокращения для байтовых значений.
При этом ещё и от
$disp_upload .= "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".($maxfile*1024)."\" />";
будет больше толка.

Хорошо бы и в админке после установки максимального размера файла сразу уменьшать его, если он ставится больше чем настройки хоста - так нагляднее, сразу будет виден реальный максимум. Надо такое?

Готов всё это доделать.
Trustmaster
#156 2009-02-13 20:50
Полностью согласен и одобряю.
May the Source be with you!
NovoKain
#157 2009-02-14 01:50
По поводу смайлов в markitup.
- СМАЙЛИКИ → Смайлы
- При нажитии на кнопку закрыть в редакторе ставится 2 лишних пробела (Google Chrome 1.0.154.48)
Trustmaster
#158 2009-02-14 04:21
Это в какой версии движка? В других браузерах тоже добавляет?
May the Source be with you!
NovoKain
#159 2009-02-14 05:31
Последняя в транке которая лежит. В других браузерах та же ситуация.

Ошибка следующая: если смайл содержит код «\» то редактор его режет
This post was edited by NovoKain (2009-02-14 06:03, 15 years ago)
Trustmaster
#160 2009-02-14 08:07
Пробелы устранил. Что до \, то т.к. set.js является настоящим JavaScript-файлом, то необходимо соблюдать правила экранирования, т.е. в set.js смайл :\ должен выглядеть так:
{
	name: "backslash",
	code: ":\\",
	file: "backslash.gif",
	prio: 10,
	lang: smileL.backslash
}
При этом вставится смайл с одим слешем и парсер его правильно обработает.
May the Source be with you!
dervan
#161 2009-02-14 09:27
Исправления, связанные с максимальным размером файла, загружаемого посетителем на хост.


В system/functions.php добавить функцищу
/**
 * Returns maximum size for uploaded file, in KB (allowed in php.ini, and may be allowed in .htaccess)
 *
 * @return int
 */
function sed_get_uploadmax()
{
	static $par_a = array('upload_max_filesize', 'post_max_size', 'memory_limit',);
	static $opt_a = array('G' => 1073741824, 'M' => 1048576, 'K' => 1024,);
	$val_a = array();
	foreach ($par_a as $par)
	{
		$val = ini_get($par);
		$opt = strtoupper($val[strlen($val) - 1]);
		$val_a[] = isset($opt_a[$opt]) ? $val * $opt_a[$opt] : (int)$val;
	}
	return floor(min($val_a) / 1024); // KB
}


В system/core/pfs/pfs.inc.php найти строку
	$maxfile = $row['grp_pfs_maxfile'];
и заменить
	$maxfile = min($row['grp_pfs_maxfile'], sed_get_uploadmax());


В system/core/admin/admin.users.inc.php найти строку
	$nmaxsingle = sed_import('nmaxsingle','P','INT');
и заменить
	$nmaxsingle = min(sed_import('nmaxsingle','P','INT'), sed_get_uploadmax());
Там же найти строку
		$rmaxfile = sed_import('rmaxfile','P','INT');
и заменить
		$rmaxfile = min(sed_import('rmaxfile','P','INT'), sed_get_uploadmax());


Administration panel / Configuration / Users:
IMHO неплохо бы ограничить максимальный размер файла для аватара, сигнатуры и фото, а то там тоже можно ввести огромный размер.
Для этого в system/core/admin/admin.config.inc.php найти строку
		 			$cfg_value = trim(sed_import($cfg_name, 'P', 'NOC'));
и добавить после неё
					if ('users' == $p && ('av_maxsize' == $cfg_name || 'sig_maxsize' == $cfg_name || 'ph_maxsize' == $cfg_name))
					{
						$cfg_value = min($cfg_value, sed_get_uploadmax() * 1024);
					}
[/]

<<<1...5...891011