Vergleich inc/functions_upload.php - 1.00 - 1.17

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 6Zeile 6
 * Website: http://www.mybboard.com
* License: http://www.mybboard.com/eula.html
*

 * Website: http://www.mybboard.com
* License: http://www.mybboard.com/eula.html
*

 * $Id$

 * $Id: functions_upload.php 1009 2005-12-21 18:53:48Z dennis $

 */

function remove_attachment($pid, $posthash, $aid)
{
global $db, $mybb;

 */

function remove_attachment($pid, $posthash, $aid)
{
global $db, $mybb;

	$query = $db->query("SELECT * FROM ".TABLE_PREFIX."attachments WHERE aid='$aid' AND (posthash='$posthash' OR (pid='$pid' AND pid!='0'))");
$attachment = $db->fetch_array($query);











	$aid = intval($aid);
$posthash = addslashes($posthash);
if($posthash != "" && !$pid)
{
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."attachments WHERE aid='$aid' AND posthash='$posthash'");
$attachment = $db->fetch_array($query);
}
else
{
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."attachments WHERE aid='$aid' AND pid='$pid'");
$attachment = $db->fetch_array($query);
}

	$db->query("DELETE FROM ".TABLE_PREFIX."attachments WHERE aid='".$attachment['aid']."'");
@unlink($mybb->settings['uploadspath']."/".$attachment['attachname']);
if($attachment['thumbnail'])
{
@unlink($mybb->settings['uploadspath']."/".$attachment['thumbnail']);

	$db->query("DELETE FROM ".TABLE_PREFIX."attachments WHERE aid='".$attachment['aid']."'");
@unlink($mybb->settings['uploadspath']."/".$attachment['attachname']);
if($attachment['thumbnail'])
{
@unlink($mybb->settings['uploadspath']."/".$attachment['thumbnail']);

	}

	}

}

function remove_attachments($pid, $posthash="")
{
global $db, $mybb;

}

