Seite 2 von 2

Verfasst: 09.06.2004 15:23
von QCO
Also wenn du erstmal erkennen willst, ob die Datei wirklich der Dateityp ist, dessen Dateiendung sie trägt, kannst du folgendes machen:

[ÖFFNE includes/usercp_avatar.php]
[FINDE]

Code: Alles auswählen

function check_image_type(&$type, &$error, &$error_msg)
{
	global $lang;

	switch( $type )
	{
		case 'jpeg':
		case 'pjpeg':
		case 'jpg':
			return '.jpg';
			break;
		case 'gif':
			return '.gif';
			break;
		case 'png':
			return '.png';
			break;
		default:
			$error = true;
			$error_msg = (!empty($error_msg)) ? $error_msg . '<br />' . $lang['Avatar_filetype'] : $lang['Avatar_filetype'];
			break;
	}

	return false;
}
[ERSETZE MIT]

Code: Alles auswählen

function check_image_type(&$type, &$gd_type, &$error, &$error_msg)
{
	global $lang;

	switch( $type )
	{
		case 'jpeg':
		case 'pjpeg':
		case 'jpg':
			if ( $gd_type == 2 )
			{
				return '.jpg';
			}
			break;
		case 'gif':
			if ( $gd_type == 1 )
			{
				return '.gif';
			}
			break;
		case 'png':
			if ( $gd_type == 3 )
			{
				return '.png';
			}
			break;
	}

	$error = true;
	$error_msg = (!empty($error_msg)) ? $error_msg . '<br />' . $lang['Avatar_filetype'] : $lang['Avatar_filetype'];

	return false;
}
[FINDE (2x)]

Code: Alles auswählen

			list($width, $height) = @getimagesize($tmp_filename);
[ERSETZE MIT]

Code: Alles auswählen

			list($width, $height, $gfx_type) = @getimagesize($tmp_filename);
[FINDE]

Code: Alles auswählen

	if ( !($imgtype = check_image_type($avatar_filetype, $error, $error_msg)) )
[ERSETZE MIT]

Code: Alles auswählen

	if ( !($imgtype = check_image_type($avatar_filetype, $gfx_type, $error, $error_msg)) )
Ich habs jetzt nur ganz kurz getestet, aber es scheint zu funktionieren...

Verfasst: 09.06.2004 15:44
von musashi
Danke schon mal für Deine Mühe :)
QCO hat geschrieben: [FINDE (2x)]

Code: Alles auswählen

			list($width, $height) = @getimagesize($tmp_filename);
[ERSETZE MIT]

Code: Alles auswählen

			list($width, $height, $gfx_type) = @getimagesize($tmp_filename);
Gibts bei meinem unmodifiziertem Testforum nur 1x
QCO hat geschrieben: Ich habs jetzt nur ganz kurz getestet, aber es scheint zu funktionieren...
Das Prinzip ein Avatar zu blocken scheint in der Tat zu funktionieren - nur blockt er alles was ich vom Rechner hochladen möchte.