Example #1
0
	public function process($filepath, $files, $extension = 'gif png jpg jpeg', $filesize = false, $safe = true) {
		global $user, $config;

		if (!is_array($files)) {
			$files = request_var('files:' . $files);

			if ($files === false) return false;
		}

		if (isset($files['name']) && !is_array($files['name'])) {
			foreach ($files as $i => $row) {
				$files[$i] = array($row);
			}
		}

		$umask = umask(0);
		$files = $this->array_merge($files);

		if (!is_array($extension)) {
			$extension = w($extension);
		}

		if (!sizeof($files)) {
			$this->error[] = lang('files_no_files');
			return false;
		}

		if ($filesize === false) {
			$filesize = upload_maxsize();
		}

		foreach ($files as $i => $row) {
			if ($row['error']) {
				if ($row['error'] == 4) {
					unset($files[$i]);
				}

				continue;
			}

			$r = $this->_row($filepath, $row['name']);

			$r->size = $row['size'];
			$r->tmp = $row['tmp_name'];

			if ($safe && preg_match('/\.(cgi|pl|js|asp|php|html|htm|jsp|jar|exe|dll|bat)/', $r->name)) {
				$r->extension = 'txt';
			}

			if (!in_array($r->extension, $extension)) {
				$this->error[] = sprintf(lang('upload_invalid_ext'), $r->name);
				$r->error = 1;
				continue;
			}

			if ($r->size > $filesize) {
				$this->error[] = sprintf(lang('upload_too_big'), $r->name, ($filesize / 1048576));
				$r->error = 1;
				continue;
			}

			if (!@is_writable($filepath)) {
				$this->error[] = 'Reading error.';
				$r->error = 1;
				continue;
			}

			if (!@move_uploaded_file($r->tmp, $r->filepath)) {
				$this->error[] = sprintf(lang('upload_failed'), $r->name);
				$r->error = 1;
				continue;
			}

			_chmod($row['filepath'], $config['mask']);

			if (@filesize($r->filepath) > $filesize) {
				_rm($r->filepath);

				$this->error[] = sprintf(lang('upload_too_big'), $r->name, ($filesize / 1048576));
				$r->error = 1;
				continue;
			}

			$files[$i] = $r;
		}

		@umask($umask);
		return (count($files)) ? $files : false;
	}
Example #2
0
	protected function _distribute_home() {
		if ($this->submit) {
			$sql = 'SELECT COUNT(server_id) AS total
				FROM _servers';
			$servers = sql_field($sql, 'total', 0);
			
			require_once(XFS . 'core/upload.php');
			$upload = new upload();
			
			$f = $upload->process('./data/tmp/', request_var('files:batch', array('' => array())), w('jpg'), upload_maxsize());
			
			var_dump($f);
			exit;
		}
		
		return;
	}
Example #3
-1
function page_layout($page_title, $htmlpage, $custom_vars = false, $js_keepalive = true) {
	global $config, $user, $cache, $starttime, $template;

	//
	// gzip_compression
	//
	if (strstr($user->browser,'compatible') || strstr($user->browser,'Gecko')) {
		ob_start('ob_gzhandler');
	}

	monetize();

	// Get today items count
	$sql = 'SELECT COUNT(element) AS total
		FROM _members_unread
		WHERE user_id = ?';
	$today_count = sql_field(sql_filter($sql, $user->d('user_id')), 'total', 0);

	//
	// Send headers
	//
	header('Cache-Control: private, no-cache="set-cookie", pre-check=0, post-check=0');
	header('Expires: 0');
	header('Pragma: no-cache');

	//
	// Footer
	//
	$u_session = ($user->is('member')) ? 'out' : 'in';

	if (preg_match('#.*?my/confirm.*?#is', $user->d('session_page'))) {
		$user->d('session_page', '');
	}

	$common_vars = array(
		'PAGE_TITLE'    => lang($page_title, $page_title),
		'_SELF'         => _page(),

		'U_REGISTER'    => s_link('signup'),
		'U_SESSION'     => s_link('sign' . $u_session),
		'U_PROFILE'     => s_link('m', $user->d('username_base')),
		'U_EDITPROFILE' => s_link('my profile'),
		'U_PASSWORD'    => s_link('signr'),
		'U_DC'          => s_link('my dc'),

		'U_HOME'        => s_link(),
		'U_FAQ'         => s_link('faq'),
		'U_WHATS_NEW'   => s_link('today'),
		'U_ARTISTS'	    => s_link('a'),
		'U_AWARDS'      => s_link('awards'),
		'U_RADIO'       => s_link('radio'),
		'U_BROADCAST'   => s_link('broadcast'),
		'U_NEWS'        => s_link('news'),
		'U_EVENTS'      => s_link('events'),
		'U_FORUM'       => s_link('board'),
		'U_COMMUNITY'   => s_link('community'),
		'U_ALLIES'      => s_link('allies'),
		'U_TOS'         => s_link('tos'),
		'U_HELP'        => s_link('help'),
		'U_RSS_NEWS'    => s_link('rss', 'news'),
		'U_RSS_ARTISTS' => s_link('rss', 'artists'),
		'U_COMMENTS'    => s_link('comments'),
		'U_EMOTICONS'   => s_link('emoticons'),
		'U_ACP'         => (isset($template->vars['U_ACP'])) ? $template->vars['U_ACP'] : ($user->is('artist') || $user->is('mod') ? s_link('acp') : ''),

		'S_YEAR'        => date('Y'),
		'S_UPLOAD'      => upload_maxsize(),
		'S_GIT'         => $config['git_push_time'],
		'S_KEYWORDS'    => $config['meta_keys'],
		'S_DESCRIPTION' => $config['meta_desc'],
		'S_SERVER'      => '//' . $config['server_name'],
		'S_ASSETS'      => $config['assets_url'],
		'S_DIST'        => '/dist/',
		'S_SQL'         => ($user->d('is_founder')) ? sql_queries() . 'q | ' : '',
		'S_REDIRECT'    => $user->d('session_page'),
		'S_USERNAME'    => $user->d('username'),
		'S_MEMBER'      => $user->is('member'),
		'S_TODAY_COUNT' => (($today_count == 1) ? sprintf(lang('unread_item_count'), $today_count) : sprintf(lang('unread_items_count'), $today_count))
	);

	if ($custom_vars !== false) {
		$common_vars += $custom_vars;
	}

	$mtime = explode(' ', microtime());
	$common_vars['S_TIME'] = sprintf('%.2f', ($mtime[0] + $mtime[1] - $starttime));

	v_style($common_vars);

	$template->set_filenames(array(
		'body' => $htmlpage . '.htm')
	);
	$template->pparse('body');

	sql_close();
	exit;
}