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

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

dervan
#7918 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);
					}
[/]