Vergleich inc/class_core.php - 1.8.0 - 1.8.24

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 14Zeile 14
	 *
* @var string
*/

	 *
* @var string
*/

	public $version = "1.8.0";

	public $version = "1.8.24";


/**
* The version code of MyBB we're running.
*
* @var integer
*/


/**
* The version code of MyBB we're running.
*
* @var integer
*/

	public $version_code = 1800;

	public $version_code = 1824;


/**
* The current working directory.


/**
* The current working directory.

Zeile 68Zeile 68
	/**
* Whether or not magic quotes are enabled.
*

	/**
* Whether or not magic quotes are enabled.
*

	 * @var unknown_type

	 * @var int

	 */
public $magicquotes = 0;


	 */
public $magicquotes = 0;


Zeile 89Zeile 89
	/**
* The request method that called this page.
*

	/**
* The request method that called this page.
*

	 * @var string.

	 * @var string

	 */
public $request_method = "";


	 */
public $request_method = "";


Zeile 99Zeile 99
	 * @var boolean
*/
public $safemode = false;

	 * @var boolean
*/
public $safemode = false;


/**


/**

	 * Loads templates directly from the master theme and disables the installer locked error
*
* @var boolean
*/
public $dev_mode = false;

	 * Loads templates directly from the master theme and disables the installer locked error
*
* @var boolean
*/
public $dev_mode = false;





	/**
* Variables that need to be clean.
*

	/**
* Variables that need to be clean.
*

Zeile 129Zeile 129
			"sortby", "order"
)
);

			"sortby", "order"
)
);


/**


/**

	 * Variables that are to be ignored from cleansing process
*
* @var array

	 * Variables that are to be ignored from cleansing process
*
* @var array

	 */

	 */

	public $ignore_clean_variables = array();

	public $ignore_clean_variables = array();


/**
* Using built in shutdown functionality provided by register_shutdown_function for < PHP 5?
*/
public $use_shutdown = true;

/**




/**
* Using built in shutdown functionality provided by register_shutdown_function for < PHP 5?
*
* @var bool
*/
public $use_shutdown = true;

/**

	 * Debug mode?

	 * Debug mode?

 
	 *
* @var bool

	 */
public $debug_mode = false;

	 */
public $debug_mode = false;


/**


/**

	 * Binary database fields need to be handled differently

	 * Binary database fields need to be handled differently

 
	 *
* @var array

	 */
