Zeile 343 | Zeile 343 |
---|
{ if(isset($mybb->user['uid']) && $mybb->user['uid'] != 0 && array_key_exists("timezone", $mybb->user)) {
|
{ if(isset($mybb->user['uid']) && $mybb->user['uid'] != 0 && array_key_exists("timezone", $mybb->user)) {
|
$offset = $mybb->user['timezone'];
| $offset = (float)$mybb->user['timezone'];
|
$dstcorrection = $mybb->user['dst']; } elseif(defined("IN_ADMINCP")) {
|
$dstcorrection = $mybb->user['dst']; } elseif(defined("IN_ADMINCP")) {
|
$offset = $mybbadmin['timezone'];
| $offset = (float)$mybbadmin['timezone'];
|
$dstcorrection = $mybbadmin['dst']; } else {
|
$dstcorrection = $mybbadmin['dst']; } else {
|
$offset = $mybb->settings['timezoneoffset'];
| $offset = (float)$mybb->settings['timezoneoffset'];
|
$dstcorrection = $mybb->settings['dstcorrection']; }
| $dstcorrection = $mybb->settings['dstcorrection']; }
|
Zeile 598 | Zeile 598 |
---|
function verify_post_check($code, $silent=false) { global $lang;
|
function verify_post_check($code, $silent=false) { global $lang;
|
if(generate_post_check() != $code)
| if(generate_post_check() !== $code)
|
{ if($silent == true) {
| { if($silent == true) {
|
Zeile 865 | Zeile 865 |
---|
if($mybb->user['uid']) {
|
if($mybb->user['uid']) {
|
$lang->error_nopermission_user_username = $lang->sprintf($lang->error_nopermission_user_username, $mybb->user['username']);
| $lang->error_nopermission_user_username = $lang->sprintf($lang->error_nopermission_user_username, htmlspecialchars_uni($mybb->user['username']));
|
eval("\$errorpage = \"".$templates->get("error_nopermission_loggedin")."\";"); } else
| eval("\$errorpage = \"".$templates->get("error_nopermission_loggedin")."\";"); } else
|
Zeile 966 | Zeile 966 |
---|
run_shutdown();
|
run_shutdown();
|
if(my_substr($url, 0, 7) !== 'http://' && my_substr($url, 0, 8) !== 'https://' && my_substr($url, 0, 1) !== '/')
| if(!my_validate_url($url, true))
|
{ header("Location: {$mybb->settings['bburl']}/{$url}"); }
| { header("Location: {$mybb->settings['bburl']}/{$url}"); }
|
Zeile 1209 | Zeile 1209 |
---|
* Fetch the usergroup permissions for a specific group or series of groups combined * * @param int|string $gid A list of groups (Can be a single integer, or a list of groups separated by a comma)
|
* Fetch the usergroup permissions for a specific group or series of groups combined * * @param int|string $gid A list of groups (Can be a single integer, or a list of groups separated by a comma)
|
* @return array Array of permissions generated for the groups
| * @return array Array of permissions generated for the groups, containing also a list of comma-separated checked groups under 'all_usergroups' index
|
*/ function usergroup_permissions($gid=0) {
| */ function usergroup_permissions($gid=0) {
|
Zeile 1224 | Zeile 1224 |
---|
if(count($groups) == 1) {
|
if(count($groups) == 1) {
|
| $groupscache[$gid]['all_usergroups'] = $gid;
|
return $groupscache[$gid]; }
|
return $groupscache[$gid]; }
|
$usergroup = array();
| $usergroup = array(); $usergroup['all_usergroups'] = $gid;
|
foreach($groups as $gid) {
|
foreach($groups as $gid) {
|
if(trim($gid) == "" || !$groupscache[$gid]) {
| if(trim($gid) == "" || empty($groupscache[$gid])) {
|
continue; }
foreach($groupscache[$gid] as $perm => $access) { if(!in_array($perm, $grouppermignore))
|
continue; }
foreach($groupscache[$gid] as $perm => $access) { if(!in_array($perm, $grouppermignore))
|
{
| {
|
if(isset($usergroup[$perm])) { $permbit = $usergroup[$perm];
| if(isset($usergroup[$perm])) { $permbit = $usergroup[$perm];
|
Zeile 1265 | Zeile 1267 |
---|
}
return $usergroup;
|
}
return $usergroup;
|
}
| }
|
/** * Fetch the display group properties for a specific display group
| /** * Fetch the display group properties for a specific display group
|
Zeile 1329 | Zeile 1331 |
---|
}
$groupperms = $mybb->usergroup;
|
}
$groupperms = $mybb->usergroup;
|
} }
if(!is_array($forum_cache)) { $forum_cache = cache_forums();
if(!$forum_cache) { return false; }
| } }
if(!is_array($forum_cache)) { $forum_cache = cache_forums();
if(!$forum_cache) { return false; }
|
}
if(!is_array($fpermcache))
| }
if(!is_array($fpermcache))
|
Zeile 1367 | Zeile 1369 |
---|
return $cached_forum_permissions[$gid]; } }
|
return $cached_forum_permissions[$gid]; } }
|
|
|
/** * Fetches the permissions for a specific forum/group applying the inheritance scheme. * Called by forum_permissions()
| /** * Fetches the permissions for a specific forum/group applying the inheritance scheme. * Called by forum_permissions()
|
Zeile 1423 | Zeile 1425 |
---|
}
foreach($level_permissions as $permission => $access)
|
}
foreach($level_permissions as $permission => $access)
|
{
| {
|
if(empty($current_permissions[$permission]) || $access >= $current_permissions[$permission] || ($access == "yes" && $current_permissions[$permission] == "no")) { $current_permissions[$permission] = $access;
| if(empty($current_permissions[$permission]) || $access >= $current_permissions[$permission] || ($access == "yes" && $current_permissions[$permission] == "no")) { $current_permissions[$permission] = $access;
|
Zeile 1450 | Zeile 1452 |
---|
// Figure out if we can reply more than our own threads if($only_reply_own_threads == 0)
|
// Figure out if we can reply more than our own threads if($only_reply_own_threads == 0)
|
{
| {
|
$current_permissions["canonlyreplyownthreads"] = 0; }
| $current_permissions["canonlyreplyownthreads"] = 0; }
|
Zeile 1714 | Zeile 1716 |
---|
{ foreach($modcache as $modusers) {
|
{ foreach($modcache as $modusers) {
|
if(isset($modusers['users'][$uid]) && $modusers['users'][$uid]['mid'])
| if(isset($modusers['users'][$uid]) && $modusers['users'][$uid]['mid'] && (!$action || !empty($modusers['users'][$uid][$action])))
|
{ return true; }
|
{ return true; }
|
elseif(isset($user_perms['gid']) && isset($modusers['usergroups'][$user_perms['gid']]))
| $groups = explode(',', $user_perms['all_usergroups']);
foreach($groups as $group)
|
{
|
{
|
// Moderating usergroup return true;
| if(trim($group) != '' && isset($modusers['usergroups'][$group]) && (!$action || !empty($modusers['usergroups'][$group][$action]))) { return true; }
|
} } } return false; } else
|
} } } return false; } else
|
{
| {
|
$modperms = get_moderator_permissions($fid, $uid);
if(!$action && $modperms)
| $modperms = get_moderator_permissions($fid, $uid);
if(!$action && $modperms)
|
Zeile 1762 | Zeile 1769 |
---|
if(isset($mybb->input['icon'])) { $icon = $mybb->get_input('icon');
|
if(isset($mybb->input['icon'])) { $icon = $mybb->get_input('icon');
|
}
| }
|
$iconlist = ''; $no_icons_checked = " checked=\"checked\"";
| $iconlist = ''; $no_icons_checked = " checked=\"checked\"";
|
Zeile 1770 | Zeile 1777 |
---|
$posticons_cache = $cache->read("posticons"); $posticons = array(); foreach($posticons_cache as $posticon)
|
$posticons_cache = $cache->read("posticons"); $posticons = array(); foreach($posticons_cache as $posticon)
|
{
| {
|
$posticons[$posticon['name']] = $posticon; } krsort($posticons);
| $posticons[$posticon['name']] = $posticon; } krsort($posticons);
|
Zeile 1785 | Zeile 1792 |
---|
{ $checked = " checked=\"checked\""; $no_icons_checked = '';
|
{ $checked = " checked=\"checked\""; $no_icons_checked = '';
|
} else {
| } else {
|
$checked = ''; }
eval("\$iconlist .= \"".$templates->get("posticons_icon")."\";"); }
|
$checked = ''; }
eval("\$iconlist .= \"".$templates->get("posticons_icon")."\";"); }
|
eval("\$posticons = \"".$templates->get("posticons")."\";");
| if(!empty($iconlist)) { eval("\$posticons = \"".$templates->get("posticons")."\";"); } else { $posticons = ''; }
|
return $posticons; }
/** * MyBB setcookie() wrapper.
|
return $posticons; }
/** * MyBB setcookie() wrapper.
|
* * @param string $name The cookie identifier.
| * * @param string $name The cookie identifier.
|
* @param string $value The cookie value. * @param int|string $expires The timestamp of the expiry date. * @param boolean $httponly True if setting a HttpOnly cookie (supported by the majority of web browsers)
| * @param string $value The cookie value. * @param int|string $expires The timestamp of the expiry date. * @param boolean $httponly True if setting a HttpOnly cookie (supported by the majority of web browsers)
|
Zeile 1844 | Zeile 1858 |
---|
if(!empty($mybb->settings['cookiepath'])) { $cookie .= "; path={$mybb->settings['cookiepath']}";
|
if(!empty($mybb->settings['cookiepath'])) { $cookie .= "; path={$mybb->settings['cookiepath']}";
|
}
| }
|
if(!empty($mybb->settings['cookiedomain']))
|
if(!empty($mybb->settings['cookiedomain']))
|
{
| {
|
$cookie .= "; domain={$mybb->settings['cookiedomain']}"; }
|
$cookie .= "; domain={$mybb->settings['cookiedomain']}"; }
|
if($httponly == true)
| if($httponly == true) { $cookie .= "; HttpOnly"; }
if($mybb->settings['cookiesecureflag'])
|
{
|
{
|
$cookie .= "; HttpOnly";
| $cookie .= "; Secure";
|
}
$mybb->cookies[$name] = $value;
| }
$mybb->cookies[$name] = $value;
|
Zeile 1871 | Zeile 1890 |
---|
global $mybb;
$expires = -3600;
|
global $mybb;
$expires = -3600;
|
my_setcookie($name, "", $expires);
| my_setcookie($name, "", $expires);
|
unset($mybb->cookies[$name]); }
| unset($mybb->cookies[$name]); }
|
Zeile 1886 | Zeile 1905 |
---|
function my_get_array_cookie($name, $id) { global $mybb;
|
function my_get_array_cookie($name, $id) { global $mybb;
|
|
|
if(!isset($mybb->cookies['mybb'][$name]))
|
if(!isset($mybb->cookies['mybb'][$name]))
|
{
| {
|
return false;
|
return false;
|
}
| }
|
$cookie = my_unserialize($mybb->cookies['mybb'][$name]);
if(is_array($cookie) && isset($cookie[$id]))
|
$cookie = my_unserialize($mybb->cookies['mybb'][$name]);
if(is_array($cookie) && isset($cookie[$id]))
|
{ return $cookie[$id]; } else {
| { return $cookie[$id]; } else {
|
return 0; } }
| return 0; } }
|
Zeile 2121 | Zeile 2140 |
---|
return false; } return $data;
|
return false; } return $data;
|
}
| }
|
/** * Credits go to https://github.com/piwik
| /** * Credits go to https://github.com/piwik
|
Zeile 2133 | Zeile 2152 |
---|
function my_unserialize($str) { // Ensure we use the byte count for strings even when strlen() is overloaded by mb_strlen()
|
function my_unserialize($str) { // Ensure we use the byte count for strings even when strlen() is overloaded by mb_strlen()
|
if(function_exists('mb_internal_encoding') && (((int)ini_get('mbstring.func_overload')) & 2)) { $mbIntEnc = mb_internal_encoding(); mb_internal_encoding('ASCII'); }
$out = _safe_unserialize($str);
if(isset($mbIntEnc)) { mb_internal_encoding($mbIntEnc); } return $out; }
/**
| if(function_exists('mb_internal_encoding') && (((int)ini_get('mbstring.func_overload')) & 2)) { $mbIntEnc = mb_internal_encoding(); mb_internal_encoding('ASCII'); }
$out = _safe_unserialize($str);
if(isset($mbIntEnc)) { mb_internal_encoding($mbIntEnc); }
return $out; }
/**
|
* Credits go to https://github.com/piwik * Safe serialize() replacement * - output a strict subset of PHP's native serialized representation
| * Credits go to https://github.com/piwik * Safe serialize() replacement * - output a strict subset of PHP's native serialized representation
|
Zeile 2162 | Zeile 2181 |
---|
function _safe_serialize( $value ) { if(is_null($value))
|
function _safe_serialize( $value ) { if(is_null($value))
|
{
| {
|
return 'N;';
|
return 'N;';
|
}
| }
|
if(is_bool($value))
|
if(is_bool($value))
|
{
| {
|
return 'b:'.(int)$value.';'; }
|
return 'b:'.(int)$value.';'; }
|
|
|
if(is_int($value)) { return 'i:'.$value.';'; }
|
if(is_int($value)) { return 'i:'.$value.';'; }
|
|
|
if(is_float($value)) { return 'd:'.str_replace(',', '.', $value).';'; }
|
if(is_float($value)) { return 'd:'.str_replace(',', '.', $value).';'; }
|
|
|
if(is_string($value))
|
if(is_string($value))
|
{
| {
|
return 's:'.strlen($value).':"'.$value.'";'; }
|
return 's:'.strlen($value).':"'.$value.'";'; }
|
|
|
if(is_array($value)) { $out = '';
| if(is_array($value)) { $out = '';
|
Zeile 2193 | Zeile 2212 |
---|
{ $out .= _safe_serialize($k) . _safe_serialize($v); }
|
{ $out .= _safe_serialize($k) . _safe_serialize($v); }
|
|
|
return 'a:'.count($value).':{'.$out.'}';
|
return 'a:'.count($value).':{'.$out.'}';
|
}
| }
|
// safe_serialize cannot my_serialize resources or objects return false;
| // safe_serialize cannot my_serialize resources or objects return false;
|
Zeile 2216 | Zeile 2235 |
---|
$mbIntEnc = mb_internal_encoding(); mb_internal_encoding('ASCII'); }
|
$mbIntEnc = mb_internal_encoding(); mb_internal_encoding('ASCII'); }
|
|
|
$out = _safe_serialize($value); if(isset($mbIntEnc)) { mb_internal_encoding($mbIntEnc); }
|
$out = _safe_serialize($value); if(isset($mbIntEnc)) { mb_internal_encoding($mbIntEnc); }
|
|
|
return $out; }
| return $out; }
|
Zeile 2234 | Zeile 2253 |
---|
function get_server_load() { global $mybb, $lang;
|
function get_server_load() { global $mybb, $lang;
|
$serverload = array();
| $serverload = array();
|
// DIRECTORY_SEPARATOR checks if running windows if(DIRECTORY_SEPARATOR != '\\') {
| // DIRECTORY_SEPARATOR checks if running windows if(DIRECTORY_SEPARATOR != '\\') {
|
Zeile 2250 | Zeile 2269 |
---|
{ $serverload = explode(" ", $load); $serverload[0] = round($serverload[0], 4);
|
{ $serverload = explode(" ", $load); $serverload[0] = round($serverload[0], 4);
|
}
| }
|
if(!is_numeric($serverload[0])) { if($mybb->safemode)
|
if(!is_numeric($serverload[0])) { if($mybb->safemode)
|
{
| {
|
return $lang->unknown; }
// Suhosin likes to throw a warning if exec is disabled then die - weird if($func_blacklist = @ini_get('suhosin.executor.func.blacklist'))
|
return $lang->unknown; }
// Suhosin likes to throw a warning if exec is disabled then die - weird if($func_blacklist = @ini_get('suhosin.executor.func.blacklist'))
|
{ if(strpos(",".$func_blacklist.",", 'exec') !== false) { return $lang->unknown;
| { if(strpos(",".$func_blacklist.",", 'exec') !== false) { return $lang->unknown;
|
} } // PHP disabled functions?
| } } // PHP disabled functions?
|
Zeile 2287 | Zeile 2306 |
---|
else { return $lang->unknown;
|
else { return $lang->unknown;
|
}
$returnload = trim($serverload[0]);
| }
$returnload = trim($serverload[0]);
|
return $returnload; }
| return $returnload; }
|
Zeile 2302 | Zeile 2321 |
---|
function get_memory_usage() { if(function_exists('memory_get_peak_usage'))
|
function get_memory_usage() { if(function_exists('memory_get_peak_usage'))
|
{
| {
|
return memory_get_peak_usage(true); } elseif(function_exists('memory_get_usage'))
| return memory_get_peak_usage(true); } elseif(function_exists('memory_get_usage'))
|
Zeile 2341 | Zeile 2360 |
---|
'numdeletedthreads' => '+0', 'inserted' => false // Reset after changes are inserted into cache );
|
'numdeletedthreads' => '+0', 'inserted' => false // Reset after changes are inserted into cache );
|
$stats = $stats_changes;
| $stats = $stats_changes;
|
}
if($force) // Force writing to cache?
| }
if($force) // Force writing to cache?
|
Zeile 2414 | Zeile 2433 |
---|
$query = $db->simple_select("users", "uid, username", "", array('order_by' => 'regdate', 'order_dir' => 'DESC', 'limit' => 1)); $lastmember = $db->fetch_array($query); $new_stats['lastuid'] = $lastmember['uid'];
|
$query = $db->simple_select("users", "uid, username", "", array('order_by' => 'regdate', 'order_dir' => 'DESC', 'limit' => 1)); $lastmember = $db->fetch_array($query); $new_stats['lastuid'] = $lastmember['uid'];
|
$new_stats['lastusername'] = $lastmember['username'];
| $new_stats['lastusername'] = $lastmember['username'] = htmlspecialchars_uni($lastmember['username']);
|
}
if(!empty($new_stats))
| }
if(!empty($new_stats))
|
Zeile 2553 | Zeile 2572 |
---|
{ $deletedposts_diff = $update_query['deletedposts'] - $forum['deletedposts']; if($deletedposts_diff > -1)
|
{ $deletedposts_diff = $update_query['deletedposts'] - $forum['deletedposts']; if($deletedposts_diff > -1)
|
{
| {
|
$new_stats['numdeletedposts'] = "+{$deletedposts_diff}"; } else
| $new_stats['numdeletedposts'] = "+{$deletedposts_diff}"; } else
|
Zeile 2587 | Zeile 2606 |
---|
* @param int $fid The forum ID */ function update_forum_lastpost($fid)
|
* @param int $fid The forum ID */ function update_forum_lastpost($fid)
|
{
| {
|
global $db;
// Fetch the last post for this forum
| global $db;
// Fetch the last post for this forum
|
Zeile 2644 | Zeile 2663 |
---|
if((int)$changes[$counter] != 0) { $update_query[$counter] = $thread[$counter] + $changes[$counter];
|
if((int)$changes[$counter] != 0) { $update_query[$counter] = $thread[$counter] + $changes[$counter];
|
} } else { $update_query[$counter] = $changes[$counter]; }
// Less than 0? That's bad if(isset($update_query[$counter]) && $update_query[$counter] < 0) { $update_query[$counter] = 0; } } }
| } } else { $update_query[$counter] = $changes[$counter]; }
// Less than 0? That's bad if(isset($update_query[$counter]) && $update_query[$counter] < 0) { $update_query[$counter] = 0; } } }
|
$db->free_result($query);
// Only update if we're actually doing something
| $db->free_result($query);
// Only update if we're actually doing something
|
Zeile 2867 | Zeile 2886 |
---|
if($forum['active'] != 0) { $jumpfcache[$forum['pid']][$forum['disporder']][$forum['fid']] = $forum;
|
if($forum['active'] != 0) { $jumpfcache[$forum['pid']][$forum['disporder']][$forum['fid']] = $forum;
|
} } }
| } } }
|
if(!is_array($permissioncache)) {
| if(!is_array($permissioncache)) {
|
Zeile 2883 | Zeile 2902 |
---|
foreach($main as $forum) { $perms = $permissioncache[$forum['fid']];
|
foreach($main as $forum) { $perms = $permissioncache[$forum['fid']];
|
|
|
if($forum['fid'] != "0" && ($perms['canview'] != 0 || $mybb->settings['hideprivateforums'] == 0) && $forum['linkto'] == '' && ($forum['showinjump'] != 0 || $showall == true)) { $optionselected = "";
|
if($forum['fid'] != "0" && ($perms['canview'] != 0 || $mybb->settings['hideprivateforums'] == 0) && $forum['linkto'] == '' && ($forum['showinjump'] != 0 || $showall == true)) { $optionselected = "";
|
|
|
if($selitem == $forum['fid']) { $optionselected = 'selected="selected"'; }
|
if($selitem == $forum['fid']) { $optionselected = 'selected="selected"'; }
|
|
|
$forum['name'] = htmlspecialchars_uni(strip_tags($forum['name']));
eval("\$forumjumpbits .= \"".$templates->get("forumjump_bit")."\";");
|
$forum['name'] = htmlspecialchars_uni(strip_tags($forum['name']));
eval("\$forumjumpbits .= \"".$templates->get("forumjump_bit")."\";");
|
|
|
if($forum_cache[$forum['fid']]) { $newdepth = $depth."--";
| if($forum_cache[$forum['fid']]) { $newdepth = $depth."--";
|
Zeile 2935 | Zeile 2954 |
---|
/** * Returns the extension of a file.
|
/** * Returns the extension of a file.
|
*
| *
|
* @param string $file The filename. * @return string The extension of the file. */
| * @param string $file The filename. * @return string The extension of the file. */
|
Zeile 2961 | Zeile 2980 |
---|
{ // At least one number $str[] = $set[my_rand(0, 9)];
|
{ // At least one number $str[] = $set[my_rand(0, 9)];
|
|
|
// At least one big letter $str[] = $set[my_rand(10, 35)];
| // At least one big letter $str[] = $set[my_rand(10, 35)];
|
Zeile 2969 | Zeile 2988 |
---|
$str[] = $set[my_rand(36, 61)];
$length -= 3;
|
$str[] = $set[my_rand(36, 61)];
$length -= 3;
|
}
| }
|
for($i = 0; $i < $length; ++$i) { $str[] = $set[my_rand(0, 61)]; }
|
for($i = 0; $i < $length; ++$i) { $str[] = $set[my_rand(0, 61)]; }
|
|
|
// Make sure they're in random order and convert them to a string shuffle($str);
| // Make sure they're in random order and convert them to a string shuffle($str);
|
Zeile 3028 | Zeile 3047 |
---|
*/ function format_avatar($avatar, $dimensions = '', $max_dimensions = '') {
|
*/ function format_avatar($avatar, $dimensions = '', $max_dimensions = '') {
|
global $mybb;
| global $mybb, $theme;
|
static $avatars;
|
static $avatars;
|
|
|
if(!isset($avatars))
|
if(!isset($avatars))
|
{
| {
|
$avatars = array();
|
$avatars = array();
|
| }
if(my_strpos($avatar, '://') !== false && !$mybb->settings['allowremoteavatars']) { // Remote avatar, but remote avatars are disallowed. $avatar = null;
|
}
if(!$avatar) { // Default avatar
|
}
if(!$avatar) { // Default avatar
|
$avatar = $mybb->settings['useravatar'];
| if(defined('IN_ADMINCP')) { $theme['imgdir'] = '../images'; }
$avatar = str_replace('{theme}', $theme['imgdir'], $mybb->settings['useravatar']);
|
$dimensions = $mybb->settings['useravatardims']; }
| $dimensions = $mybb->settings['useravatardims']; }
|
Zeile 3213 | Zeile 3243 |
---|
$emoticon = ""; $emoticons_enabled = "false"; if($smilies)
|
$emoticon = ""; $emoticons_enabled = "false"; if($smilies)
|
{ if($mybb->settings['smilieinserter'] && $mybb->settings['smilieinsertercols'] && $mybb->settings['smilieinsertertot']) { $emoticon = ",emoticon"; } $emoticons_enabled = "true";
| {
|
if(!$smiliecache) { if(!isset($smilie_cache) || !is_array($smilie_cache))
| if(!$smiliecache) { if(!isset($smilie_cache) || !is_array($smilie_cache))
|
Zeile 3232 | Zeile 3256 |
---|
$smiliecache[$smilie['sid']] = $smilie; } }
|
$smiliecache[$smilie['sid']] = $smilie; } }
|
| if($mybb->settings['smilieinserter'] && $mybb->settings['smilieinsertercols'] && $mybb->settings['smilieinsertertot'] && !empty($smiliecache)) { $emoticon = ",emoticon"; } $emoticons_enabled = "true";
|
unset($smilie);
| unset($smilie);
|
Zeile 3246 | Zeile 3276 |
---|
{ $finds = explode("\n", $smilie['find']); $finds_count = count($finds);
|
{ $finds = explode("\n", $smilie['find']); $finds_count = count($finds);
|
|
|
// Only show the first text to replace in the box $smilie['find'] = $finds[0];
| // Only show the first text to replace in the box $smilie['find'] = $finds[0];
|
Zeile 3256 | Zeile 3286 |
---|
if(!$mybb->settings['smilieinserter'] || !$mybb->settings['smilieinsertercols'] || !$mybb->settings['smilieinsertertot'] || !$smilie['showclickable']) {
|
if(!$mybb->settings['smilieinserter'] || !$mybb->settings['smilieinsertercols'] || !$mybb->settings['smilieinsertertot'] || !$smilie['showclickable']) {
|
$hiddensmilies .= '"'.$find.'": "'.$image.'",';
| $hiddensmilies .= '"'.$find.'": "'.$image.'",';
|
} elseif($i < $mybb->settings['smilieinsertertot']) {
| } elseif($i < $mybb->settings['smilieinsertertot']) {
|
Zeile 3389 | Zeile 3419 |
---|
eval("\$getmore = \"".$templates->get("smilieinsert_getmore")."\";"); }
|
eval("\$getmore = \"".$templates->get("smilieinsert_getmore")."\";"); }
|
$smilies = "";
| $smilies = '';
|
$counter = 0; $i = 0;
| $counter = 0; $i = 0;
|
Zeile 3398 | Zeile 3428 |
---|
{ if($i < $mybb->settings['smilieinsertertot'] && $smilie['showclickable'] != 0) {
|
{ if($i < $mybb->settings['smilieinsertertot'] && $smilie['showclickable'] != 0) {
|
if($counter == 0) { $smilies .= "<tr>\n"; }
| |
$smilie['image'] = str_replace("{theme}", $theme['imgdir'], $smilie['image']); $smilie['image'] = htmlspecialchars_uni($mybb->get_asset_url($smilie['image'])); $smilie['name'] = htmlspecialchars_uni($smilie['name']);
|
$smilie['image'] = str_replace("{theme}", $theme['imgdir'], $smilie['image']); $smilie['image'] = htmlspecialchars_uni($mybb->get_asset_url($smilie['image'])); $smilie['name'] = htmlspecialchars_uni($smilie['name']);
|
|
|
// Only show the first text to replace in the box $temp = explode("\n", $smilie['find']); // assign to temporary variable for php 5.3 compatibility $smilie['find'] = $temp[0];
| // Only show the first text to replace in the box $temp = explode("\n", $smilie['find']); // assign to temporary variable for php 5.3 compatibility $smilie['find'] = $temp[0];
|
Zeile 3416 | Zeile 3441 |
---|
$onclick = " onclick=\"MyBBEditor.insertText(' $find ');\""; $extra_class = ' smilie_pointer'; eval('$smilie = "'.$templates->get('smilie', 1, 0).'";');
|
$onclick = " onclick=\"MyBBEditor.insertText(' $find ');\""; $extra_class = ' smilie_pointer'; eval('$smilie = "'.$templates->get('smilie', 1, 0).'";');
|
eval("\$smilies .= \"".$templates->get("smilieinsert_smilie")."\";");
| eval("\$smilie_icons .= \"".$templates->get("smilieinsert_smilie")."\";");
|
++$i; ++$counter;
if($counter == $mybb->settings['smilieinsertercols']) { $counter = 0;
|
++$i; ++$counter;
if($counter == $mybb->settings['smilieinsertercols']) { $counter = 0;
|
$smilies .= "</tr>\n";
| eval("\$smilies .= \"".$templates->get("smilieinsert_row")."\";"); $smilie_icons = '';
|
} } }
| } } }
|
Zeile 3431 | Zeile 3457 |
---|
if($counter != 0) { $colspan = $mybb->settings['smilieinsertercols'] - $counter;
|
if($counter != 0) { $colspan = $mybb->settings['smilieinsertercols'] - $counter;
|
$smilies .= "<td colspan=\"{$colspan}\"> </td>\n</tr>\n";
| eval("\$smilies .= \"".$templates->get("smilieinsert_row_empty")."\";");
|
}
eval("\$clickablesmilies = \"".$templates->get("smilieinsert")."\";");
| }
eval("\$clickablesmilies = \"".$templates->get("smilieinsert")."\";");
|
Zeile 3511 | Zeile 3537 |
---|
* @return string The thread prefix selection menu */ function build_prefix_select($fid, $selected_pid=0, $multiple=0, $previous_pid=0)
|
* @return string The thread prefix selection menu */ function build_prefix_select($fid, $selected_pid=0, $multiple=0, $previous_pid=0)
|
{ global $cache, $db, $lang, $mybb, $templates;
| { global $cache, $db, $lang, $mybb, $templates;
|
if($fid != 'all') { $fid = (int)$fid;
| if($fid != 'all') { $fid = (int)$fid;
|
Zeile 3644 | Zeile 3670 |
---|
$default_selected = array(); $selected_pid = (int)$selected_pid;
|
$default_selected = array(); $selected_pid = (int)$selected_pid;
|
|
|
if($selected_pid == 0) { $default_selected['all'] = ' selected="selected"';
| if($selected_pid == 0) { $default_selected['all'] = ' selected="selected"';
|
Zeile 3800 | Zeile 3826 |
---|
{ $reputation_class = "reputation_neutral"; }
|
{ $reputation_class = "reputation_neutral"; }
|
|
|
$reputation = my_number_format($reputation);
if($uid != 0)
| $reputation = my_number_format($reputation);
if($uid != 0)
|
Zeile 4136 | Zeile 4162 |
---|
$unviewable[] = $forum['fid']; } }
|
$unviewable[] = $forum['fid']; } }
|
|
|
$unviewableforums = implode(',', $unviewable);
|
$unviewableforums = implode(',', $unviewable);
|
|
|
return $unviewableforums; }
| return $unviewableforums; }
|
Zeile 4885 | Zeile 4911 |
---|
{ $location = htmlspecialchars_uni($_ENV['PATH_INFO']); }
|
{ $location = htmlspecialchars_uni($_ENV['PATH_INFO']); }
|
|
|
if($quick)
|
if($quick)
|
{
| {
|
return $location; }
|
return $location; }
|
|
|
if($fields == true) { global $mybb;
| if($fields == true) { global $mybb;
|
Zeile 4898 | Zeile 4924 |
---|
if(!is_array($ignore)) { $ignore = array($ignore);
|
if(!is_array($ignore)) { $ignore = array($ignore);
|
}
| }
|
$form_html = ''; if(!empty($mybb->input)) {
| $form_html = ''; if(!empty($mybb->input)) {
|
Zeile 4911 | Zeile 4937 |
---|
}
$form_html .= "<input type=\"hidden\" name=\"".htmlspecialchars_uni($name)."\" value=\"".htmlspecialchars_uni($value)."\" />\n";
|
}
$form_html .= "<input type=\"hidden\" name=\"".htmlspecialchars_uni($name)."\" value=\"".htmlspecialchars_uni($value)."\" />\n";
|
} }
| } }
|
return array('location' => $location, 'form_html' => $form_html, 'form_method' => $mybb->request_method); } else { if(isset($_SERVER['QUERY_STRING']))
|
return array('location' => $location, 'form_html' => $form_html, 'form_method' => $mybb->request_method); } else { if(isset($_SERVER['QUERY_STRING']))
|
{
| {
|
$location .= "?".htmlspecialchars_uni($_SERVER['QUERY_STRING']);
|
$location .= "?".htmlspecialchars_uni($_SERVER['QUERY_STRING']);
|
}
| }
|
else if(isset($_ENV['QUERY_STRING'])) { $location .= "?".htmlspecialchars_uni($_ENV['QUERY_STRING']);
|
else if(isset($_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")) { $post_array = array('action', 'fid', 'pid', 'tid', 'uid', 'eid');
| if((isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == "POST") || (isset($_ENV['REQUEST_METHOD']) && $_ENV['REQUEST_METHOD'] == "POST")) { $post_array = array('action', 'fid', 'pid', 'tid', 'uid', 'eid');
|
Zeile 4954 | Zeile 4980 |
---|
}
return $location;
|
}
return $location;
|
}
| }
|
}
/**
| }
/**
|
Zeile 4982 | Zeile 5008 |
---|
if(!isset($lang->use_default)) { $lang->use_default = $lang->lang_select_default;
|
if(!isset($lang->use_default)) { $lang->use_default = $lang->lang_select_default;
|
} }
| } }
|
if(!is_array($tcache))
|
if(!is_array($tcache))
|
{
| {
|
$query = $db->simple_select('themes', 'tid, name, pid, allowedgroups', "pid!='0'");
|
$query = $db->simple_select('themes', 'tid, name, pid, allowedgroups', "pid!='0'");
|
|
|
while($theme = $db->fetch_array($query)) { $tcache[$theme['pid']][$theme['tid']] = $theme;
| while($theme = $db->fetch_array($query)) { $tcache[$theme['pid']][$theme['tid']] = $theme;
|
Zeile 4997 | Zeile 5023 |
---|
if(is_array($tcache[$tid])) {
|
if(is_array($tcache[$tid])) {
|
// Figure out what groups this user is in if(isset($mybb->user['additionalgroups'])) { $in_groups = explode(",", $mybb->user['additionalgroups']); } $in_groups[] = $mybb->user['usergroup'];
| |
foreach($tcache[$tid] as $theme) { $sel = "";
| foreach($tcache[$tid] as $theme) { $sel = "";
|
Zeile 5701 | Zeile 5720 |
---|
*/ function get_event_poster($event) {
|
*/ function get_event_poster($event) {
|
| $event['username'] = htmlspecialchars_uni($event['username']);
|
$event['username'] = format_name($event['username'], $event['usergroup'], $event['displaygroup']); $event_poster = build_profile_link($event['username'], $event['author']); return $event_poster;
| $event['username'] = format_name($event['username'], $event['usergroup'], $event['displaygroup']); $event_poster = build_profile_link($event['username'], $event['author']); return $event_poster;
|
Zeile 5717 | Zeile 5737 |
---|
global $mybb;
$event_date = explode("-", $event['date']);
|
global $mybb;
$event_date = explode("-", $event['date']);
|
$event_date = mktime(0, 0, 0, $event_date[1], $event_date[0], $event_date[2]);
| $event_date = gmmktime(0, 0, 0, $event_date[1], $event_date[0], $event_date[2]);
|
$event_date = my_date($mybb->settings['dateformat'], $event_date);
return $event_date;
| $event_date = my_date($mybb->settings['dateformat'], $event_date);
return $event_date;
|
Zeile 6171 | Zeile 6191 |
---|
} } }
|
} } }
|
|
|
$inactiveforums = implode(",", $inactive);
return $inactiveforums;
| $inactiveforums = implode(",", $inactive);
return $inactiveforums;
|
Zeile 6436 | Zeile 6456 |
---|
}
if(!is_array($words))
|
}
if(!is_array($words))
|
{ return false;
| { return false;
|
}
// Sort the word array by length. Largest terms go first and work their way down to the smallest term.
| }
// Sort the word array by length. Largest terms go first and work their way down to the smallest term.
|
Zeile 6543 | Zeile 6563 |
---|
/** * Check if a specific email address has been banned.
|
/** * Check if a specific email address has been banned.
|
*
| *
|
* @param string $email The email address. * @param boolean $update_lastuse 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 $email The email address. * @param boolean $update_lastuse True if the 'last used' dateline should be updated if a match is found. * @return boolean True if banned, false if not banned
|
Zeile 6583 | Zeile 6603 |
---|
// Still here - good email return false; }
|
// Still here - good email return false; }
|
|
|
/** * Checks if a specific IP address has been banned. *
| /** * Checks if a specific IP address has been banned. *
|
Zeile 6597 | Zeile 6617 |
---|
$banned_ips = $cache->read("bannedips"); if(!is_array($banned_ips))
|
$banned_ips = $cache->read("bannedips"); if(!is_array($banned_ips))
|
{ return false; }
| { return false; }
|
$ip_address = my_inet_pton($ip_address); foreach($banned_ips as $banned_ip) {
| $ip_address = my_inet_pton($ip_address); foreach($banned_ips as $banned_ip) {
|
Zeile 6642 | Zeile 6662 |
---|
* Returns an array of supported timezones * * @return string[] Key is timezone offset, Value the language description
|
* Returns an array of supported timezones * * @return string[] Key is timezone offset, Value the language description
|
*/
| */
|
function get_supported_timezones() { global $lang;
| function get_supported_timezones() { global $lang;
|
Zeile 6676 | Zeile 6696 |
---|
"6.5" => $lang->timezone_gmt_650, "7" => $lang->timezone_gmt_700, "8" => $lang->timezone_gmt_800,
|
"6.5" => $lang->timezone_gmt_650, "7" => $lang->timezone_gmt_700, "8" => $lang->timezone_gmt_800,
|
| "8.5" => $lang->timezone_gmt_850, "8.75" => $lang->timezone_gmt_875,
|
"9" => $lang->timezone_gmt_900, "9.5" => $lang->timezone_gmt_950, "10" => $lang->timezone_gmt_1000,
| "9" => $lang->timezone_gmt_900, "9.5" => $lang->timezone_gmt_950, "10" => $lang->timezone_gmt_1000,
|
Zeile 6754 | Zeile 6776 |
---|
*/ function fetch_remote_file($url, $post_data=array(), $max_redirects=20) {
|
*/ function fetch_remote_file($url, $post_data=array(), $max_redirects=20) {
|
global $mybb;
| global $mybb, $config;
if(!my_validate_url($url, true)) { return false; }
$url_components = @parse_url($url);
if(!isset($url_components['scheme'])) { $url_components['scheme'] = 'https'; } if(!isset($url_components['port'])) { $url_components['port'] = $url_components['scheme'] == 'https' ? 443 : 80; }
if( !$url_components || empty($url_components['host']) || (!empty($url_components['scheme']) && !in_array($url_components['scheme'], array('http', 'https'))) || (!in_array($url_components['port'], array(80, 8080, 443))) || (!empty($config['disallowed_remote_hosts']) && in_array($url_components['host'], $config['disallowed_remote_hosts'])) ) { return false; }
$addresses = get_ip_by_hostname($url_components['host']); $destination_address = $addresses[0];
if(!empty($config['disallowed_remote_addresses'])) { foreach($config['disallowed_remote_addresses'] as $disallowed_address) { $ip_range = fetch_ip_range($disallowed_address);
$packed_address = my_inet_pton($destination_address);
if(is_array($ip_range)) { if(strcmp($ip_range[0], $packed_address) <= 0 && strcmp($ip_range[1], $packed_address) >= 0) { return false; } } elseif($destination_address == $disallowed_address) { return false; } } }
|
$post_body = ''; if(!empty($post_data)) {
| $post_body = ''; if(!empty($post_data)) {
|
Zeile 6767 | Zeile 6841 |
---|
}
if(function_exists("curl_init"))
|
}
if(function_exists("curl_init"))
|
{ $can_followlocation = @ini_get('open_basedir') === '' && !$mybb->safemode;
$request_header = $max_redirects != 0 && !$can_followlocation;
| { $fetch_header = $max_redirects > 0;
|
$ch = curl_init();
|
$ch = curl_init();
|
curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, $request_header); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
if($max_redirects != 0 && $can_followlocation) { curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_MAXREDIRS, $max_redirects); }
if(!empty($post_body))
| $curlopt = array( CURLOPT_URL => $url, CURLOPT_HEADER => $fetch_header, CURLOPT_TIMEOUT => 10, CURLOPT_RETURNTRANSFER => 1, CURLOPT_FOLLOWLOCATION => 0, );
if($ca_bundle_path = get_ca_bundle_path()) { $curlopt[CURLOPT_SSL_VERIFYPEER] = 1; $curlopt[CURLOPT_CAINFO] = $ca_bundle_path; } else { $curlopt[CURLOPT_SSL_VERIFYPEER] = 0; }
$curl_version_info = curl_version(); $curl_version = $curl_version_info['version'];
if(version_compare(PHP_VERSION, '7.0.7', '>=') && version_compare($curl_version, '7.49', '>=')) { // CURLOPT_CONNECT_TO $curlopt[10243] = array( $url_components['host'].':'.$url_components['port'].':'.$destination_address ); } elseif(version_compare(PHP_VERSION, '5.5', '>=') && version_compare($curl_version, '7.21.3', '>='))
|
{
|
{
|
curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_body);
| // CURLOPT_RESOLVE $curlopt[10203] = array( $url_components['host'].':'.$url_components['port'].':'.$destination_address );
|
}
|
}
|
$response = curl_exec($ch);
| if(!empty($post_body)) { $curlopt[CURLOPT_POST] = 1; $curlopt[CURLOPT_POSTFIELDS] = $post_body; }
curl_setopt_array($ch, $curlopt);
$response = curl_exec($ch);
|
|
|
if($request_header)
| if($fetch_header)
|
{ $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $header = substr($response, 0, $header_size);
| { $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $header = substr($response, 0, $header_size);
|
Zeile 6802 | Zeile 6901 |
---|
if(in_array(curl_getinfo($ch, CURLINFO_HTTP_CODE), array(301, 302))) { preg_match('/Location:(.*?)(?:\n|$)/', $header, $matches);
|
if(in_array(curl_getinfo($ch, CURLINFO_HTTP_CODE), array(301, 302))) { preg_match('/Location:(.*?)(?:\n|$)/', $header, $matches);
|
|
|
if($matches) { $data = fetch_remote_file(trim(array_pop($matches)), $post_data, --$max_redirects);
| if($matches) { $data = fetch_remote_file(trim(array_pop($matches)), $post_data, --$max_redirects);
|
Zeile 6822 | Zeile 6921 |
---|
return $data; } else if(function_exists("fsockopen"))
|
return $data; } else if(function_exists("fsockopen"))
|
{ $url = @parse_url($url); if(!$url['host']) { return false; } if(!isset($url['port'])) { $url['port'] = 80; } if(!isset($url['path'])) { $url['path'] = "/"; } if(isset($url['query'])) { $url['path'] .= "?{$url['query']}"; }
$scheme = '';
if($url['scheme'] == 'https') {
| { if(!isset($url_components['path'])) { $url_components['path'] = "/"; } if(isset($url_components['query'])) { $url_components['path'] .= "?{$url_components['query']}"; }
$scheme = '';
if($url_components['scheme'] == 'https') {
|
$scheme = 'ssl://';
|
$scheme = 'ssl://';
|
if($url['port'] == 80)
| if($url_components['port'] == 80) { $url_components['port'] = 443; } }
if(function_exists('stream_context_create')) { if($url_components['scheme'] == 'https' && $ca_bundle_path = get_ca_bundle_path()) { $context = stream_context_create(array( 'ssl' => array( 'verify_peer' => true, 'verify_peer_name' => true, 'peer_name' => $url_components['host'], 'cafile' => $ca_bundle_path, ), )); } else
|
{
|
{
|
$url['port'] = 443;
| $context = stream_context_create(array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, ), ));
|
}
|
}
|
| $fp = @stream_socket_client($scheme.$destination_address.':'.(int)$url_components['port'], $error_no, $error, 10, STREAM_CLIENT_CONNECT, $context); } else { $fp = @fsockopen($scheme.$url_components['host'], (int)$url_components['port'], $error_no, $error, 10);
|
}
|
}
|
$fp = @fsockopen($scheme.$url['host'], $url['port'], $error_no, $error, 10);
| |
@stream_set_timeout($fp, 10); if(!$fp) {
| @stream_set_timeout($fp, 10); if(!$fp) {
|
Zeile 6861 | Zeile 6980 |
---|
$headers = array(); if(!empty($post_body)) {
|
$headers = array(); if(!empty($post_body)) {
|
$headers[] = "POST {$url['path']} HTTP/1.0";
| $headers[] = "POST {$url_components['path']} HTTP/1.0";
|
$headers[] = "Content-Length: ".strlen($post_body); $headers[] = "Content-Type: application/x-www-form-urlencoded"; } else {
|
$headers[] = "Content-Length: ".strlen($post_body); $headers[] = "Content-Type: application/x-www-form-urlencoded"; } else {
|
$headers[] = "GET {$url['path']} HTTP/1.0";
| $headers[] = "GET {$url_components['path']} HTTP/1.0";
|
}
|
}
|
$headers[] = "Host: {$url['host']}";
| $headers[] = "Host: {$url_components['host']}";
|
$headers[] = "Connection: Close"; $headers[] = '';
| $headers[] = "Connection: Close"; $headers[] = '';
|
Zeile 6904 | Zeile 7023 |
---|
$status_line = current(explode("\n\n", $header, 1)); $body = $data[1];
|
$status_line = current(explode("\n\n", $header, 1)); $body = $data[1];
|
if($max_redirects != 0 && (strstr($status_line, ' 301 ') || strstr($status_line, ' 302 ')))
| if($max_redirects > 0 && (strstr($status_line, ' 301 ') || strstr($status_line, ' 302 ')))
|
{ preg_match('/Location:(.*?)(?:\n|$)/', $header, $matches);
| { preg_match('/Location:(.*?)(?:\n|$)/', $header, $matches);
|
Zeile 6919 | Zeile 7038 |
---|
}
return $data;
|
}
return $data;
|
} else if(empty($post_data)) { return @implode("", @file($url));
| |
} else {
|
} else {
|
return false;
| return false; } }
/** * Resolves a hostname into a set of IP addresses. * * @param string $hostname The hostname to be resolved * @return array|bool The resulting IP addresses. False on failure */ function get_ip_by_hostname($hostname) { $addresses = @gethostbynamel($hostname);
if(!$addresses) { $result_set = @dns_get_record($hostname, DNS_A | DNS_AAAA);
if($result_set) { $addresses = array_column($result_set, 'ip'); } else { return false; }
|
}
|
}
|
| return $addresses; }
/** * Returns the location of the CA bundle defined in the PHP configuration. * * @return string|bool The location of the CA bundle, false if not set */ function get_ca_bundle_path() { if($path = ini_get('openssl.cafile')) { return $path; } if($path = ini_get('curl.cainfo')) { return $path; }
return false;
|
}
/**
| }
/**
|
Zeile 6941 | Zeile 7102 |
---|
static $super_admins;
if(!isset($super_admins))
|
static $super_admins;
if(!isset($super_admins))
|
{
| {
|
global $mybb; $super_admins = str_replace(" ", "", $mybb->config['super_admins']); }
| global $mybb; $super_admins = str_replace(" ", "", $mybb->config['super_admins']); }
|
Zeile 6968 | Zeile 7129 |
---|
function is_member($groups, $user = false) { global $mybb;
|
function is_member($groups, $user = false) { global $mybb;
|
|
|
if(empty($groups)) { return array();
| if(empty($groups)) { return array();
|
Zeile 7582 | Zeile 7743 |
---|
global $mybb, $checksums, $bad_verify_files;
// We don't need to check these types of files
|
global $mybb, $checksums, $bad_verify_files;
// We don't need to check these types of files
|
$ignore = array(".", "..", ".svn", "config.php", "settings.php", "Thumb.db", "config.default.php", "lock", "htaccess.txt", "logo.gif", "logo.png");
| $ignore = array(".", "..", ".svn", "config.php", "settings.php", "Thumb.db", "config.default.php", "lock", "htaccess.txt", "htaccess-nginx.txt", "logo.gif", "logo.png");
|
$ignore_ext = array("attach");
if(substr($path, -1, 1) == "/")
| $ignore_ext = array("attach");
if(substr($path, -1, 1) == "/")
|
Zeile 8412 | Zeile 8573 |
---|
}
return $success;
|
}
return $success;
|
| }
/** * Validate an url * * @param string $url The url to validate. * @param bool $relative_path Whether or not the url could be a relative path. * * @return bool Whether this is a valid url. */ function my_validate_url($url, $relative_path=false) { if($relative_path && my_substr($url, 0, 1) == '/' || preg_match('_^(?:(?:https?|ftp)://)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\x{00a1}-\x{ffff}0-9]-*)*[a-z\x{00a1}-\x{ffff}0-9]+)(?:\.(?:[a-z\x{00a1}-\x{ffff}0-9]-*)*[a-z\x{00a1}-\x{ffff}0-9]+)*(?:\.(?:[a-z\x{00a1}-\x{ffff}]{2,}))\.?)(?::\d{2,5})?(?:[/?#]\S*)?$_iuS', $url)) { return true; }
return false; }
/** * Strip html tags from string, also removes <script> and <style> contents. * * @param string $string String to stripe * @param string $allowable_tags Allowed html tags * * @return string Striped string */ function my_strip_tags($string, $allowable_tags = '') { $pattern = array( '@(<)style[^(>)]*?(>).*?(<)/style(>)@siu', '@(<)script[^(>)]*?.*?(<)/script(>)@siu', '@<style[^>]*?>.*?</style>@siu', '@<script[^>]*?.*?</script>@siu', ); $string = preg_replace($pattern, '', $string); return strip_tags($string, $allowable_tags);
|
}
| }
|