Vergleich inc/functions.php - 1.4.1 - 1.4.3

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 6Zeile 6
 * Website: http://www.mybboard.net
* License: http://www.mybboard.net/about/license
*

 * Website: http://www.mybboard.net
* License: http://www.mybboard.net/about/license
*

 * $Id: functions.php 4116 2008-08-15 15:37:11Z ybwzrd $

 * $Id: functions.php 4182 2008-09-07 18:05:30Z Tikitiki $

 */

/**

 */

/**

Zeile 765Zeile 765
		echo "<script type=\"text/javascript\">\n";
if($message != "")
{

		echo "<script type=\"text/javascript\">\n";
if($message != "")
{

			echo "alert('{$message}');\n";

			echo 'alert("'.addslashes($message).'");';

		}
$url = str_replace("#", "&#", $url);
$url = htmlspecialchars_decode($url);
$url = str_replace(array("\n","\r",";"), "", $url);

		}
$url = str_replace("#", "&#", $url);
$url = htmlspecialchars_decode($url);
$url = str_replace(array("\n","\r",";"), "", $url);

		echo "window.location = '{$url}';\n";

		echo 'window.location = "'.addslashes($url).'";'."\n";

		echo "</script>\n";
exit;
}

		echo "</script>\n";
exit;
}

Zeile 3080Zeile 3080
	if($mybb->settings['nocacheheaders'] == 1 && $mybb->settings['standardheaders'] != 1)
{
header("Expires: Sat, 1 Jan 2000 01:00:00 GMT");

	if($mybb->settings['nocacheheaders'] == 1 && $mybb->settings['standardheaders'] != 1)
{
header("Expires: Sat, 1 Jan 2000 01:00:00 GMT");

		header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");

		header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");

		header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
}

		header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
}

Zeile 3318Zeile 3318
	}
else
{

	}
else
{

		$query = $db->simple_select("users", "additionalgroups, usergroup", "uid='{$uid}'");

		$query = $db->simple_select("users", "additionalgroups, usergroup", "uid='".intval($uid)."'");

		$user = $db->fetch_array($query);
}


		$user = $db->fetch_array($query);
}


Zeile 3341Zeile 3341
		}
}


		}
}


	$db->update_query("users", array('additionalgroups' => $groupslist), "uid='$uid'");

	$db->update_query("users", array('additionalgroups' => $groupslist), "uid='".intval($uid)."'");

}

/**

}

/**

Zeile 3360Zeile 3360
	}
else
{

	}
else
{

		$query = $db->simple_select("users", "*", "uid='{$uid}'");

		$query = $db->simple_select("users", "*", "uid='".intval($uid)."'");

		$user = $db->fetch_array($query);
}

$usergroups = "";

		$user = $db->fetch_array($query);
}

$usergroups = "";

 
	$groupslist = "";

	$usergroups = $user['additionalgroups'].",";

$groups = explode(",", $user['additionalgroups']);

	$usergroups = $user['additionalgroups'].",";

$groups = explode(",", $user['additionalgroups']);

Zeile 3382Zeile 3383
		}
}


		}
}


 
	$dispupdate = "";

	if($leavegroup == $user['displaygroup'])
{
$dispupdate = ", displaygroup=usergroup";

	if($leavegroup == $user['displaygroup'])
{
$dispupdate = ", displaygroup=usergroup";

Zeile 3390Zeile 3392
	$db->write_query("
UPDATE ".TABLE_PREFIX."users
SET additionalgroups='$groupslist' $dispupdate

	$db->write_query("
UPDATE ".TABLE_PREFIX."users
SET additionalgroups='$groupslist' $dispupdate

		WHERE uid='$uid'

		WHERE uid='".intval($uid)."'

	");

$cache->update_moderators();

	");

$cache->update_moderators();

Zeile 3412Zeile 3414

if(!empty($_SERVER['PATH_INFO']))
{


if(!empty($_SERVER['PATH_INFO']))
{

		$location = $_SERVER['PATH_INFO'];

		$location = htmlspecialchars_uni($_SERVER['PATH_INFO']);

	}
elseif(!empty($_ENV['PATH_INFO']))
{

	}
elseif(!empty($_ENV['PATH_INFO']))
{

		$location = $_ENV['PATH_INFO'];

		$location = htmlspecialchars_uni($_ENV['PATH_INFO']);

	}
elseif(!empty($_ENV['PHP_SELF']))

	}
elseif(!empty($_ENV['PHP_SELF']))

	{
$location = $_ENV['PHP_SELF'];
}
else
{
$location = $_SERVER['PHP_SELF'];

	{
$location = htmlspecialchars_uni($_ENV['PHP_SELF']);
}
else
{
$location = htmlspecialchars_uni($_SERVER['PHP_SELF']);

	}

if($fields == true)

	}

if($fields == true)

Zeile 3432Zeile 3434
		global $mybb;

if(!is_array($ignore))

		global $mybb;

if(!is_array($ignore))

		{

		{

			$ignore = array($ignore);

			$ignore = array($ignore);

		}


		}


		$form_html = "";
$field_parts = explode('&', $field_parts);


		$form_html = "";
$field_parts = explode('&', $field_parts);


Zeile 3453Zeile 3455
		}

return array('location' => $location, 'form_html' => $form_html, 'form_method' => $mybb->request_method);

		}

return array('location' => $location, 'form_html' => $form_html, 'form_method' => $mybb->request_method);

	}

	}

	else
{
if(isset($_SERVER['QUERY_STRING']))
{

	else
{
if(isset($_SERVER['QUERY_STRING']))
{

			$location .= "?".$_SERVER['QUERY_STRING'];

			$location .= "?".htmlspecialchars_uni($_SERVER['QUERY_STRING']);

		}
else if(isset($_ENV['QUERY_STRING']))

		}
else if(isset($_ENV['QUERY_STRING']))

		{
$location = "?".$_ENV['QUERY_STRING'];

		{
$location .= "?".htmlspecialchars_uni($_ENV['QUERY_STRING']);

		}

if((isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == "POST") || (isset($_ENV['REQUEST_METHOD']) && $_ENV['REQUEST_METHOD'] == "POST"))

		}

if((isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == "POST") || (isset($_ENV['REQUEST_METHOD']) && $_ENV['REQUEST_METHOD'] == "POST"))

Zeile 3473Zeile 3475
			{
if(isset($_POST[$var]))
{

			{
if(isset($_POST[$var]))
{

					$addloc[] = $var.'='.$_POST[$var];

					$addloc[] = urlencode($var).'='.urlencode($_POST[$var]);

				}
}


				}
}


Zeile 3482Zeile 3484
				$location .= "?".implode("&", $addloc);
}
}

				$location .= "?".implode("&", $addloc);
}
}

	

 
	
return $location;

	
return $location;

	}
}


	}
}


/**
* Build a theme selection menu
*

/**
* Build a theme selection menu
*

Zeile 3517Zeile 3518
		while($theme = $db->fetch_array($query))
{
$tcache[$theme['pid']][$theme['tid']] = $theme;

		while($theme = $db->fetch_array($query))
{
$tcache[$theme['pid']][$theme['tid']] = $theme;

		}

		}

	}

if(is_array($tcache[$tid]))

	}

if(is_array($tcache[$tid]))

Zeile 3545Zeile 3546
						$is_allowed = true;
break;
}

						$is_allowed = true;
break;
}

				}
}

				}
}


// Show theme if allowed, or if override is on
if($is_allowed || $theme['allowedgroups'] == "all" || $theme['allowedgroups'] == "" || $usergroup_override == 1)


// Show theme if allowed, or if override is on
if($is_allowed || $theme['allowedgroups'] == "all" || $theme['allowedgroups'] == "" || $usergroup_override == 1)

Zeile 3554Zeile 3555
				if($theme['tid'] == $selected)
{
$sel = " selected=\"selected\"";

				if($theme['tid'] == $selected)
{
$sel = " selected=\"selected\"";

				}

				}


if($theme['pid'] != 0)
{
$themeselect .= "<option value=\"".$theme['tid']."\"$sel>".$depth.$theme['name']."</option>";
$depthit = $depth."--";


if($theme['pid'] != 0)
{
$themeselect .= "<option value=\"".$theme['tid']."\"$sel>".$depth.$theme['name']."</option>";
$depthit = $depth."--";

				}


				}


				if(array_key_exists($theme['tid'], $tcache))
{
build_theme_select($name, $selected, $theme['tid'], $depthit, $usergroup_override);
}
}
}

				if(array_key_exists($theme['tid'], $tcache))
{
build_theme_select($name, $selected, $theme['tid'], $depthit, $usergroup_override);
}
}
}

	}


	}


	if($tid == 1)
{
$themeselect .= "</select>";
}

return $themeselect;

	if($tid == 1)
{
$themeselect .= "</select>";
}

return $themeselect;

}

}


/**
* Custom function for htmlspecialchars which takes in to account unicode


/**
* Custom function for htmlspecialchars which takes in to account unicode

 *

 *

 * @param string The string to format
* @return string The string with htmlspecialchars applied
*/

 * @param string The string to format