public $binary_fields = array(
'adminlog' => array('ipaddress' => true),
'adminsessions' => array('ip' => true),
'maillogs' => array('ipaddress' => true),
'moderatorlog' => array('ipaddress' => true),

	 */
public $binary_fields = array(
'adminlog' => array('ipaddress' => true),
'adminsessions' => array('ip' => true),
'maillogs' => array('ipaddress' => true),
'moderatorlog' => array('ipaddress' => true),

 
		'pollvotes' => array('ipaddress' => true),

		'posts' => array('ipaddress' => true),
'privatemessages' => array('ipaddress' => true),
'searchlog' => array('ipaddress' => true),
'sessions' => array('ip' => true),
'threadratings' => array('ipaddress' => true),

		'posts' => array('ipaddress' => true),
'privatemessages' => array('ipaddress' => true),
'searchlog' => array('ipaddress' => true),
'sessions' => array('ip' => true),
'threadratings' => array('ipaddress' => true),

		'users' => array('regip' => true, 'lastip' => true)


		'users' => array('regip' => true, 'lastip' => true),
'spamlog' => array('ipaddress' => true),

	);

/**

	);

/**

Zeile 169Zeile 177
	 * @var datacache
*/
public $cache;

	 * @var datacache
*/
public $cache;


/**


/**

	 * The base URL to assets.
*
* @var string
*/
public $asset_url = null;

	 * The base URL to assets.
*
* @var string
*/
public $asset_url = null;

 
	/**
* String input constant for use with get_input().
*
* @see get_input
*/
const INPUT_STRING = 0;
/**
* Integer input constant for use with get_input().
*
* @see get_input
*/
const INPUT_INT = 1;
/**
* Array input constant for use with get_input().
*
* @see get_input
*/
const INPUT_ARRAY = 2;
/**
* Float input constant for use with get_input().
*
* @see get_input
*/
const INPUT_FLOAT = 3;
/**
* Boolean input constant for use with get_input().
*
* @see get_input
*/
const INPUT_BOOL = 4;


/**
* Constructor of class.


/**
* Constructor of class.

	 *
* @return MyBB

 
	 */
function __construct()
{

	 */
function __construct()
{

Zeile 188Zeile 224
		$protected = array("_GET", "_POST", "_SERVER", "_COOKIE", "_FILES", "_ENV", "GLOBALS");
foreach($protected as $var)
{

		$protected = array("_GET", "_POST", "_SERVER", "_COOKIE", "_FILES", "_ENV", "GLOBALS");
foreach($protected as $var)
{

			if(isset($_REQUEST[$var]) || isset($_FILES[$var]))

			if(isset($_POST[$var]) || isset($_GET[$var]) || isset($_COOKIE[$var]) || isset($_FILES[$var]))

			{
die("Hacking attempt");
}

			{
die("Hacking attempt");
}

Zeile 277Zeile 313
	/**
* Parses the incoming variables.
*

	/**
* Parses the incoming variables.
*

	 * @param array The array of incoming variables.

	 * @param array $array The array of incoming variables.

	 */
function parse_incoming($array)
{

	 */
function parse_incoming($array)
{

Zeile 299Zeile 335
	function parse_cookies()
{
if(!is_array($_COOKIE))

	function parse_cookies()
{
if(!is_array($_COOKIE))

		{
return;
}

$prefix_length = strlen($this->settings['cookieprefix']);


		{
return;
}

$prefix_length = strlen($this->settings['cookieprefix']);


		foreach($_COOKIE as $key => $val)
{
if($prefix_length && substr($key, 0, $prefix_length) == $this->settings['cookieprefix'])

		foreach($_COOKIE as $key => $val)
{
if($prefix_length && substr($key, 0, $prefix_length) == $this->settings['cookieprefix'])

Zeile 317Zeile 353
				{
unset($this->cookies[$key]);
}

				{
unset($this->cookies[$key]);
}

			}


			}


			if(empty($this->cookies[$key]))
{
$this->cookies[$key] = $val;

			if(empty($this->cookies[$key]))
{
$this->cookies[$key] = $val;

			}
}
}

			}
}
}


/**
* Strips slashes out of a given array.
*


/**
* Strips slashes out of a given array.
*

	 * @param array The array to strip.

	 * @param array $array The array to strip.

	 */
function strip_slashes_array(&$array)

	 */
function strip_slashes_array(&$array)

	{

	{

		foreach($array as $key => $val)
{
if(is_array($array[$key]))

		foreach($array as $key => $val)
{
if(is_array($array[$key]))

Zeile 345Zeile 381
			}
}
}

			}
}
}





	/**
* Unsets globals from a specific array.
*

	/**
* Unsets globals from a specific array.
*

	 * @param array The array to unset from.

	 * @param array $array The array to unset from.

	 */
function unset_globals($array)
{

	 */
function unset_globals($array)
{

Zeile 359Zeile 395
		}

foreach(array_keys($array) as $key)

		}

foreach(array_keys($array) as $key)

		{

		{

			unset($GLOBALS[$key]);
unset($GLOBALS[$key]); // Double unset to circumvent the zend_hash_del_key_or_index hole in PHP <4.4.3 and <5.1.4
}

			unset($GLOBALS[$key]);
unset($GLOBALS[$key]); // Double unset to circumvent the zend_hash_del_key_or_index hole in PHP <4.4.3 and <5.1.4
}

Zeile 372Zeile 408
	function clean_input()
{
foreach($this->clean_variables as $type => $variables)

	function clean_input()
{
foreach($this->clean_variables as $type => $variables)

		{

		{

			foreach($variables as $var)
{
// If this variable is in the ignored array, skip and move to next.
if(in_array($var, $this->ignore_clean_variables))
{
continue;

			foreach($variables as $var)
{
// If this variable is in the ignored array, skip and move to next.
if(in_array($var, $this->ignore_clean_variables))
{
continue;

				}

				}


if(isset($this->input[$var]))
{
switch($type)
{
case "int":


if(isset($this->input[$var]))
{
switch($type)
{
case "int":

							$this->input[$var] = $this->get_input($var, 1);

							$this->input[$var] = $this->get_input($var, MyBB::INPUT_INT);

							break;
case "a-z":
$this->input[$var] = preg_replace("#[^a-z\.\-_]#i", "", $this->get_input($var));

							break;
case "a-z":
$this->input[$var] = preg_replace("#[^a-z\.\-_]#i", "", $this->get_input($var));

Zeile 404Zeile 440
	/**
* Checks the input data type before usage.
*

	/**
* Checks the input data type before usage.
*

	 * @param string Variable name ($mybb->input)
* @param Data type (0/Default=String, 1=Integer, 2=Array)
* @param Checked data


	 * @param string $name Variable name ($mybb->input)
* @param int $type The type of the variable to get. Should be one of MyBB::INPUT_INT, MyBB::INPUT_ARRAY or MyBB::INPUT_STRING.
*
* @return int|float|array|string Checked data. Type depending on $type

	 */

	 */

	function get_input($name, $type=0)

	function get_input($name, $type = MyBB::INPUT_STRING)

	{
switch($type)
{

	{
switch($type)
{

			case 2:

			case MyBB::INPUT_ARRAY:

				if(!isset($this->input[$name]) || !is_array($this->input[$name]))
{
return array();

				if(!isset($this->input[$name]) || !is_array($this->input[$name]))
{
return array();

				}
return $this->input[$name];
case 1:







				}
return $this->input[$name];
case MyBB::INPUT_INT:
if(!isset($this->input[$name]) || !is_numeric($this->input[$name]))
{
return 0;
}
return (int)$this->input[$name];
case MyBB::INPUT_FLOAT:

				if(!isset($this->input[$name]) || !is_numeric($this->input[$name]))
{

				if(!isset($this->input[$name]) || !is_numeric($this->input[$name]))
{

					return 0;







					return 0.0;
}
return (float)$this->input[$name];
case MyBB::INPUT_BOOL:
if(!isset($this->input[$name]) || !is_scalar($this->input[$name]))
{
return false;

				}

				}

				return (int)$this->input[$name];

				return (bool)$this->input[$name];

			default:
if(!isset($this->input[$name]) || !is_scalar($this->input[$name]))
{

			default:
if(!isset($this->input[$name]) || !is_scalar($this->input[$name]))
{

Zeile 453Zeile 502
				$path = substr($path, 2);
}


				$path = substr($path, 2);
}


			$base_path = '';

 
			if($use_cdn && $this->settings['usecdn'] && !empty($this->settings['cdnurl']))
{
$base_path = rtrim($this->settings['cdnurl'], '/');

			if($use_cdn && $this->settings['usecdn'] && !empty($this->settings['cdnurl']))
{
$base_path = rtrim($this->settings['cdnurl'], '/');

Zeile 481Zeile 529
	/**
* Triggers a generic error.
*

	/**
* Triggers a generic error.
*

	 * @param string The error code.

	 * @param string $code The error code.

	 */
function trigger_generic_error($code)
{

	 */
function trigger_generic_error($code)
{

Zeile 506Zeile 554
				$error_code = MYBB_NOT_UPGRADED;
break;
case "sql_load_error":

				$error_code = MYBB_NOT_UPGRADED;
break;
case "sql_load_error":

				$message = "MyBB was unable to load the SQL extension. Please contact the MyBB Group for support. <a href=\"http://www.mybb.com\">MyBB Website</a>";

				$message = "MyBB was unable to load the SQL extension. Please contact the MyBB Group for support. <a href=\"https://mybb.com\">MyBB Website</a>";

				$error_code = MYBB_SQL_LOAD_ERROR;
break;
case "apc_load_error":
$message = "APC needs to be configured with PHP to use the APC cache support.";

				$error_code = MYBB_SQL_LOAD_ERROR;
break;
case "apc_load_error":
$message = "APC needs to be configured with PHP to use the APC cache support.";

 
				$error_code = MYBB_CACHEHANDLER_LOAD_ERROR;
break;
case "apcu_load_error":
$message = "APCu needs to be configured with PHP to use the APCu cache support.";

				$error_code = MYBB_CACHEHANDLER_LOAD_ERROR;
break;
case "eaccelerator_load_error":
$message = "eAccelerator needs to be configured with PHP to use the eAccelerator cache support.";

				$error_code = MYBB_CACHEHANDLER_LOAD_ERROR;
break;
case "eaccelerator_load_error":
$message = "eAccelerator needs to be configured with PHP to use the eAccelerator cache support.";

				$error_code = MYBB_CACHEHANDLER_LOAD_ERROR;
break;

				$error_code = MYBB_CACHEHANDLER_LOAD_ERROR;
break;

			case "memcache_load_error":
$message = "Your server does not have memcache support enabled.";

			case "memcache_load_error":
$message = "Your server does not have memcache support enabled.";

				$error_code = MYBB_CACHEHANDLER_LOAD_ERROR;

				$error_code = MYBB_CACHEHANDLER_LOAD_ERROR;

				break;
case "memcached_load_error":
$message = "Your server does not have memcached support enabled.";

				break;
case "memcached_load_error":
$message = "Your server does not have memcached support enabled.";

				$error_code = MYBB_CACHEHANDLER_LOAD_ERROR;

				$error_code = MYBB_CACHEHANDLER_LOAD_ERROR;

				break;
case "xcache_load_error":
$message = "Xcache needs to be configured with PHP to use the Xcache cache support.";

				break;
case "xcache_load_error":
$message = "Xcache needs to be configured with PHP to use the Xcache cache support.";

 
				$error_code = MYBB_CACHEHANDLER_LOAD_ERROR;
break;
case "redis_load_error":
$message = "Your server does not have redis support enabled.";

				$error_code = MYBB_CACHEHANDLER_LOAD_ERROR;
break;
default:

				$error_code = MYBB_CACHEHANDLER_LOAD_ERROR;
break;
default:

				$message = "MyBB has experienced an internal error. Please contact the MyBB Group for support. <a href=\"http://www.mybb.com\">MyBB Website</a>";

				$message = "MyBB has experienced an internal error. Please contact the MyBB Group for support. <a href=\"https://mybb.com\">MyBB Website</a>";

				$error_code = MYBB_GENERAL;
}
$error_handler->trigger($message, $error_code);

				$error_code = MYBB_GENERAL;
}
$error_handler->trigger($message, $error_code);

Zeile 551Zeile 607
 */

$grouppermignore = array("gid", "type", "title", "description", "namestyle", "usertitle", "stars", "starimage", "image");

 */

$grouppermignore = array("gid", "type", "title", "description", "namestyle", "usertitle", "stars", "starimage", "image");

$groupzerogreater = array("pmquota", "maxpmrecipients", "maxreputationsday", "attachquota", "maxemails", "maxwarningsday", "maxposts", "edittimelimit", "canusesigxposts", "maxreputationsperthread", "emailfloodtime");

$groupzerogreater = array("pmquota", "maxpmrecipients", "maxreputationsday", "attachquota", "maxemails", "maxposts", "edittimelimit", "maxreputationsperuser", "maxreputationsperthread", "emailfloodtime");

$displaygroupfields = array("title", "description", "namestyle", "usertitle", "stars", "starimage", "image");

// These are fields in the usergroups table that are also forum permission specific.

$displaygroupfields = array("title", "description", "namestyle", "usertitle", "stars", "starimage", "image");

// These are fields in the usergroups table that are also forum permission specific.

Zeile 567Zeile 623
	'candeleteposts',
'candeletethreads',
'caneditattachments',

	'candeleteposts',
'candeletethreads',
'caneditattachments',

 
	'canviewdeletionnotice',

	'modposts',
'modthreads',
'modattachments',

	'modposts',
'modthreads',
'modattachments',