function remove_attachments($pid, $posthash="")
{
global $db, $mybb;

	$query = $db->query("SELECT * FROM ".TABLE_PREFIX."attachments WHERE posthash='$posthash' OR (pid='$pid' AND pid!='0')");









	$posthash = addslashes($posthash);
if($posthash != "" && !$pid)
{
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."attachments WHERE posthash='$posthash'");
}
else
{
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."attachments WHERE pid='$pid'");
}

	while($attachment = $db->fetch_array($query))
{
$db->query("DELETE FROM ".TABLE_PREFIX."attachments WHERE aid='".$attachment['aid']."'");

	while($attachment = $db->fetch_array($query))
{
$db->query("DELETE FROM ".TABLE_PREFIX."attachments WHERE aid='".$attachment['aid']."'");

Zeile 45Zeile 63
	{
while($file = @readdir($dir))
{

	{
while($file = @readdir($dir))
{

			if(preg_match("#avatar_".$uid."#", $file) && is_file($mybb->settings['avataruploadpath']."/".$file) && $file != $exclude)

			if(preg_match("#avatar_".$uid."\.#", $file) && is_file($mybb->settings['avataruploadpath']."/".$file) && $file != $exclude)

			{
@unlink($mybb->settings['avataruploadpath']."/".$file);
}

			{
@unlink($mybb->settings['avataruploadpath']."/".$file);
}

Zeile 60Zeile 78
	global $db, $mybb, $lang, $_FILES;
$avatar = $_FILES['avatarupload'];
if(!is_uploaded_file($avatar['tmp_name']))

	global $db, $mybb, $lang, $_FILES;
$avatar = $_FILES['avatarupload'];
if(!is_uploaded_file($avatar['tmp_name']))

	{
$ret['error'] = $lang->error_uploadfailed;
return $ret;

	{
$ret['error'] = $lang->error_uploadfailed;
return $ret;

	}

// Check we have a valid extension
$ext = getextention(strtolower($avatar['name']));

	}

// Check we have a valid extension
$ext = getextention(strtolower($avatar['name']));

	if(!preg_match("#[gif|jpg|jpeg|jpe|bmp|png]$#i", $ext)) {

	if(!preg_match("#(gif|jpg|jpeg|jpe|bmp|png)$#i", $ext)) {

		$ret['error'] = $lang->error_avatartype;

		$ret['error'] = $lang->error_avatartype;

		return $ret;
}

		return $ret;
}


// Next check the file size
if($avatar['size'] > ($mybb->settings['avatarsize']*1024) && $mybb->settings['avatarsize'] > 0)


// Next check the file size
if($avatar['size'] > ($mybb->settings['avatarsize']*1024) && $mybb->settings['avatarsize'] > 0)

Zeile 81Zeile 99

$filename = "avatar_".$mybb->user['uid'].".".$ext;
$file = upload_file($avatar, $mybb->settings['avataruploadpath'], $filename);


$filename = "avatar_".$mybb->user['uid'].".".$ext;
$file = upload_file($avatar, $mybb->settings['avataruploadpath'], $filename);

	if($file['error'])
{
$ret['error'] = $lang->error_uploadfailed;
return $ret;

	if($file['error'])
{
$ret['error'] = $lang->error_uploadfailed;
return $ret;

	}

// Lets just double check that it exists

	}

// Lets just double check that it exists

Zeile 92Zeile 110
	{
$ret['error'] = $lang->error_uploadfailed;
return $ret;

	{
$ret['error'] = $lang->error_uploadfailed;
return $ret;

	}






































	}

// Check if this is a valid image or not
$img_dimensions = @getimagesize($mybb->settings['avataruploadpath']."/".$filename);

// Check a list of known MIME types to establish what kind of avatar we're uploading
switch(strtolower($avatar['type']))
{
case "image/gif":
$img_type = 1;
break;
case "image/jpeg":
case "image/x-jpeg":
case "image/pjpeg":
$img_type = 2;
break;
case "image/png":
case "image/x-png":
$img_type = 3;
break;
default:
$img_type = 0;
}

// Check if the uploaded file type matches the correct image type (returned by getimagesize)
if($img_dimensions[2] != $img_type || $img_type == 0)
{
@unlink($mybb->settings['avataruploadpath']."/".$filename);
$ret['error'] = $lang->error_uploadfailed;
return $ret;
}

if(!is_array($img_dimensions))
{
$ret['error'] = $lang->error_uploadfailed;
return $ret;
}


	// If we've got this far check dimensions

	// If we've got this far check dimensions

	if(preg_match("#gif|jpg|jpeg|jpe|bmp|png#i", $ext) && $mybb->settings['maxavatardims'] != "")

	if(preg_match("#(gif|jpg|jpeg|jpe|bmp|png)$#i", $ext) && $mybb->settings['maxavatardims'] != "")

	{

	{

		list($width, $height) = @getimagesize($mybb->settings['avataruploadpath']."/".$filename);

 
		list($maxwidth, $maxheight) = @explode("x", $mybb->settings['maxavatardims']);

		list($maxwidth, $maxheight) = @explode("x", $mybb->settings['maxavatardims']);

		if(($maxwidth && $width > $maxwidth) || ($maxheight && $height > $maxheight))

		if(($maxwidth && $img_dimensions[0] > $maxwidth) || ($maxheight && $img_dimensions[1] > $maxheight))

		{
$ret['error'] = sprintf($lang->error_avatartoobig, $maxwidth, $maxheight);
@unlink($mybb->settings['avataruploadpath']."/".$filename);

		{
$ret['error'] = sprintf($lang->error_avatartoobig, $maxwidth, $maxheight);
@unlink($mybb->settings['avataruploadpath']."/".$filename);

Zeile 109Zeile 162

// Everything is okay so lets delete old avatars for this user
remove_avatars($mybb->user['uid'], $filename);


// Everything is okay so lets delete old avatars for this user
remove_avatars($mybb->user['uid'], $filename);





	$ret['avatar'] = $mybb->settings['avataruploadpath']."/".$filename;
return $ret;
}

	$ret['avatar'] = $mybb->settings['avataruploadpath']."/".$filename;
return $ret;
}

Zeile 119Zeile 172
	global $db, $theme, $templates, $posthash, $pid, $tid, $forum, $mybb, $lang;

$posthash = addslashes($mybb->input['posthash']);

	global $db, $theme, $templates, $posthash, $pid, $tid, $forum, $mybb, $lang;

$posthash = addslashes($mybb->input['posthash']);

 
	$attachment['name'] = addslashes($attachment['name']);


if(!is_uploaded_file($attachment['tmp_name']))
{


if(!is_uploaded_file($attachment['tmp_name']))
{

Zeile 152Zeile 206
			$friendlyquota = getfriendlysize($mybb->usergroup['attachquota']*1000);
$ret['error'] = sprintf($lang->error_reachedattachquota, $friendlyquota);
return $ret;

			$friendlyquota = getfriendlysize($mybb->usergroup['attachquota']*1000);
$ret['error'] = sprintf($lang->error_reachedattachquota, $friendlyquota);
return $ret;

		}
}


		}
}


	// Check if an attachment with this name is already in the post
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."attachments WHERE filename='".$attachment['name']."' AND (posthash='$posthash' OR (pid='$pid' AND pid!='0'))");
$prevattach = $db->fetch_array($query);

	// Check if an attachment with this name is already in the post
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."attachments WHERE filename='".$attachment['name']."' AND (posthash='$posthash' OR (pid='$pid' AND pid!='0'))");
$prevattach = $db->fetch_array($query);

Zeile 179Zeile 233
		$ret['error'] = $lang->error_uploadfailed;
return $ret;
}

		$ret['error'] = $lang->error_uploadfailed;
return $ret;
}

 

// Generate the array for the insert_query
$attacharray = array(
"pid" => $pid,
"posthash" => $posthash,
"uid" => $mybb->user['uid'],
"filename" => addslashes($file['original_filename']),
"filetype" => $file['type'],
"filesize" => $file['size'],
"attachname" => $filename,
"downloads" => 0,
);


// Alls well that ends well? Lets generate a thumbnail (if image) and insert it all in to the database
if($ext == "gif" || $ext == "png" || $ext == "jpg" || $ext == "jpeg" || $ext == "jpe")


// Alls well that ends well? Lets generate a thumbnail (if image) and insert it all in to the database
if($ext == "gif" || $ext == "png" || $ext == "jpg" || $ext == "jpeg" || $ext == "jpe")

	{





























	{
// Check a list of known MIME types to establish what kind of image we're uploading
switch(strtolower($file['type']))
{
case "image/gif":
$img_type = 1;
break;
case "image/jpeg":
case "image/x-jpeg":
case "image/pjpeg":
$img_type = 2;
break;
case "image/png":
case "image/x-png":
$img_type = 3;
break;
default:
$img_type = 0;
}

// Check if the uploaded file type matches the correct image type (returned by getimagesize)
$img_dimensions = @getimagesize($mybb->settings['uploadspath']."/".$filename);
if($img_dimensions[2] != $img_type)
{
@unlink($mybb->settings['uploadspath']."/".$filename);
$ret['error'] = $lang->error_uploadfailed;
return $ret;
}


		require "functions_image.php";
$thumbname = str_replace(".attach", "_thumb.$ext", $filename);
$thumbnail = generate_thumbnail($mybb->settings['uploadspath']."/".$filename, $mybb->settings['uploadspath'], $thumbname, $mybb->settings['attachthumbh'], $mybb->settings['attachthumbw']);
if($thumbnail['filename'])

		require "functions_image.php";
$thumbname = str_replace(".attach", "_thumb.$ext", $filename);
$thumbnail = generate_thumbnail($mybb->settings['uploadspath']."/".$filename, $mybb->settings['uploadspath'], $thumbname, $mybb->settings['attachthumbh'], $mybb->settings['attachthumbw']);
if($thumbnail['filename'])

		{
$thumbadd = ",thumbnail";
$thumbadd2 = ",'".$thumbnail['filename']."'";

		{
$attacharray['thumbnail'] = $thumbnail['filename'];


		}
elseif($thumbnail['code'] == 4)
{

		}
elseif($thumbnail['code'] == 4)
{

			$thumbadd = ",thumbnail";
$thumbadd2 = ",'SMALL'";

			$attacharray['thumbnail'] = "SMALL";


		}
}
if($forum['modattachments'] == "yes" && $mybb->usergroup['cancp'] != "yes")

		}
}
if($forum['modattachments'] == "yes" && $mybb->usergroup['cancp'] != "yes")

	{
$attvisible = 0;

	{
$attacharray['visible'] = 0;

	}
else
{

	}
else
{

		$attvisible = 1;

		$attacharray['visible'] = 1;

	}

	}

	$db->query("INSERT INTO ".TABLE_PREFIX."attachments (aid,pid,posthash,uid,filename,filetype,filesize,attachname,downloads,visible$thumbadd) VALUES ('','$pid','$posthash','".$mybb->user['uid']."','".$file['original_filename']."','".$file['type']."','".$file['size']."','$filename','0','$attvisible'$thumbadd2)");



	
$db->insert_query(TABLE_PREFIX."attachments", $attacharray);


	$aid = $db->insert_id();
$ret['aid'] = $aid;
return $ret;

	$aid = $db->insert_id();
$ret['aid'] = $aid;
return $ret;