* @return string The string with htmlspecialchars applied
*/

Zeile 3602Zeile 3603
function my_number_format($number)
{
global $mybb;

function my_number_format($number)
{
global $mybb;





	if($number == "-")

	if($number == "-")

	{

	{

		return $number;

		return $number;

	}

if(is_int($number))
{
return number_format($number, 0, $mybb->settings['decpoint'], $mybb->settings['thousandssep']);
}

	}

if(is_int($number))
{
return number_format($number, 0, $mybb->settings['decpoint'], $mybb->settings['thousandssep']);
}

	else
{
$parts = explode('.', $number);

	else
{
$parts = explode('.', $number);





		if(isset($parts[1]))
{
$decimals = my_strlen($parts[1]);

		if(isset($parts[1]))
{
$decimals = my_strlen($parts[1]);

		}

		}

		else
{
$decimals = 0;

		else
{
$decimals = 0;

Zeile 3642Zeile 3643
	if($mybb->settings['wordwrap'] > 0)
{
if($mybb->config['db_encoding'] == "utf8" && !preg_match("#[\x80-\xFF]#", $message))

	if($mybb->settings['wordwrap'] > 0)
{
if($mybb->config['db_encoding'] == "utf8" && !preg_match("#[\x80-\xFF]#", $message))

		{

		{

			$message = preg_replace("#(?>[^\s&/<>\"\\-\.\[\]]{{$mybb->settings['wordwrap']}})#u", "$0 ", $message);
}
else

			$message = preg_replace("#(?>[^\s&/<>\"\\-\.\[\]]{{$mybb->settings['wordwrap']}})#u", "$0 ", $message);
}
else

Zeile 3703Zeile 3704
	return array(
31,
($in % 4 == 0 && ($in % 100 > 0 || $in % 400 == 0) ? 29 : 28),

	return array(
31,
($in % 4 == 0 && ($in % 100 > 0 || $in % 400 == 0) ? 29 : 28),

		31,

		31,

		30,
31,
30,

		30,
31,
30,

Zeile 3774Zeile 3775
		my_substr($by, 2),
$by,
($bd[0] == 0 ? my_substr($bd, 1) : $bd),

		my_substr($by, 2),
$by,
($bd[0] == 0 ? my_substr($bd, 1) : $bd),

		($db == 1 || $db == 21 || $db == 31 ? 'st' : ($db == 2 || $db == 22 ? 'nd' : ($db == 3 || $db == 23 ? 'rd' : 'th'))),

		($bd == 1 || $bd == 21 || $bd == 31 ? 'st' : ($bd == 2 || $bd == 22 ? 'nd' : ($bd == 3 || $bd == 23 ? 'rd' : 'th'))),

		$bdays[$wd],
$bmonth[$bm-1],
);

		$bdays[$wd],
$bmonth[$bm-1],
);

Zeile 3794Zeile 3795
	if(!$bday[2])
{
return;

	if(!$bday[2])
{
return;

	}


	}


	list($day, $month, $year) = explode("-", my_date("j-n-Y", TIME_NOW, 0, 0));

$age = $year-$bday[2];

	list($day, $month, $year) = explode("-", my_date("j-n-Y", TIME_NOW, 0, 0));

$age = $year-$bday[2];

Zeile 3855Zeile 3856
        $string = str_replace(chr(0xCA), "", $string);
}
$string = trim($string);

        $string = str_replace(chr(0xCA), "", $string);
}
$string = trim($string);





    if(function_exists("mb_strlen"))
{
$string_length = mb_strlen($string);

    if(function_exists("mb_strlen"))
{
$string_length = mb_strlen($string);

Zeile 4586Zeile 4587

/**
* Rebuilds settings.php


/**
* Rebuilds settings.php

 *

 *

 */
function rebuild_settings()
{

 */
function rebuild_settings()
{

Zeile 4630Zeile 4631
 */
function build_highlight_array($terms)
{

 */
function build_highlight_array($terms)
{

	$terms = htmlspecialchars_uni($terms);


 
	// Strip out any characters that shouldn't be included
$bad_characters = array(
"(",

	// Strip out any characters that shouldn't be included
$bad_characters = array(
"(",

Zeile 4648Zeile 4647
		$inquote = false;
$terms = explode("\"", $terms);
foreach($terms as $phrase)

		$inquote = false;
$terms = explode("\"", $terms);
foreach($terms as $phrase)

		{


		{
$phrase = htmlspecialchars_uni($phrase);

			if($phrase != "")
{
if($inquote)

			if($phrase != "")
{
if($inquote)

Zeile 4678Zeile 4678
	// Otherwise just a simple search query with no phrases
else
{

	// Otherwise just a simple search query with no phrases
else
{

 
		$terms = htmlspecialchars_uni($terms);

		$split_words = preg_split("#\s{1,}#", $terms, -1);
if(!is_array($split_words))
{

		$split_words = preg_split("#\s{1,}#", $terms, -1);
if(!is_array($split_words))
{

Zeile 4708Zeile 4709
	
// Special boolean operators should be stripped
if($word == "" || $word == "or" || $word == "not" || $word == "and")

	
// Special boolean operators should be stripped
if($word == "" || $word == "or" || $word == "not" || $word == "and")

		{

		{

			continue;
}


			continue;
}


Zeile 4799Zeile 4800
 * Check if a specific email address has been banned.
*
* @param string The email address.

 * Check if a specific email address has been banned.
*
* @param string The email address.

 * @param boolean True if the 'last used' dateline should be updated if a match is found.

 * @param boolean True if the 'last used' dateline should be updated if a match is found.

 * @return boolean True if banned, false if not banned
*/
function is_banned_email($email, $update_lastuse=false)

 * @return boolean True if banned, false if not banned
*/
function is_banned_email($email, $update_lastuse=false)

Zeile 4830Zeile 4831
 * @param string The IP address.
* @param boolean True if the 'last used' dateline should be updated if a match is found.
* @return boolean True if banned, false if not banned.

 * @param string The IP address.
* @param boolean True if the 'last used' dateline should be updated if a match is found.
* @return boolean True if banned, false if not banned.

 */

 */

function is_banned_ip($ip_address, $update_lastuse=false)
{
global $db, $cache;

function is_banned_ip($ip_address, $update_lastuse=false)
{
global $db, $cache;

Zeile 4922Zeile 4923
		{
$label = '';
if($timezone != 0)

		{
$label = '';
if($timezone != 0)

			{

			{

				$label = $timezone;
if($timezone > 0)
{

				$label = $timezone;
if($timezone > 0)
{

Zeile 4952Zeile 4953
 *
* @param string The URL of the remote file
* @return string The remote file contents.

 *
* @param string The URL of the remote file
* @return string The remote file contents.

 */

 */

function fetch_remote_file($url)
{
if(function_exists("curl_init"))

function fetch_remote_file($url)
{
if(function_exists("curl_init"))

Zeile 5074Zeile 5075
			if($in_escape)
{
$strings[] = trim($string);

			if($in_escape)
{
$strings[] = trim($string);

			}

			}

			else
{
$split_strings = explode($delimeter, $string);

			else
{
$split_strings = explode($delimeter, $string);

Zeile 5086Zeile 5087
			}
}
$in_escape = !$in_escape;

			}
}
$in_escape = !$in_escape;

	}

	}

	if(!count($strings))
{
return $original;

	if(!count($strings))
{
return $original;

Zeile 5105Zeile 5106
	$ip_bits = explode(".", $ip);

if($ip == "*") return array(ip2long(0), ip2long(255));

	$ip_bits = explode(".", $ip);

if($ip == "*") return array(ip2long(0), ip2long(255));





	if(strpos($ip, ".*") === false)
{
$ip = str_replace("*", "", $ip);

	if(strpos($ip, ".*") === false)
{
$ip = str_replace("*", "", $ip);

Zeile 5114Zeile 5115
			return ip2long($ip);
}
else

			return ip2long($ip);
}
else

		{

		{

			return array(ip2long($ip.".0"), ip2long($ip.".255"));

			return array(ip2long($ip.".0"), ip2long($ip.".255"));

		}
}

		}
}

	// Wildcard based IP provided
else
{
foreach($ip_bits as $piece)
{
if($piece == "*")

	// Wildcard based IP provided
else
{
foreach($ip_bits as $piece)
{
if($piece == "*")

			{

			{

				return array(ip2long($ip_string."0"), ip2long($ip_string."255"));
}
else
{
$ip_string .= $piece.".";
}

				return array(ip2long($ip_string."0"), ip2long($ip_string."255"));
}
else
{
$ip_string .= $piece.".";
}

		}
}
}

/**

		}
}
}

/**

 * Fetch a list of ban times for a user account.
*
* @return array Array of ban times

 * Fetch a list of ban times for a user account.
*
* @return array Array of ban times

Zeile 5143Zeile 5144
function fetch_ban_times()
{
global $plugins, $lang;

function fetch_ban_times()
{
global $plugins, $lang;





	// Days-Months-Years
$ban_times = array(
"1-0-0" => "1 {$lang->day}",

	// Days-Months-Years
$ban_times = array(
"1-0-0" => "1 {$lang->day}",

Zeile 5166Zeile 5167
	);

$plugins->run_hooks_by_ref("functions_fetch_ban_times", $ban_times);

	);

$plugins->run_hooks_by_ref("functions_fetch_ban_times", $ban_times);





	$ban_times['---'] = $lang->permanent;
return $ban_times;

	$ban_times['---'] = $lang->permanent;
return $ban_times;

}

}


/**
* Format a ban length in to a UNIX timestamp.


/**
* Format a ban length in to a UNIX timestamp.

 *

 *

 * @param string The ban length string
* @param int The optional UNIX timestamp, if 0, current time is used.
* @return int The UNIX timestamp when the ban will be lifted

 * @param string The ban length string
* @param int The optional UNIX timestamp, if 0, current time is used.
* @return int The UNIX timestamp when the ban will be lifted

Zeile 5195Zeile 5196

/**
* Expire old warnings in the database.


/**
* Expire old warnings in the database.

 *
*/

 *
*/

function expire_warnings()
{
global $db;

function expire_warnings()
{
global $db;

Zeile 5226Zeile 5227

/**
* Unicode function for php function chr()


/**
* Unicode function for php function chr()

 *

 *

 * @param string The character
* @return mixed The unicoded chr()
*/

 * @param string The character
* @return mixed The unicoded chr()
*/

Zeile 5239Zeile 5240
    elseif($c <= 0x7FF)
{
return chr(0xC0 | $c >> 6) . chr(0x80 | $c & 0x3F);

    elseif($c <= 0x7FF)
{
return chr(0xC0 | $c >> 6) . chr(0x80 | $c & 0x3F);

    }

    }

    elseif($c <= 0xFFFF)
{
return chr(0xE0 | $c >> 12) . chr(0x80 | $c >> 6 & 0x3F)

    elseif($c <= 0xFFFF)
{
return chr(0xE0 | $c >> 12) . chr(0x80 | $c >> 6 & 0x3F)

                                    . chr(0x80 | $c & 0x3F);

                                    . chr(0x80 | $c & 0x3F);

    }
elseif($c <= 0x10FFFF)

    }
elseif($c <= 0x10FFFF)

    {

    {

        return chr(0xF0 | $c >> 18) . chr(0x80 | $c >> 12 & 0x3F)
. chr(0x80 | $c >> 6 & 0x3F)
. chr(0x80 | $c & 0x3F);

        return chr(0xF0 | $c >> 18) . chr(0x80 | $c >> 12 & 0x3F)
. chr(0x80 | $c >> 6 & 0x3F)
. chr(0x80 | $c & 0x3F);

    }

    }

    else
{
return false;

    else
{
return false;

    }
}

/**

    }
}

/**

 * Custom chmod function to fix problems with hosts who's server configurations screw up umasks
*
* @param string The file to chmod

 * Custom chmod function to fix problems with hosts who's server configurations screw up umasks
*
* @param string The file to chmod

Zeile 5318Zeile 5319
    }

return @unlink($path);

    }

return @unlink($path);

 
}

/**
* Counts the number of subforums in a array([pid][disporder][fid]) starting from the pid
*
* @param array The array of forums
* @return integer The number of sub forums
*/
function subforums_count($array)
{
$count = 0;
foreach($array as $array2)
{
$count += count($array2);
}

return $count;

}

?>

}

?>