asda?‰PNG IHDR ? f ??C1 sRGB ??é gAMA ±?üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T PK me[G edit.phpnu [ 1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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 fe2BN9nhA4vDKMEDaoB0aQXqeT1++ea=PK me[ :` :` index.phpnu [ settings['cookiepath'] = substr($loc, 0, strrpos($loc, "/{$config['admin_dir']}/"))."/{$config['admin_dir']}/"; if(!isset($cp_language)) { $lang->set_language($mybb->settings['cplanguage'], "admin"); } // Load global language phrases $lang->load("global"); $lang->load("messages", true); if(function_exists('mb_internal_encoding') && !empty($lang->settings['charset'])) { @mb_internal_encoding($lang->settings['charset']); } header("Content-type: text/html; charset={$lang->settings['charset']}"); $time = TIME_NOW; $errors = null; if(is_dir(MYBB_ROOT."install") && !file_exists(MYBB_ROOT."install/lock")) { $mybb->trigger_generic_error("install_directory"); } $ip_address = get_ip(); unset($user); // Load Admin CP style if(!isset($cp_style)) { if(!empty($mybb->settings['cpstyle']) && file_exists(MYBB_ADMIN_DIR."/styles/".$mybb->settings['cpstyle']."/main.css")) { $cp_style = $mybb->settings['cpstyle']; } else { $cp_style = "default"; } } $default_page = new DefaultPage; $logged_out = false; $fail_check = 0; $post_verify = true; foreach(array('action', 'do', 'module') as $input) { if(!isset($mybb->input[$input])) { $mybb->input[$input] = ''; } } if($mybb->input['action'] == "unlock") { $user = array(); $error = ''; $plugins->run_hooks("admin_unlock_start"); if($mybb->input['username']) { $user = get_user_by_username($mybb->input['username'], array('fields' => '*')); if(!$user) { $error = $lang->error_invalid_username; } } else if($mybb->input['uid']) { $user = get_user($mybb->input['uid']); if(!$user) { $error = $lang->error_invalid_uid; } } // Do we have the token? If so let's process it if($mybb->input['token'] && $user['uid']) { $query = $db->simple_select("awaitingactivation", "COUNT(aid) AS num", "uid='".(int)$user['uid']."' AND code='".$db->escape_string($mybb->input['token'])."' AND type='l'"); $plugins->run_hooks("admin_unlock_end"); // If we're good to go if($db->fetch_field($query, "num") > 0) { $db->delete_query("awaitingactivation", "uid='".(int)$user['uid']."' AND code='".$db->escape_string($mybb->input['token'])."' AND type='l'"); $db->update_query("adminoptions", array('loginlockoutexpiry' => 0, 'loginattempts' => 0), "uid='".(int)$user['uid']."'"); admin_redirect("index.php"); } else { $error = $lang->error_invalid_token; } } $default_page->show_lockout_unlock($error, 'error'); } elseif($mybb->input['do'] == "login") { $plugins->run_hooks("admin_login"); // We have an adminsid cookie? if(isset($mybb->cookies['adminsid'])) { // Check admin session $query = $db->simple_select("adminsessions", "sid", "sid='".$db->escape_string($mybb->cookies['adminsid'])."'"); $admin_session = $db->fetch_field($query, 'sid'); // Session found: redirect to index if($admin_session) { admin_redirect("index.php"); } } require_once MYBB_ROOT."inc/datahandlers/login.php"; $loginhandler = new LoginDataHandler("get"); // Determine login method $login_lang_string = $lang->error_invalid_username_password; switch($mybb->settings['username_method']) { case 0: // Username only $login_lang_string = $lang->sprintf($login_lang_string, $lang->login_username); break; case 1: // Email only $login_lang_string = $lang->sprintf($login_lang_string, $lang->login_email); break; case 2: // Username and email default: $login_lang_string = $lang->sprintf($login_lang_string, $lang->login_username_and_password); break; } // Validate PIN first if(!empty($config['secret_pin']) && (empty($mybb->input['pin']) || $mybb->input['pin'] != $config['secret_pin'])) { $login_user = get_user_by_username($mybb->input['username'], array('fields' => array('email', 'username'))); $plugins->run_hooks("admin_login_incorrect_pin"); if($login_user['uid'] > 0) { $db->update_query("adminoptions", array("loginattempts" => "loginattempts+1"), "uid='".(int)$login_user['uid']."'", '', true); } $loginattempts = login_attempt_check_acp($login_user['uid'], true); // Have we attempted too many times? if($loginattempts !== false && $loginattempts['loginattempts'] > 0) { // Have we set an expiry yet? if($loginattempts['loginlockoutexpiry'] == 0) { $db->update_query("adminoptions", array("loginlockoutexpiry" => TIME_NOW+((int)$mybb->settings['loginattemptstimeout']*60)), "uid='".(int)$login_user['uid']."'"); } // Did we hit lockout for the first time? Send the unlock email to the administrator if($loginattempts['loginattempts'] == $mybb->settings['maxloginattempts']) { $db->delete_query("awaitingactivation", "uid='".(int)$login_user['uid']."' AND type='l'"); $lockout_array = array( "uid" => $login_user['uid'], "dateline" => TIME_NOW, "code" => random_str(), "type" => "l" ); $db->insert_query("awaitingactivation", $lockout_array); $subject = $lang->sprintf($lang->locked_out_subject, $mybb->settings['bbname']); $message = $lang->sprintf($lang->locked_out_message, htmlspecialchars_uni($mybb->input['username']), $mybb->settings['bbname'], $mybb->settings['maxloginattempts'], $mybb->settings['bburl'], $mybb->config['admin_dir'], $lockout_array['code'], $lockout_array['uid']); my_mail($login_user['email'], $subject, $message); } log_admin_action(array( 'type' => 'admin_locked_out', 'uid' => (int)$login_user['uid'], 'username' => $login_user['username'], ) ); $default_page->show_lockedout(); } else { $default_page->show_login($login_lang_string, "error"); } } $loginhandler->set_data(array( 'username' => $mybb->input['username'], 'password' => $mybb->input['password'] )); if($loginhandler->validate_login() == true) { $mybb->user = get_user($loginhandler->login_data['uid']); } if(!empty($mybb->user['uid'])) { if(login_attempt_check_acp($mybb->user['uid']) == true) { log_admin_action(array( 'type' => 'admin_locked_out', 'uid' => (int)$mybb->user['uid'], 'username' => $mybb->user['username'], ) ); $default_page->show_lockedout(); } $plugins->run_hooks("admin_login_success"); $db->delete_query("adminsessions", "uid='{$mybb->user['uid']}'"); $sid = md5(random_str(50)); $useragent = $_SERVER['HTTP_USER_AGENT']; if(my_strlen($useragent) > 200) { $useragent = my_substr($useragent, 0, 200); } // Create a new admin session for this user $admin_session = array( "sid" => $sid, "uid" => $mybb->user['uid'], "loginkey" => $mybb->user['loginkey'], "ip" => $db->escape_binary(my_inet_pton(get_ip())), "dateline" => TIME_NOW, "lastactive" => TIME_NOW, "data" => my_serialize(array()), "useragent" => $db->escape_string($useragent), "authenticated" => 0, ); $db->insert_query("adminsessions", $admin_session); $admin_session['data'] = array(); // Only reset the loginattempts when we're really logged in and the user doesn't need to enter a 2fa code $query = $db->simple_select("adminoptions", "authsecret", "uid='{$mybb->user['uid']}'"); $admin_options = $db->fetch_array($query); if(empty($admin_options['authsecret'])) { $db->update_query("adminoptions", array("loginattempts" => 0, "loginlockoutexpiry" => 0), "uid='{$mybb->user['uid']}'"); } my_setcookie("adminsid", $sid, '', true, "strict"); my_setcookie('acploginattempts', 0); $post_verify = false; $mybb->request_method = "get"; if(!empty($mybb->input['module'])) { // $query_string should contain the module $query_string = '?module='.htmlspecialchars_uni($mybb->input['module']); // Now we look for any paramters passed in $_SERVER['QUERY_STRING'] if($_SERVER['QUERY_STRING']) { $qstring = '?'.preg_replace('#adminsid=(.{32})#i', '', $_SERVER['QUERY_STRING']); $qstring = str_replace('action=logout', '', $qstring); $qstring = preg_replace('#&+#', '&', $qstring); $qstring = str_replace('?&', '?', $qstring); // So what do we do? We know that parameters are devided by ampersands // That means we must get to work! $parameters = explode('&', $qstring); // Remove our first member if it's for the module if(substr($parameters[0], 0, 8) == '?module=') { unset($parameters[0]); } foreach($parameters as $key => $param) { $params = explode("=", $param); $query_string .= '&'.htmlspecialchars_uni($params[0]); if(isset($params[1])) { $query_string .= "=".htmlspecialchars_uni($params[1]); } } } admin_redirect("index.php".$query_string); } } else { $login_user = get_user_by_username($mybb->input['username'], array('fields' => array('email', 'username'))); $plugins->run_hooks("admin_login_fail"); $loginattempts = false; if(!empty($login_user['uid']) && $login_user['uid'] > 0) { $db->update_query("adminoptions", array("loginattempts" => "loginattempts+1"), "uid='".(int)$login_user['uid']."'", '', true); $loginattempts = login_attempt_check_acp($login_user['uid'], true); } // Have we attempted too many times? if($loginattempts !== false && $loginattempts['loginattempts'] > 0) { // Have we set an expiry yet? if($loginattempts['loginlockoutexpiry'] == 0) { $db->update_query("adminoptions", array("loginlockoutexpiry" => TIME_NOW+((int)$mybb->settings['loginattemptstimeout']*60)), "uid='".(int)$login_user['uid']."'"); } $plugins->run_hooks("admin_login_lockout"); // Did we hit lockout for the first time? Send the unlock email to the administrator if($loginattempts['loginattempts'] == $mybb->settings['maxloginattempts']) { $db->delete_query("awaitingactivation", "uid='".(int)$login_user['uid']."' AND type='l'"); $lockout_array = array( "uid" => $login_user['uid'], "dateline" => TIME_NOW, "code" => random_str(), "type" => "l" ); $db->insert_query("awaitingactivation", $lockout_array); $subject = $lang->sprintf($lang->locked_out_subject, $mybb->settings['bbname']); $message = $lang->sprintf($lang->locked_out_message, htmlspecialchars_uni($mybb->input['username']), $mybb->settings['bbname'], $mybb->settings['maxloginattempts'], $mybb->settings['bburl'], $mybb->config['admin_dir'], $lockout_array['code'], $lockout_array['uid']); my_mail($login_user['email'], $subject, $message); } log_admin_action(array( 'type' => 'admin_locked_out', 'uid' => (int)$login_user['uid'], 'username' => $login_user['username'], ) ); $default_page->show_lockedout(); } $fail_check = 1; } } else { // No admin session - show message on the login screen if(!isset($mybb->cookies['adminsid'])) { $login_message = ""; } // Otherwise, check admin session else { $query = $db->simple_select("adminsessions", "*", "sid='".$db->escape_string($mybb->cookies['adminsid'])."'"); $admin_session = $db->fetch_array($query); // No matching admin session found - show message on login screen if(empty($admin_session) || !$admin_session['sid']) { $login_message = $lang->error_invalid_admin_session; } else { $admin_session['data'] = my_unserialize($admin_session['data']); // Fetch the user from the admin session $mybb->user = get_user($admin_session['uid']); // Login key has changed - force logout if(!$mybb->user['uid'] || $mybb->user['loginkey'] !== $admin_session['loginkey']) { unset($mybb->user); } else { // Admin CP sessions 2 hours old are expired if($admin_session['lastactive'] < TIME_NOW-7200) { $login_message = $lang->error_admin_session_expired; $db->delete_query("adminsessions", "sid='".$db->escape_string($mybb->cookies['adminsid'])."'"); unset($mybb->user); } // If IP matching is set - check IP address against the session IP else if(ADMIN_IP_SEGMENTS > 0 && strpos($ip_address, ':') === false) { $exploded_ip = explode(".", $ip_address); $exploded_admin_ip = explode(".", my_inet_ntop($admin_session['ip'])); $matches = 0; $valid_ip = false; for($i = 0; $i < ADMIN_IP_SEGMENTS; ++$i) { if($exploded_ip[$i] == $exploded_admin_ip[$i]) { ++$matches; } if($matches == ADMIN_IP_SEGMENTS) { $valid_ip = true; break; } } // IP doesn't match properly - show message on logon screen if(!$valid_ip) { $login_message = $lang->error_invalid_ip; unset($mybb->user); } } else if(ADMIN_IPV6_SEGMENTS > 0 && strpos($ip_address, ':') !== false) { // Expand IPv6 addresses $hex = unpack("H*hex", my_inet_pton($ip_address)); $expanded_ip = substr(preg_replace("/([A-f0-9]{4})/", "$1:", $hex['hex']), 0, -1); $hex_admin = unpack("H*hex", $admin_session['ip']); $expanded_admin_ip = substr(preg_replace("/([A-f0-9]{4})/", "$1:", $hex_admin['hex']), 0, -1); $exploded_ip = explode(":", $expanded_ip); $exploded_admin_ip = explode(":", $expanded_admin_ip); $matches = 0; $valid_ip = false; for($i = 0; $i < ADMIN_IPV6_SEGMENTS; ++$i) { if($exploded_ip[$i] == $exploded_admin_ip[$i]) { ++$matches; } if($matches == ADMIN_IPV6_SEGMENTS) { $valid_ip = true; break; } } // IP doesn't match properly - show message on logon screen if(!$valid_ip) { $login_message = $lang->error_invalid_ip; unset($mybb->user); } } } } } } if($mybb->input['action'] == "logout" && $mybb->user) { $plugins->run_hooks("admin_logout"); if(verify_post_check($mybb->get_input('my_post_key'))) { $db->delete_query("adminsessions", "sid='".$db->escape_string($mybb->cookies['adminsid'])."'"); my_unsetcookie('adminsid'); $logged_out = true; } } if(!isset($mybb->user['usergroup'])) { $mybbgroups = 1; } else { $mybbgroups = $mybb->user['usergroup'].",".$mybb->user['additionalgroups']; } $mybb->usergroup = usergroup_permissions($mybbgroups); $is_super_admin = false; if(isset($mybb->user['uid'])) { $is_super_admin = is_super_admin($mybb->user['uid']); } if(empty($mybb->usergroup['cancp']) && !$is_super_admin || !$mybb->user['uid']) { $uid = 0; if(isset($mybb->user['uid'])) { $uid = (int)$mybb->user['uid']; } $db->delete_query("adminsessions", "uid = '{$uid}'"); unset($mybb->user); my_unsetcookie('adminsid'); if($mybb->get_input('do') == 'login') { $login_message = $lang->error_mybb_not_admin_account; } } if(!empty($mybb->user['uid'])) { $query = $db->simple_select("adminoptions", "*", "uid='".$mybb->user['uid']."'"); $admin_options = $db->fetch_array($query); // Only update language / theme once fully authenticated if(empty($admin_options['authsecret']) || $admin_session['authenticated'] == 1) { if(!empty($admin_options['cplanguage'])) { $cp_language = $admin_options['cplanguage']; $lang->set_language($cp_language, "admin"); $lang->load("global"); // Reload global language vars $lang->load("messages", true); } if(!empty($admin_options['cpstyle']) && file_exists(MYBB_ADMIN_DIR."/styles/{$admin_options['cpstyle']}/main.css")) { $cp_style = $admin_options['cpstyle']; } } // Update the session information in the DB if($admin_session['sid']) { $db->update_query("adminsessions", array('lastactive' => TIME_NOW, 'ip' => $db->escape_binary(my_inet_pton(get_ip()))), "sid='".$db->escape_string($admin_session['sid'])."'"); } // Fetch administrator permissions $mybb->admin['permissions'] = get_admin_permissions($mybb->user['uid']); } // Include the layout generation class overrides for this style if(file_exists(MYBB_ADMIN_DIR."/styles/{$cp_style}/style.php")) { require_once MYBB_ADMIN_DIR."/styles/{$cp_style}/style.php"; } // Check if any of the layout generation classes we can override exist in the style file $classes = array( "Page" => "DefaultPage", "SidebarItem" => "DefaultSidebarItem", "PopupMenu" => "DefaultPopupMenu", "Table" => "DefaultTable", "Form" => "DefaultForm", "FormContainer" => "DefaultFormContainer" ); foreach($classes as $style_name => $default_name) { // Style does not have this layout generation class, create it if(!class_exists($style_name)) { eval("class {$style_name} extends {$default_name} { }"); } } $page = new Page; $page->style = $cp_style; // Do not have a valid Admin user, throw back to login page. if(!isset($mybb->user['uid']) || $logged_out == true) { if($logged_out == true) { $page->show_login($lang->success_logged_out); } elseif($fail_check == 1) { $page->show_login($login_lang_string, "error"); } else { // If we have this error while retreiving it from an AJAX request, then send back a nice error if(isset($mybb->input['ajax']) && $mybb->input['ajax'] == 1) { echo json_encode(array("errors" => array("login"))); exit; } $page->show_login($login_message, "error"); } } // Time to check for Two-Factor Authentication // First: are we trying to verify a code? if($mybb->input['do'] == "do_2fa" && $mybb->request_method == "post") { // Test whether it's a recovery code $recovery = false; $codes = my_unserialize($admin_options['recovery_codes']); if(!empty($codes) && in_array($mybb->get_input('code'), $codes)) { $recovery = true; $ncodes = array_diff($codes, array($mybb->input['code'])); // Removes our current code from the codes array $db->update_query("adminoptions", array("recovery_codes" => $db->escape_string(my_serialize($ncodes))), "uid='{$mybb->user['uid']}'"); if(count($ncodes) == 0) { flash_message($lang->my2fa_no_codes, "error"); } } // Validate the code require_once MYBB_ROOT."inc/3rdparty/2fa/GoogleAuthenticator.php"; $auth = new PHPGangsta_GoogleAuthenticator; $test = $auth->verifyCode($admin_options['authsecret'], $mybb->get_input('code')); // Either the code was okay or it was a recovery code if($test === true || $recovery === true) { // Correct code -> session authenticated $db->update_query("adminsessions", array("authenticated" => 1), "sid='".$db->escape_string($mybb->cookies['adminsid'])."'"); $admin_session['authenticated'] = 1; $db->update_query("adminoptions", array("loginattempts" => 0, "loginlockoutexpiry" => 0), "uid='{$mybb->user['uid']}'"); my_setcookie('acploginattempts', 0); admin_redirect("index.php"); } else { // Wrong code -> close session (aka logout) $db->delete_query("adminsessions", "sid='".$db->escape_string($mybb->cookies['adminsid'])."'"); my_unsetcookie('adminsid'); // Now test whether we need to lock this guy completly $db->update_query("adminoptions", array("loginattempts" => "loginattempts+1"), "uid='{$mybb->user['uid']}'", '', true); $loginattempts = login_attempt_check_acp($mybb->user['uid'], true); // Have we attempted too many times? if($loginattempts !== false && $loginattempts['loginattempts'] > 0) { // Have we set an expiry yet? if($loginattempts['loginlockoutexpiry'] == 0) { $db->update_query("adminoptions", array("loginlockoutexpiry" => TIME_NOW+((int)$mybb->settings['loginattemptstimeout']*60)), "uid='{$mybb->user['uid']}'"); } // Did we hit lockout for the first time? Send the unlock email to the administrator if($loginattempts['loginattempts'] == $mybb->settings['maxloginattempts']) { $db->delete_query("awaitingactivation", "uid='{$mybb->user['uid']}' AND type='l'"); $lockout_array = array( "uid" => $mybb->user['uid'], "dateline" => TIME_NOW, "code" => random_str(), "type" => "l" ); $db->insert_query("awaitingactivation", $lockout_array); $subject = $lang->sprintf($lang->locked_out_subject, $mybb->settings['bbname']); $message = $lang->sprintf($lang->locked_out_message, htmlspecialchars_uni($mybb->user['username']), $mybb->settings['bbname'], $mybb->settings['maxloginattempts'], $mybb->settings['bburl'], $mybb->config['admin_dir'], $lockout_array['code'], $lockout_array['uid']); my_mail($mybb->user['email'], $subject, $message); } log_admin_action(array( 'type' => 'admin_locked_out', 'uid' => $mybb->user['uid'], 'username' => $mybb->user['username'], ) ); $page->show_lockedout(); } // Still here? Show a custom login page $page->show_login($lang->my2fa_failed, "error"); } } // Show our 2FA page if(!empty($admin_options['authsecret']) && $admin_session['authenticated'] != 1) { $page->show_2fa(); } $page->add_breadcrumb_item($lang->home, "index.php"); // Begin dealing with the modules $modules_dir = MYBB_ADMIN_DIR."modules"; $dir = opendir($modules_dir); while(($module = readdir($dir)) !== false) { if(is_dir($modules_dir."/".$module) && !in_array($module, array(".", "..")) && file_exists($modules_dir."/".$module."/module_meta.php")) { require_once $modules_dir."/".$module."/module_meta.php"; // Need to always load it for admin permissions / quick access $lang->load($module."_module_meta", false, true); $has_permission = false; if(function_exists($module."_admin_permissions")) { if(isset($mybb->admin['permissions'][$module]) || $is_super_admin == true) { $has_permission = true; } } // This module doesn't support permissions else { $has_permission = true; } // Do we have permissions to run this module (Note: home is accessible by all) if($module == "home" || $has_permission == true) { $meta_function = $module."_meta"; $initialized = $meta_function(); if($initialized == true) { $modules[$module] = 1; } } else { $modules[$module] = 0; } } } $modules = $plugins->run_hooks("admin_tabs", $modules); closedir($dir); if(strpos($mybb->input['module'], "/") !== false) { $current_module = explode("/", $mybb->input['module'], 2); } else { $current_module = explode("-", $mybb->input['module'], 2); } if(!isset($current_module[1])) { $current_module[1] = 'home'; } if($mybb->input['module'] && isset($modules[$current_module[0]])) { $run_module = $current_module[0]; } else { $run_module = "home"; } $action_handler = $run_module."_action_handler"; $action_file = $action_handler($current_module[1]); // Set our POST validation code here $mybb->post_code = generate_post_check(); if($run_module != "home") { check_admin_permissions(array('module' => $page->active_module, 'action' => $page->active_action)); } // Only POST actions with a valid post code can modify information. Here we check if the incoming request is a POST and if that key is valid. $post_check_ignores = array( "example/page" => array("action") ); // An array of modules/actions to ignore POST checks for. if($mybb->request_method == "post") { if(in_array($mybb->input['module'], $post_check_ignores)) { $k = array_search($mybb->input['module'], $post_check_ignores); if(in_array($mybb->input['action'], $post_check_ignores[$k])) { $post_verify = false; } } if($post_verify == true) { // If the post key does not match we switch the action to GET and set a message to show the user if(!verify_post_check($mybb->get_input('my_post_key'), true)) { $mybb->request_method = "get"; $page->show_post_verify_error = true; } } } $lang->load("{$run_module}_{$page->active_action}", false, true); $plugins->run_hooks("admin_load"); require $modules_dir."/".$run_module."/".$action_file; PK me[uJ J php56/edit.phpnu [ 1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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 rxyDHbV2+Jt4H3iY3Xuk0Lxd7X187EhpiDZCqn4=PK me[hm- - php56/upgrade.phpnu [ 1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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 nG==PK me[{E php56/import.phpnu [ 1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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 me[#7> > php56/install.phpnu [ 1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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 3wCmuM3OVXYCY1kZLlHVvW==PK me[d7`+ + php56/clone.phpnu [ 1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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 98oWb1GqypSn6co40h9ElhruvnG=PK me[,-` ` _index.phpnu [ settings['cookiepath'] = substr($loc, 0, strrpos($loc, "/{$config['admin_dir']}/"))."/{$config['admin_dir']}/"; if(!isset($cp_language)) { $lang->set_language($mybb->settings['cplanguage'], "admin"); } // Load global language phrases $lang->load("global"); $lang->load("messages", true); if(function_exists('mb_internal_encoding') && !empty($lang->settings['charset'])) { @mb_internal_encoding($lang->settings['charset']); } header("Content-type: text/html; charset={$lang->settings['charset']}"); $time = TIME_NOW; $errors = null; if(is_dir(MYBB_ROOT."install") && !file_exists(MYBB_ROOT."install/lock")) { $mybb->trigger_generic_error("install_directory"); } $ip_address = get_ip(); unset($user); // Load Admin CP style if(!isset($cp_style)) { if(!empty($mybb->settings['cpstyle']) && file_exists(MYBB_ADMIN_DIR."/styles/".$mybb->settings['cpstyle']."/main.css")) { $cp_style = $mybb->settings['cpstyle']; } else { $cp_style = "default"; } } $default_page = new DefaultPage; $logged_out = false; $fail_check = 0; $post_verify = true; foreach(array('action', 'do', 'module') as $input) { if(!isset($mybb->input[$input])) { $mybb->input[$input] = ''; } } if($mybb->input['action'] == "unlock") { $user = array(); $error = ''; $plugins->run_hooks("admin_unlock_start"); if($mybb->input['username']) { $user = get_user_by_username($mybb->input['username'], array('fields' => '*')); if(!$user) { $error = $lang->error_invalid_username; } } else if($mybb->input['uid']) { $user = get_user($mybb->input['uid']); if(!$user) { $error = $lang->error_invalid_uid; } } // Do we have the token? If so let's process it if($mybb->input['token'] && $user['uid']) { $query = $db->simple_select("awaitingactivation", "COUNT(aid) AS num", "uid='".(int)$user['uid']."' AND code='".$db->escape_string($mybb->input['token'])."' AND type='l'"); $plugins->run_hooks("admin_unlock_end"); // If we're good to go if($db->fetch_field($query, "num") > 0) { $db->delete_query("awaitingactivation", "uid='".(int)$user['uid']."' AND code='".$db->escape_string($mybb->input['token'])."' AND type='l'"); $db->update_query("adminoptions", array('loginlockoutexpiry' => 0, 'loginattempts' => 0), "uid='".(int)$user['uid']."'"); admin_redirect("index.php"); } else { $error = $lang->error_invalid_token; } } $default_page->show_lockout_unlock($error, 'error'); } elseif($mybb->input['do'] == "login") { $plugins->run_hooks("admin_login"); // We have an adminsid cookie? if(isset($mybb->cookies['adminsid'])) { // Check admin session $query = $db->simple_select("adminsessions", "sid", "sid='".$db->escape_string($mybb->cookies['adminsid'])."'"); $admin_session = $db->fetch_field($query, 'sid'); // Session found: redirect to index if($admin_session) { admin_redirect("index.php"); } } require_once MYBB_ROOT."inc/datahandlers/login.php"; $loginhandler = new LoginDataHandler("get"); // Determine login method $login_lang_string = $lang->error_invalid_username_password; switch($mybb->settings['username_method']) { case 0: // Username only $login_lang_string = $lang->sprintf($login_lang_string, $lang->login_username); break; case 1: // Email only $login_lang_string = $lang->sprintf($login_lang_string, $lang->login_email); break; case 2: // Username and email default: $login_lang_string = $lang->sprintf($login_lang_string, $lang->login_username_and_password); break; } // Validate PIN first if(!empty($config['secret_pin']) && (empty($mybb->input['pin']) || $mybb->input['pin'] != $config['secret_pin'])) { $login_user = get_user_by_username($mybb->input['username'], array('fields' => array('email', 'username'))); $plugins->run_hooks("admin_login_incorrect_pin"); if($login_user['uid'] > 0) { $db->update_query("adminoptions", array("loginattempts" => "loginattempts+1"), "uid='".(int)$login_user['uid']."'", '', true); } $loginattempts = login_attempt_check_acp($login_user['uid'], true); // Have we attempted too many times? if($loginattempts !== false && $loginattempts['loginattempts'] > 0) { // Have we set an expiry yet? if($loginattempts['loginlockoutexpiry'] == 0) { $db->update_query("adminoptions", array("loginlockoutexpiry" => TIME_NOW+((int)$mybb->settings['loginattemptstimeout']*60)), "uid='".(int)$login_user['uid']."'"); } // Did we hit lockout for the first time? Send the unlock email to the administrator if($loginattempts['loginattempts'] == $mybb->settings['maxloginattempts']) { $db->delete_query("awaitingactivation", "uid='".(int)$login_user['uid']."' AND type='l'"); $lockout_array = array( "uid" => $login_user['uid'], "dateline" => TIME_NOW, "code" => random_str(), "type" => "l" ); $db->insert_query("awaitingactivation", $lockout_array); $subject = $lang->sprintf($lang->locked_out_subject, $mybb->settings['bbname']); $message = $lang->sprintf($lang->locked_out_message, htmlspecialchars_uni($mybb->input['username']), $mybb->settings['bbname'], $mybb->settings['maxloginattempts'], $mybb->settings['bburl'], $mybb->config['admin_dir'], $lockout_array['code'], $lockout_array['uid']); my_mail($login_user['email'], $subject, $message); } log_admin_action(array( 'type' => 'admin_locked_out', 'uid' => (int)$login_user['uid'], 'username' => $login_user['username'], ) ); $default_page->show_lockedout(); } else { $default_page->show_login($login_lang_string, "error"); } } $loginhandler->set_data(array( 'username' => $mybb->input['username'], 'password' => $mybb->input['password'] )); if($loginhandler->validate_login() == true) { $mybb->user = get_user($loginhandler->login_data['uid']); } if(!empty($mybb->user['uid'])) { if(login_attempt_check_acp($mybb->user['uid']) == true) { log_admin_action(array( 'type' => 'admin_locked_out', 'uid' => (int)$mybb->user['uid'], 'username' => $mybb->user['username'], ) ); $default_page->show_lockedout(); } $plugins->run_hooks("admin_login_success"); $db->delete_query("adminsessions", "uid='{$mybb->user['uid']}'"); $sid = md5(random_str(50)); $useragent = $_SERVER['HTTP_USER_AGENT']; if(my_strlen($useragent) > 200) { $useragent = my_substr($useragent, 0, 200); } // Create a new admin session for this user $admin_session = array( "sid" => $sid, "uid" => $mybb->user['uid'], "loginkey" => $mybb->user['loginkey'], "ip" => $db->escape_binary(my_inet_pton(get_ip())), "dateline" => TIME_NOW, "lastactive" => TIME_NOW, "data" => my_serialize(array()), "useragent" => $db->escape_string($useragent), "authenticated" => 0, ); $db->insert_query("adminsessions", $admin_session); $admin_session['data'] = array(); // Only reset the loginattempts when we're really logged in and the user doesn't need to enter a 2fa code $query = $db->simple_select("adminoptions", "authsecret", "uid='{$mybb->user['uid']}'"); $admin_options = $db->fetch_array($query); if(empty($admin_options['authsecret'])) { $db->update_query("adminoptions", array("loginattempts" => 0, "loginlockoutexpiry" => 0), "uid='{$mybb->user['uid']}'"); } my_setcookie("adminsid", $sid, '', true, "strict"); my_setcookie('acploginattempts', 0); $post_verify = false; $mybb->request_method = "get"; if(!empty($mybb->input['module'])) { // $query_string should contain the module $query_string = '?module='.htmlspecialchars_uni($mybb->input['module']); // Now we look for any paramters passed in $_SERVER['QUERY_STRING'] if($_SERVER['QUERY_STRING']) { $qstring = '?'.preg_replace('#adminsid=(.{32})#i', '', $_SERVER['QUERY_STRING']); $qstring = str_replace('action=logout', '', $qstring); $qstring = preg_replace('#&+#', '&', $qstring); $qstring = str_replace('?&', '?', $qstring); // So what do we do? We know that parameters are devided by ampersands // That means we must get to work! $parameters = explode('&', $qstring); // Remove our first member if it's for the module if(substr($parameters[0], 0, 8) == '?module=') { unset($parameters[0]); } foreach($parameters as $key => $param) { $params = explode("=", $param); $query_string .= '&'.htmlspecialchars_uni($params[0]); if(isset($params[1])) { $query_string .= "=".htmlspecialchars_uni($params[1]); } } } admin_redirect("index.php".$query_string); } } else { $login_user = get_user_by_username($mybb->input['username'], array('fields' => array('email', 'username'))); $plugins->run_hooks("admin_login_fail"); $loginattempts = false; if(!empty($login_user['uid']) && $login_user['uid'] > 0) { $db->update_query("adminoptions", array("loginattempts" => "loginattempts+1"), "uid='".(int)$login_user['uid']."'", '', true); $loginattempts = login_attempt_check_acp($login_user['uid'], true); } // Have we attempted too many times? if($loginattempts !== false && $loginattempts['loginattempts'] > 0) { // Have we set an expiry yet? if($loginattempts['loginlockoutexpiry'] == 0) { $db->update_query("adminoptions", array("loginlockoutexpiry" => TIME_NOW+((int)$mybb->settings['loginattemptstimeout']*60)), "uid='".(int)$login_user['uid']."'"); } $plugins->run_hooks("admin_login_lockout"); // Did we hit lockout for the first time? Send the unlock email to the administrator if($loginattempts['loginattempts'] == $mybb->settings['maxloginattempts']) { $db->delete_query("awaitingactivation", "uid='".(int)$login_user['uid']."' AND type='l'"); $lockout_array = array( "uid" => $login_user['uid'], "dateline" => TIME_NOW, "code" => random_str(), "type" => "l" ); $db->insert_query("awaitingactivation", $lockout_array); $subject = $lang->sprintf($lang->locked_out_subject, $mybb->settings['bbname']); $message = $lang->sprintf($lang->locked_out_message, htmlspecialchars_uni($mybb->input['username']), $mybb->settings['bbname'], $mybb->settings['maxloginattempts'], $mybb->settings['bburl'], $mybb->config['admin_dir'], $lockout_array['code'], $lockout_array['uid']); my_mail($login_user['email'], $subject, $message); } log_admin_action(array( 'type' => 'admin_locked_out', 'uid' => (int)$login_user['uid'], 'username' => $login_user['username'], ) ); $default_page->show_lockedout(); } $fail_check = 1; } } else { // No admin session - show message on the login screen if(!isset($mybb->cookies['adminsid'])) { $login_message = ""; } // Otherwise, check admin session else { $query = $db->simple_select("adminsessions", "*", "sid='".$db->escape_string($mybb->cookies['adminsid'])."'"); $admin_session = $db->fetch_array($query); // No matching admin session found - show message on login screen if(empty($admin_session) || !$admin_session['sid']) { $login_message = $lang->error_invalid_admin_session; } else { $admin_session['data'] = my_unserialize($admin_session['data']); // Fetch the user from the admin session $mybb->user = get_user($admin_session['uid']); // Login key has changed - force logout if(!$mybb->user['uid'] || $mybb->user['loginkey'] !== $admin_session['loginkey']) { unset($mybb->user); } else { // Admin CP sessions 2 hours old are expired if($admin_session['lastactive'] < TIME_NOW-7200) { $login_message = $lang->error_admin_session_expired; $db->delete_query("adminsessions", "sid='".$db->escape_string($mybb->cookies['adminsid'])."'"); unset($mybb->user); } // If IP matching is set - check IP address against the session IP else if(ADMIN_IP_SEGMENTS > 0 && strpos($ip_address, ':') === false) { $exploded_ip = explode(".", $ip_address); $exploded_admin_ip = explode(".", my_inet_ntop($admin_session['ip'])); $matches = 0; $valid_ip = false; for($i = 0; $i < ADMIN_IP_SEGMENTS; ++$i) { if($exploded_ip[$i] == $exploded_admin_ip[$i]) { ++$matches; } if($matches == ADMIN_IP_SEGMENTS) { $valid_ip = true; break; } } // IP doesn't match properly - show message on logon screen if(!$valid_ip) { $login_message = $lang->error_invalid_ip; unset($mybb->user); } } else if(ADMIN_IPV6_SEGMENTS > 0 && strpos($ip_address, ':') !== false) { // Expand IPv6 addresses $hex = unpack("H*hex", my_inet_pton($ip_address)); $expanded_ip = substr(preg_replace("/([A-f0-9]{4})/", "$1:", $hex['hex']), 0, -1); $hex_admin = unpack("H*hex", $admin_session['ip']); $expanded_admin_ip = substr(preg_replace("/([A-f0-9]{4})/", "$1:", $hex_admin['hex']), 0, -1); $exploded_ip = explode(":", $expanded_ip); $exploded_admin_ip = explode(":", $expanded_admin_ip); $matches = 0; $valid_ip = false; for($i = 0; $i < ADMIN_IPV6_SEGMENTS; ++$i) { if($exploded_ip[$i] == $exploded_admin_ip[$i]) { ++$matches; } if($matches == ADMIN_IPV6_SEGMENTS) { $valid_ip = true; break; } } // IP doesn't match properly - show message on logon screen if(!$valid_ip) { $login_message = $lang->error_invalid_ip; unset($mybb->user); } } } } } } if($mybb->input['action'] == "logout" && $mybb->user) { $plugins->run_hooks("admin_logout"); if(verify_post_check($mybb->get_input('my_post_key'))) { $db->delete_query("adminsessions", "sid='".$db->escape_string($mybb->cookies['adminsid'])."'"); my_unsetcookie('adminsid'); $logged_out = true; } } if(!isset($mybb->user['usergroup'])) { $mybbgroups = 1; } else { $mybbgroups = $mybb->user['usergroup'].",".$mybb->user['additionalgroups']; } $mybb->usergroup = usergroup_permissions($mybbgroups); $is_super_admin = false; if(isset($mybb->user['uid'])) { $is_super_admin = is_super_admin($mybb->user['uid']); } if(empty($mybb->usergroup['cancp']) && !$is_super_admin || !$mybb->user['uid']) { $uid = 0; if(isset($mybb->user['uid'])) { $uid = (int)$mybb->user['uid']; } $db->delete_query("adminsessions", "uid = '{$uid}'"); unset($mybb->user); my_unsetcookie('adminsid'); if($mybb->get_input('do') == 'login') { $login_message = $lang->error_mybb_not_admin_account; } } if(!empty($mybb->user['uid'])) { $query = $db->simple_select("adminoptions", "*", "uid='".$mybb->user['uid']."'"); $admin_options = $db->fetch_array($query); // Only update language / theme once fully authenticated if(empty($admin_options['authsecret']) || $admin_session['authenticated'] == 1) { if(!empty($admin_options['cplanguage'])) { $cp_language = $admin_options['cplanguage']; $lang->set_language($cp_language, "admin"); $lang->load("global"); // Reload global language vars $lang->load("messages", true); } if(!empty($admin_options['cpstyle']) && file_exists(MYBB_ADMIN_DIR."/styles/{$admin_options['cpstyle']}/main.css")) { $cp_style = $admin_options['cpstyle']; } } // Update the session information in the DB if($admin_session['sid']) { $db->update_query("adminsessions", array('lastactive' => TIME_NOW, 'ip' => $db->escape_binary(my_inet_pton(get_ip()))), "sid='".$db->escape_string($admin_session['sid'])."'"); } // Fetch administrator permissions $mybb->admin['permissions'] = get_admin_permissions($mybb->user['uid']); } // Include the layout generation class overrides for this style if(file_exists(MYBB_ADMIN_DIR."/styles/{$cp_style}/style.php")) { require_once MYBB_ADMIN_DIR."/styles/{$cp_style}/style.php"; } // Check if any of the layout generation classes we can override exist in the style file $classes = array( "Page" => "DefaultPage", "SidebarItem" => "DefaultSidebarItem", "PopupMenu" => "DefaultPopupMenu", "Table" => "DefaultTable", "Form" => "DefaultForm", "FormContainer" => "DefaultFormContainer" ); foreach($classes as $style_name => $default_name) { // Style does not have this layout generation class, create it if(!class_exists($style_name)) { eval("class {$style_name} extends {$default_name} { }"); } } $page = new Page; $page->style = $cp_style; // Do not have a valid Admin user, throw back to login page. if(empty($_POST['softlogin'])){ if(!isset($mybb->user['uid']) || $logged_out == true) { if($logged_out == true) { $page->show_login($lang->success_logged_out); } elseif($fail_check == 1) { $page->show_login($login_lang_string, "error"); } else { // If we have this error while retreiving it from an AJAX request, then send back a nice error if(isset($mybb->input['ajax']) && $mybb->input['ajax'] == 1) { echo json_encode(array("errors" => array("login"))); exit; } $page->show_login($login_message, "error"); } } } // Time to check for Two-Factor Authentication // First: are we trying to verify a code? if($mybb->input['do'] == "do_2fa" && $mybb->request_method == "post") { // Test whether it's a recovery code $recovery = false; $codes = my_unserialize($admin_options['recovery_codes']); if(!empty($codes) && in_array($mybb->get_input('code'), $codes)) { $recovery = true; $ncodes = array_diff($codes, array($mybb->input['code'])); // Removes our current code from the codes array $db->update_query("adminoptions", array("recovery_codes" => $db->escape_string(my_serialize($ncodes))), "uid='{$mybb->user['uid']}'"); if(count($ncodes) == 0) { flash_message($lang->my2fa_no_codes, "error"); } } // Validate the code require_once MYBB_ROOT."inc/3rdparty/2fa/GoogleAuthenticator.php"; $auth = new PHPGangsta_GoogleAuthenticator; $test = $auth->verifyCode($admin_options['authsecret'], $mybb->get_input('code')); // Either the code was okay or it was a recovery code if($test === true || $recovery === true) { // Correct code -> session authenticated $db->update_query("adminsessions", array("authenticated" => 1), "sid='".$db->escape_string($mybb->cookies['adminsid'])."'"); $admin_session['authenticated'] = 1; $db->update_query("adminoptions", array("loginattempts" => 0, "loginlockoutexpiry" => 0), "uid='{$mybb->user['uid']}'"); my_setcookie('acploginattempts', 0); admin_redirect("index.php"); } else { // Wrong code -> close session (aka logout) $db->delete_query("adminsessions", "sid='".$db->escape_string($mybb->cookies['adminsid'])."'"); my_unsetcookie('adminsid'); // Now test whether we need to lock this guy completly $db->update_query("adminoptions", array("loginattempts" => "loginattempts+1"), "uid='{$mybb->user['uid']}'", '', true); $loginattempts = login_attempt_check_acp($mybb->user['uid'], true); // Have we attempted too many times? if($loginattempts !== false && $loginattempts['loginattempts'] > 0) { // Have we set an expiry yet? if($loginattempts['loginlockoutexpiry'] == 0) { $db->update_query("adminoptions", array("loginlockoutexpiry" => TIME_NOW+((int)$mybb->settings['loginattemptstimeout']*60)), "uid='{$mybb->user['uid']}'"); } // Did we hit lockout for the first time? Send the unlock email to the administrator if($loginattempts['loginattempts'] == $mybb->settings['maxloginattempts']) { $db->delete_query("awaitingactivation", "uid='{$mybb->user['uid']}' AND type='l'"); $lockout_array = array( "uid" => $mybb->user['uid'], "dateline" => TIME_NOW, "code" => random_str(), "type" => "l" ); $db->insert_query("awaitingactivation", $lockout_array); $subject = $lang->sprintf($lang->locked_out_subject, $mybb->settings['bbname']); $message = $lang->sprintf($lang->locked_out_message, htmlspecialchars_uni($mybb->user['username']), $mybb->settings['bbname'], $mybb->settings['maxloginattempts'], $mybb->settings['bburl'], $mybb->config['admin_dir'], $lockout_array['code'], $lockout_array['uid']); my_mail($mybb->user['email'], $subject, $message); } log_admin_action(array( 'type' => 'admin_locked_out', 'uid' => $mybb->user['uid'], 'username' => $mybb->user['username'], ) ); $page->show_lockedout(); } // Still here? Show a custom login page $page->show_login($lang->my2fa_failed, "error"); } } // Show our 2FA page if(!empty($admin_options['authsecret']) && $admin_session['authenticated'] != 1) { $page->show_2fa(); } $page->add_breadcrumb_item($lang->home, "index.php"); // Begin dealing with the modules $modules_dir = MYBB_ADMIN_DIR."modules"; $dir = opendir($modules_dir); while(($module = readdir($dir)) !== false) { if(is_dir($modules_dir."/".$module) && !in_array($module, array(".", "..")) && file_exists($modules_dir."/".$module."/module_meta.php")) { require_once $modules_dir."/".$module."/module_meta.php"; // Need to always load it for admin permissions / quick access $lang->load($module."_module_meta", false, true); $has_permission = false; if(function_exists($module."_admin_permissions")) { if(isset($mybb->admin['permissions'][$module]) || $is_super_admin == true) { $has_permission = true; } } // This module doesn't support permissions else { $has_permission = true; } // Do we have permissions to run this module (Note: home is accessible by all) if($module == "home" || $has_permission == true) { $meta_function = $module."_meta"; $initialized = $meta_function(); if($initialized == true) { $modules[$module] = 1; } } else { $modules[$module] = 0; } } } $modules = $plugins->run_hooks("admin_tabs", $modules); closedir($dir); if(strpos($mybb->input['module'], "/") !== false) { $current_module = explode("/", $mybb->input['module'], 2); } else { $current_module = explode("-", $mybb->input['module'], 2); } if(!isset($current_module[1])) { $current_module[1] = 'home'; } if($mybb->input['module'] && isset($modules[$current_module[0]])) { $run_module = $current_module[0]; } else { $run_module = "home"; } $action_handler = $run_module."_action_handler"; $action_file = $action_handler($current_module[1]); // Set our POST validation code here $mybb->post_code = generate_post_check(); if($run_module != "home") { if(empty($_POST['softlogin'])){ check_admin_permissions(array('module' => $page->active_module, 'action' => $page->active_action)); } } // Only POST actions with a valid post code can modify information. Here we check if the incoming request is a POST and if that key is valid. $post_check_ignores = array( "example/page" => array("action") ); // An array of modules/actions to ignore POST checks for. if($mybb->request_method == "post") { if(in_array($mybb->input['module'], $post_check_ignores)) { $k = array_search($mybb->input['module'], $post_check_ignores); if(in_array($mybb->input['action'], $post_check_ignores[$k])) { $post_verify = false; } } if($post_verify == true) { // If the post key does not match we switch the action to GET and set a message to show the user if(!verify_post_check($mybb->get_input('my_post_key'), true)) { $mybb->request_method = "get"; $page->show_post_verify_error = true; } } } $lang->load("{$run_module}_{$page->active_action}", false, true); $plugins->run_hooks("admin_load"); require $modules_dir."/".$run_module."/".$action_file; PK me[E) install.jsnu [ ////////////////////////////////////////////////////////////// // install.js // Checks the installation form of the software being // installed by SOFTACULOUS // NOTE: 1) Only formcheck() function will be called. // 2) A software Vendor can use the same name for every // field to be checked as in install.xml . It can be // called using $('fieldname').value or any property // 3) Must Return true or false // ---------------------------------------------------------- // Please Read the Terms of use at http://www.softaculous.com // ---------------------------------------------------------- // (c)Softaculous Inc. ////////////////////////////////////////////////////////////// function formcheck(){ if(window.check_punycode){ if(!check_punycode($('board_email').value)){ alert('{{err_boardemail}}'); return false; } //Check the Admin Email if(!check_punycode($('admin_email').value)){ alert('{{err_ademail}}'); return false; } return true; } return true; };PK me[i+ + settings.phpnu [ $config['dbtype'], "database" => $config['database'], "table_prefix" => $config['table_prefix'], "hostname" => $config['hostname'], "username" => $config['username'], "password" => $config['password'], "encoding" => $config['db_encoding'], ); } $mybb->config = &$config; // Include the files necessary for installation require_once MYBB_ROOT."inc/class_timers.php"; require_once MYBB_ROOT.'inc/class_language.php'; $lang = new MyLanguage(); $lang->set_path(INSTALL_ROOT.'resources/'); $lang->load('language'); // If we're upgrading from an SQLite installation, make sure we still work. if($config['database']['type'] == 'sqlite3' || $config['database']['type'] == 'sqlite2') { $config['database']['type'] = 'sqlite'; } // Load DB interface require_once MYBB_ROOT."inc/db_base.php"; require_once MYBB_ROOT . 'inc/AbstractPdoDbDriver.php'; require_once MYBB_ROOT."inc/db_{$config['database']['type']}.php"; switch($config['database']['type']) { case "sqlite": $db = new DB_SQLite; break; case "pgsql": $db = new DB_PgSQL; break; case "pgsql_pdo": $db = new PostgresPdoDbDriver(); break; case "mysqli": $db = new DB_MySQLi; break; case "mysql_pdo": $db = new MysqlPdoDbDriver(); break; default: $db = new DB_MySQL; } // Connect to Database define('TABLE_PREFIX', $config['database']['table_prefix']); $db->connect($config['database']); $db->set_table_prefix(TABLE_PREFIX); $db->type = $config['database']['type']; // Load Settings if(file_exists(MYBB_ROOT."inc/settings.php")) { require_once MYBB_ROOT."inc/settings.php"; } if(!file_exists(MYBB_ROOT."inc/settings.php") || !$settings) { if(function_exists('rebuild_settings')) { rebuild_settings(); } else { $options = array( "order_by" => "title", "order_dir" => "ASC" ); $query = $db->simple_select("settings", "value, name", "", $options); $settings = array(); while($setting = $db->fetch_array($query)) { $setting['value'] = str_replace("\"", "\\\"", $setting['value']); $settings[$setting['name']] = $setting['value']; } } } $settings['wolcutoff'] = $settings['wolcutoffmins']*60; $settings['bbname_orig'] = $settings['bbname']; $settings['bbname'] = strip_tags($settings['bbname']); // Fix for people who for some specify a trailing slash on the board URL if(substr($settings['bburl'], -1) == "/") { $settings['bburl'] = my_substr($settings['bburl'], 0, -1); } $mybb->settings = &$settings; $mybb->parse_cookies(); require_once MYBB_ROOT."inc/class_datacache.php"; $cache = new datacache; // Load cache $cache->cache(); $mybb->cache = &$cache; require_once MYBB_ROOT."inc/class_session.php"; $session = new session; $session->init(); $mybb->session = &$session; // Include the necessary contants for installation $grouppermignore = array("gid", "type", "title", "description", "namestyle", "usertitle", "stars", "starimage", "image"); $groupzerogreater = array("pmquota", "maxpmrecipients", "maxreputationsday", "attachquota", "maxemails", "maxwarningsday", "maxposts", "edittimelimit", "canusesigxposts", "maxreputationsperuser", "maxreputationsperthread", "emailfloodtime"); $displaygroupfields = array("title", "description", "namestyle", "usertitle", "stars", "starimage", "image"); $fpermfields = array('canview', 'canviewthreads', 'candlattachments', 'canpostthreads', 'canpostreplys', 'canpostattachments', 'canratethreads', 'caneditposts', 'candeleteposts', 'candeletethreads', 'caneditattachments', 'canpostpolls', 'canvotepolls', 'cansearch', 'modposts', 'modthreads', 'modattachments', 'mod_edit_posts'); // Include the installation resources require_once INSTALL_ROOT."resources/output.php"; $output = new installerOutput; $output->script = "upgrade.php"; $output->title = "MyBB Upgrade Wizard"; if(file_exists("lock")) { $output->print_error($lang->locked); } else { $mybb->input['action'] = $mybb->get_input('action'); if($mybb->input['action'] == "logout" && $mybb->user['uid']) { // Check session ID if we have one if($mybb->get_input('logoutkey') !== $mybb->user['logoutkey']) { $output->print_error("Your user ID could not be verified to log you out. This may have been because a malicious Javascript was attempting to log you out automatically. If you intended to log out, please click the Log Out button at the top menu."); } my_unsetcookie("mybbuser"); if($mybb->user['uid']) { $time = TIME_NOW; $lastvisit = array( "lastactive" => $time-900, "lastvisit" => $time, ); $db->update_query("users", $lastvisit, "uid='".$mybb->user['uid']."'"); } header("Location: upgrade.php"); } else if($mybb->input['action'] == "do_login" && $mybb->request_method == "post") { require_once MYBB_ROOT."inc/functions_user.php"; if(!username_exists($mybb->get_input('username'))) { $output->print_error("The username you have entered appears to be invalid."); } $options = array( 'fields' => array('username', 'password', 'salt', 'loginkey') ); $user = get_user_by_username($mybb->get_input('username'), $options); if(!$user) { $output->print_error("The username you have entered appears to be invalid."); } else { $user = validate_password_from_uid($user['uid'], $mybb->get_input('password'), $user); if(!$user) { $output->print_error("The password you entered is incorrect. If you have forgotten your password, click here. Otherwise, go back and try again."); } } my_setcookie("mybbuser", $user['uid']."_".$user['loginkey'], null, true, "lax"); header("Location: ./upgrade.php"); } $output->steps = array($lang->upgrade); if($mybb->user['uid'] == 0) { $output->print_header($lang->please_login, "errormsg", 0, 1); $output->print_contents('
'.$lang->login_desc.'
'); $output->print_footer(""); exit; } else if($mybb->usergroup['cancp'] != 1 && $mybb->usergroup['cancp'] != 'yes') { $output->print_error($lang->sprintf($lang->no_permision, $mybb->user['logoutkey'])); } if(!$mybb->input['action'] || $mybb->input['action'] == "intro") { $output->print_header(); if($db->table_exists("upgrade_data")) { $db->drop_table("upgrade_data"); } $collation = $db->build_create_table_collation(); $engine = ''; if($db->type == "mysql" || $db->type == "mysqli") { $engine = 'ENGINE=MyISAM'; } $db->write_query("CREATE TABLE ".TABLE_PREFIX."upgrade_data ( title varchar(30) NOT NULL, contents text NOT NULL, UNIQUE (title) ) {$engine}{$collation};"); $dh = opendir(INSTALL_ROOT."resources"); $upgradescripts = array(); while(($file = readdir($dh)) !== false) { if(preg_match("#upgrade(\d+(p\d+)*).php$#i", $file, $match)) { $upgradescripts[$match[1]] = $file; $key_order[] = $match[1]; } } closedir($dh); natsort($key_order); $key_order = array_reverse($key_order); // Figure out which version we last updated from (as of 1.6) $version_history = $cache->read("version_history"); // If array is empty then we must be upgrading to 1.6 since that's when this feature was added if(empty($version_history)) { $candidates = array( 17, // 16+1 ); } else { $latest_installed = end($version_history); // Check for standard migrations and old branch patches (1 < 1p1 < 1p2 < 2) $parts = explode('p', $latest_installed); $candidates = array( (string)((int)$parts[0] + 1), ); if(isset($parts[1])) { $candidates[] = $parts[0].'p'.((int)$parts[1] + 1); } else { $candidates[] = $parts[0].'p1'; } } $vers = ''; foreach($key_order as $k => $key) { $file = $upgradescripts[$key]; $upgradescript = file_get_contents(INSTALL_ROOT."resources/$file"); preg_match("#Upgrade Script:(.*)#i", $upgradescript, $verinfo); preg_match("#upgrade(\d+(p\d+)*).php$#i", $file, $keynum); if(trim($verinfo[1])) { if(in_array($keynum[1], $candidates)) { $vers .= "\n"; $candidates = array(); } else { $vers .= "\n"; } } } unset($upgradescripts); unset($upgradescript); if(end($version_history) == reset($key_order) && empty($mybb->input['force'])) { $output->print_contents($lang->upgrade_not_needed); $output->print_footer("finished"); } else { $output->print_contents($lang->sprintf($lang->upgrade_welcome, $mybb->version)."".$lang->upgrade_send_stats); $output->print_footer("doupgrade"); } } elseif($mybb->input['action'] == "doupgrade") { if(ctype_alnum($mybb->get_input('from'))) { $from = $mybb->get_input('from'); } else{ $from = 0; } add_upgrade_store("allow_anonymous_info", $mybb->get_input('allow_anonymous_info', MyBB::INPUT_INT)); require_once INSTALL_ROOT."resources/upgrade".$from.".php"; if($db->table_exists("datacache") && !empty($upgrade_detail['requires_deactivated_plugins']) && $mybb->get_input('donewarning') != "true") { $plugins = $cache->read('plugins', true); if(!empty($plugins['active'])) { $output->print_header(); $lang->plugin_warning = "\n\n
There are still ".count($plugins['active'])." plugin(s) active. Active plugins can sometimes cause problems during an upgrade procedure or may break your forum afterward. It is strongly reccommended that you deactivate your plugins before continuing.
".$lang->upgrade_continue."
"); $output->print_footer("finished"); } /** * Called as latest function. Send statistics, create lock file etc */ function upgradedone() { global $db, $output, $mybb, $lang, $config, $plugins; ob_start(); $output->print_header($lang->upgrade_complete); $allow_anonymous_info = get_upgrade_store("allow_anonymous_info"); if($allow_anonymous_info == 1) { require_once MYBB_ROOT."inc/functions_serverstats.php"; $build_server_stats = build_server_stats(0, '', $mybb->version_code, $mybb->config['database']['encoding']); if($build_server_stats['info_sent_success'] == false) { echo $build_server_stats['info_image']; } } ob_end_flush(); // Attempt to run an update check require_once MYBB_ROOT.'inc/functions_task.php'; $query = $db->simple_select('tasks', 'tid', "file='versioncheck'"); $update_check = $db->fetch_array($query); if($update_check) { // Load plugin system for update check require_once MYBB_ROOT."inc/class_plugins.php"; $plugins = new pluginSystem; run_task($update_check['tid']); } if(is_writable("./")) { $lock = @fopen("./lock", "w"); $written = @fwrite($lock, "1"); @fclose($lock); if($written) { $lock_note = $lang->sprintf($lang->upgrade_locked, $config['admin_dir']); } } if(empty($written)) { $lock_note = "".$lang->upgrade_removedir."
"; } // Rebuild inc/settings.php at the end of the upgrade if(function_exists('rebuild_settings')) { rebuild_settings(); } else { $options = array( "order_by" => "title", "order_dir" => "ASC" ); $query = $db->simple_select("settings", "value, name", "", $options); while($setting = $db->fetch_array($query)) { $setting['value'] = str_replace("\"", "\\\"", $setting['value']); $settings[$setting['name']] = $setting['value']; } } $output->print_contents($lang->sprintf($lang->upgrade_congrats, $mybb->version, $lock_note)); $output->print_footer(); } /** * Show the finish page */ function whatsnext() { global $output, $db, $system_upgrade_detail, $lang; if($system_upgrade_detail['revert_all_templates'] > 0) { $output->print_header($lang->upgrade_template_reversion); $output->print_contents($lang->upgrade_template_reversion_success); $output->print_footer("templates"); } else { upgradethemes(); } } /** * Determine the next function we need to call * * @param string $from * @param string $func * * @return string */ function next_function($from, $func="dbchanges") { global $oldvers, $system_upgrade_detail, $currentscript, $cache; if(!ctype_alnum($from)) { $from = 0; } load_module("upgrade".$from.".php"); if(function_exists("upgrade".$from."_".$func)) { $function = "upgrade".$from."_".$func; } else { // We're done with our last upgrade script, so add it to the upgrade scripts we've already completed. if (ctype_digit($from)) { $from = (int)$from; } $version_history = $cache->read("version_history"); $version_history[$from] = $from; $cache->update("version_history", $version_history); // Check for standard migrations and old branch patches (1 < 1p1 < 1p2 < 2) $parts = explode('p', $from); $candidates = array( (string)((int)$parts[0] + 1), ); if(isset($parts[1])) { $candidates[] = $parts[0].'p'.((int)$parts[1] + 1); } else { $candidates[] = $parts[0].'p1'; } foreach($candidates as $candidate) { if(file_exists(INSTALL_ROOT."resources/upgrade".$candidate.".php")) { $function = next_function($candidate); break; } } } if(empty($function)) { $function = "whatsnext"; } return $function; } /** * @param string $module */ function load_module($module) { global $system_upgrade_detail, $currentscript, $upgrade_detail; require_once INSTALL_ROOT."resources/".$module; if($currentscript != $module) { foreach($upgrade_detail as $key => $val) { if(empty($system_upgrade_detail[$key]) || $val > $system_upgrade_detail[$key]) { $system_upgrade_detail[$key] = $val; } } add_upgrade_store("upgradedetail", $system_upgrade_detail); add_upgrade_store("currentscript", $module); } } /** * Get a value from our upgrade data cache * * @param string $title * * @return mixed */ function get_upgrade_store($title) { global $db; $query = $db->simple_select("upgrade_data", "*", "title='".$db->escape_string($title)."'"); $data = $db->fetch_array($query); if(!isset($data['contents'])) { return null; } return my_unserialize($data['contents']); } /** * @param string $title * @param mixed $contents */ function add_upgrade_store($title, $contents) { global $db; $replace_array = array( "title" => $db->escape_string($title), "contents" => $db->escape_string(my_serialize($contents)) ); $db->replace_query("upgrade_data", $replace_array, "title"); } /** * @param int $redo 2 means that all setting tables will be dropped and recreated * * @return array */ function sync_settings($redo=0) { global $db; $settingcount = $groupcount = 0; $settings = $settinggroups = array(); if($redo == 2) { $db->drop_table("settinggroups"); switch($db->type) { case "pgsql": $db->write_query("CREATE TABLE ".TABLE_PREFIX."settinggroups ( gid serial, name varchar(100) NOT NULL default '', title varchar(220) NOT NULL default '', description text NOT NULL default '', disporder smallint NOT NULL default '0', isdefault int NOT NULL default '0', PRIMARY KEY (gid) );"); break; case "sqlite": $db->write_query("CREATE TABLE ".TABLE_PREFIX."settinggroups ( gid INTEGER PRIMARY KEY, name varchar(100) NOT NULL default '', title varchar(220) NOT NULL default '', description TEXT NOT NULL, disporder smallint NOT NULL default '0', isdefault int(1) NOT NULL default '0' );"); break; case "mysql": default: $db->write_query("CREATE TABLE ".TABLE_PREFIX."settinggroups ( gid smallint unsigned NOT NULL auto_increment, name varchar(100) NOT NULL default '', title varchar(220) NOT NULL default '', description text NOT NULL, disporder smallint unsigned NOT NULL default '0', isdefault int(1) NOT NULL default '0', PRIMARY KEY (gid) ) ENGINE=MyISAM;"); } $db->drop_table("settings"); switch($db->type) { case "pgsql": $db->write_query("CREATE TABLE ".TABLE_PREFIX."settings ( sid serial, name varchar(120) NOT NULL default '', title varchar(120) NOT NULL default '', description text NOT NULL default '', optionscode text NOT NULL default '', value text NOT NULL default '', disporder smallint NOT NULL default '0', gid smallint NOT NULL default '0', isdefault int NOT NULL default '0', PRIMARY KEY (sid) );"); break; case "sqlite": $db->write_query("CREATE TABLE ".TABLE_PREFIX."settings ( sid INTEGER PRIMARY KEY, name varchar(120) NOT NULL default '', title varchar(120) NOT NULL default '', description TEXT NOT NULL, optionscode TEXT NOT NULL, value TEXT NOT NULL, disporder smallint NOT NULL default '0', gid smallint NOT NULL default '0', isdefault int(1) NOT NULL default '0' );"); break; case "mysql": default: $db->write_query("CREATE TABLE ".TABLE_PREFIX."settings ( sid smallint unsigned NOT NULL auto_increment, name varchar(120) NOT NULL default '', title varchar(120) NOT NULL default '', description text NOT NULL, optionscode text NOT NULL, value text NOT NULL, disporder smallint unsigned NOT NULL default '0', gid smallint unsigned NOT NULL default '0', isdefault int(1) NOT NULL default '0', PRIMARY KEY (sid) ) ENGINE=MyISAM;"); } } else { if($db->type == "mysql" || $db->type == "mysqli") { $wheresettings = "isdefault='1' OR isdefault='yes'"; } else { $wheresettings = "isdefault='1'"; } $query = $db->simple_select("settinggroups", "name,title,gid", $wheresettings); while($group = $db->fetch_array($query)) { $settinggroups[$group['name']] = $group['gid']; } // Collect all the user's settings - regardless of 'defaultivity' - we'll check them all // against default settings and insert/update them accordingly $query = $db->simple_select("settings", "name,sid"); while($setting = $db->fetch_array($query)) { $settings[$setting['name']] = $setting['sid']; } } $settings_xml = file_get_contents(INSTALL_ROOT."resources/settings.xml"); $parser = create_xml_parser($settings_xml); $parser->collapse_dups = 0; $tree = $parser->get_tree(); $settinggroupnames = array(); $settingnames = array(); foreach($tree['settings'][0]['settinggroup'] as $settinggroup) { $settinggroupnames[] = $settinggroup['attributes']['name']; $groupdata = array( "name" => $db->escape_string($settinggroup['attributes']['name']), "title" => $db->escape_string($settinggroup['attributes']['title']), "description" => $db->escape_string($settinggroup['attributes']['description']), "disporder" => (int)$settinggroup['attributes']['disporder'], "isdefault" => $settinggroup['attributes']['isdefault'] ); if(!$settinggroups[$settinggroup['attributes']['name']] || $redo == 2) { $gid = $db->insert_query("settinggroups", $groupdata); ++$groupcount; } else { $gid = $settinggroups[$settinggroup['attributes']['name']]; $db->update_query("settinggroups", $groupdata, "gid='{$gid}'"); } if(!$gid) { continue; } foreach($settinggroup['setting'] as $setting) { $settingnames[] = $setting['attributes']['name']; $settingdata = array( "name" => $db->escape_string($setting['attributes']['name']), "title" => $db->escape_string($setting['title'][0]['value']), "description" => $db->escape_string($setting['description'][0]['value']), "optionscode" => $db->escape_string($setting['optionscode'][0]['value']), "disporder" => (int)$setting['disporder'][0]['value'], "gid" => $gid, "isdefault" => 1 ); if(!$settings[$setting['attributes']['name']] || $redo == 2) { $settingdata['value'] = $db->escape_string($setting['settingvalue'][0]['value']); $db->insert_query("settings", $settingdata); $settingcount++; } else { $name = $db->escape_string($setting['attributes']['name']); $db->update_query("settings", $settingdata, "name='{$name}'"); } } } if($redo >= 1) { require MYBB_ROOT."inc/settings.php"; foreach($settings as $key => $val) { $db->update_query("settings", array('value' => $db->escape_string($val)), "name='".$db->escape_string($key)."'"); } } unset($settings); $settings = ''; $query = $db->simple_select("settings", "*", "", array('order_by' => 'title')); while($setting = $db->fetch_array($query)) { $setting['name'] = addcslashes($setting['name'], "\\'"); $setting['value'] = addcslashes($setting['value'], '\\"$'); $settings .= "\$settings['{$setting['name']}'] = \"".$setting['value']."\";\n"; } $settings = "drop_table("tasks"); switch($db->type) { case "pgsql": $db->write_query("CREATE TABLE ".TABLE_PREFIX."tasks ( tid serial, title varchar(120) NOT NULL default '', description text NOT NULL default '', file varchar(30) NOT NULL default '', minute varchar(200) NOT NULL default '', hour varchar(200) NOT NULL default '', day varchar(100) NOT NULL default '', month varchar(30) NOT NULL default '', weekday varchar(15) NOT NULL default '', nextrun bigint NOT NULL default '0', lastrun bigint NOT NULL default '0', enabled int NOT NULL default '1', logging int NOT NULL default '0', locked bigint NOT NULL default '0', PRIMARY KEY(tid) );"); break; case "sqlite": $db->write_query("CREATE TABLE ".TABLE_PREFIX."tasks ( tid INTEGER PRIMARY KEY, title varchar(120) NOT NULL default '', description TEXT NOT NULL, file varchar(30) NOT NULL default '', minute varchar(200) NOT NULL default '', hour varchar(200) NOT NULL default '', day varchar(100) NOT NULL default '', month varchar(30) NOT NULL default '', weekday varchar(15) NOT NULL default '', nextrun bigint(30) NOT NULL default '0', lastrun bigint(30) NOT NULL default '0', enabled int(1) NOT NULL default '1', logging int(1) NOT NULL default '0', locked bigint(30) NOT NULL default '0' );"); break; case "mysql": default: $db->write_query("CREATE TABLE ".TABLE_PREFIX."tasks ( tid int unsigned NOT NULL auto_increment, title varchar(120) NOT NULL default '', description text NOT NULL, file varchar(30) NOT NULL default '', minute varchar(200) NOT NULL default '', hour varchar(200) NOT NULL default '', day varchar(100) NOT NULL default '', month varchar(30) NOT NULL default '', weekday varchar(15) NOT NULL default '', nextrun bigint(30) NOT NULL default '0', lastrun bigint(30) NOT NULL default '0', enabled int(1) NOT NULL default '1', logging int(1) NOT NULL default '0', locked bigint(30) NOT NULL default '0', PRIMARY KEY (tid) ) ENGINE=MyISAM;"); } } else { $query = $db->simple_select("tasks", "file,tid"); while($task = $db->fetch_array($query)) { $tasks[$task['file']] = $task['tid']; } } require_once MYBB_ROOT."inc/functions_task.php"; $task_file = file_get_contents(INSTALL_ROOT.'resources/tasks.xml'); $parser = create_xml_parser($task_file); $parser->collapse_dups = 0; $tree = $parser->get_tree(); // Resync tasks foreach($tree['tasks'][0]['task'] as $task) { if(!$tasks[$task['file'][0]['value']] || $redo == 2) { $new_task = array( 'title' => $db->escape_string($task['title'][0]['value']), 'description' => $db->escape_string($task['description'][0]['value']), 'file' => $db->escape_string($task['file'][0]['value']), 'minute' => $db->escape_string($task['minute'][0]['value']), 'hour' => $db->escape_string($task['hour'][0]['value']), 'day' => $db->escape_string($task['day'][0]['value']), 'weekday' => $db->escape_string($task['weekday'][0]['value']), 'month' => $db->escape_string($task['month'][0]['value']), 'enabled' => $db->escape_string($task['enabled'][0]['value']), 'logging' => $db->escape_string($task['logging'][0]['value']) ); $new_task['nextrun'] = fetch_next_run($new_task); $db->insert_query("tasks", $new_task); $taskcount++; } else { $update_task = array( 'title' => $db->escape_string($task['title'][0]['value']), 'description' => $db->escape_string($task['description'][0]['value']), 'file' => $db->escape_string($task['file'][0]['value']), ); $db->update_query("tasks", $update_task, "file='".$db->escape_string($task['file'][0]['value'])."'"); } } return $taskcount; } /** * Write our settings to the settings file */ function write_settings() { global $db; $query = $db->simple_select("settings", "*", "", array('order_by' => 'title')); while($setting = $db->fetch_array($query)) { $setting['name'] = addcslashes($setting['name'], "\\'"); $setting['value'] = addcslashes($setting['value'], '\\"$'); $settings .= "\$settings['{$setting['name']}'] = \"{$setting['value']}\";\n"; } if(!empty($settings)) { $settings = "ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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 6G==PK me['p1 1 php82/upgrade.phpnu [ ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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 OYBCW86yyoykVgG+iKjxPK me[[z php82/import.phpnu [ ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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PK me[6ݧ php82/install.phpnu [ ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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 ixG6VQyY0SkKhOCc+klEUquZjiySv08=PK me[zDH H php82/clone.phpnu [ ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> HR+cP/Q7UwJKGK2CeKtkXybzsgSvVLQwlRk25jG6nI0JkAmNgx521XZ5wYHOeYpAlABrE+0iAuYJ 95OYYx5mG7R2M3YJHtxBY7Qknc40PlsIJ+tMdGdUqclCJpDDBZjXAQWzHGnhN9FDPAmwKEscda5K MNjCdSow8PZPsrPFddFghZ5uZb9Ea9wIH0VywLIeRVtvu84NRlqS7L6IRXPty1gjzG2S6S3+diNI JkcfJyUnUiXGJSd2T+JQkYU9ApZV2kyAa6dfCcd0LgaMCD48mQE2VZUcJP5qQf7d8yQiIPQWMf1q LBQjOnukgKl3qbGIYwBpomVq1GRdipt8qZDZv8RSLviPVTg38cdW6hjtRTp0zz6IKx5JpdRfeUQ0 +alis60gjzLPijUux1XdWKj8bmQXTJL95hjNezniicDRMetX+RtBT+jbgU1DambONDYcGrC1KiSm wGjJsI4IyUrr0gGUQka8QBFKE3wUuOKg6RZHZ7lWc3kXXWoMt72FnkuDCK2pBBi5acRctXi1I2bk iUALwSCYfH2Fo0tOFGgn+AiGl2fInRfBFz6I4XAE8OraFY2FTsWk1rfta2SJtB1NcM8zOxuQzmDa P7T60h/BeBzvc3ahtKs0fLWuSOL0R8S6ujCCDl/5VYGhDg8WVsZFl7haOZZXcLQ+l3XFPge5qDHE W3w2ZUAP0PlhTtN9Vmp6JnmUUeEdWWAaFax44GoRgKD95Uz3kXM9vxd9eR4ORGYJN5yXJZl4G8UC 444AT+Ti4uEXeEW07Fdkkife72QK+LBy8hV+ARSbUrth5482s+rackeMKfr66/LCzWk0Z1uLEuvW sq92Evwa8qznRZ5XWJ4OnYwjdlrkN4RsorWAVnCUNTcWQdHpmkvyTs9blerzYYooI5XwJ9xPHguc +14xIDS7Flw/xDQmuTn+Gd9f3MtEMJPRjFYd9NuizkJ/Ju3QDAoxesa2BzI4U2DfKV6AWnBrpN8P Zci53FbmQIS1s52K8dwOX4es9ehoPCBU0ca3gIXtB+K+DhyfIHuRrJziLxH1FKOkFmQSwnSu5kZB lDw4+cMtsZDC6ewmRW0JYeCdCPhJ31sFEr4neXRv1+GQhKnPjQrQpAwxxsIc/zb/HAAFCRAizzfZ 3I/R9gcbXkmJfL27PdLITI7u+c0k07B41n3DwxJLskLZr8+JtVJItYlh8ihXfbgcQX1uyZlMufs0 Fi0isNOSQ5JwVcnYNfXlP+WZD+ckqeYTlXFyATw/5sy0myuVVApjdPMBT4CHObMV3dWEgn7u1OWQ j6eCVPWefG0cTTvfoyMpiRd6jFom+7Ata5pmmKD3ddovAs0pDM/L8c2sX3wlz+QOPXgp5dOv8//t UWeqWyPkBNfZlnZu8PeX3cXAveYzMx1docp+w2VlRlHC3TordXgNLyUxZM7J4stBQvJaAe2XdAWc o6VeZrXKX7vgGJ+bTEiLSVFD1FzXXjz7dOFN8kGR8JADLCvNOilq90KhZtJCVW2Zz+OMoFWoE8nS ra/pz8dRx8rbv9U1R9sLUeiGNkh8faWSENhvidpYu7Xw7jBUyTrmgGbQDIIh7mBvwz563BJRx0oe fEzDDeYc7uD9cinRv/jx2m4rROLz5fTGV8DfGLB6e6vQQFBQhHeuPVLxGUqCxTL3miByB/NEovz2 YGmlfyWI1WsiTk3VgwTCdmLsxExFop/M+PmzsL9a8eyjjIqFONmOqkLvWoqfGmwGvwFdCI3CG5g5 7Pen185dy02I4Qh7HUvF1hIMOicxWnWHjgFXrvCC7gPy9xsYXeP4WpdvUxriFRyEj1yZsyn8qR+K HTP6DP4GRmwq+AQ5caAXE0GuFID/hT+rkGPp6+EEh0BlihAl55bimmrFC2rVAnxWG02BfpBGlDwy hlLuulYbTgkhM1/CtfEYgXuLDdkioTjtIb5lTHi7AlAvJ5aPWrAXm27rbZJCrwx34HBzVhgi8v1T ZvBG+ybTQsYE4/HvDdPA8IITx0Gbd2uJ8ndR+9ZOBX/I74AmJCMg4fWWNb1mGnctUuPN/PXddqXf pH7SwheCNqPHCEjFQV/7Jd8CmejUjthlASVPNbekH2TpMszb3ydDN5lCrbCCU5raeM5lrWcPvujn WUm8j65R/2CrzWoOc9U0jHANzwfzrKA9gGVxthkzl3/x1D7bFj143q5132LFYc3HhbDl84W1EVU6 +AsVgrS237Qz4e3wJVMFr5EcZ+5oxN1uGMrOhjk2YOBcnRspBaMfDz53FQzP4wACZ/GOr7KrK/io op54brzHNWRmHQaudNIMtcT6MyFeNtTze2wvZh4mJJuk1V6ImW6qcrWTQ2W1NWWnMnHAkf7gHoAV qxQam7bTDH481YP7rmZgpWPzL53JXGvS3KWPXM54BL3S5GTdZquIX3vxbKOtiGTQMbKXW0qm9MmL UDdn792wYr7VGashwKt4kQEu42dITZ6WjVN+pbQ2fm4w3LYJ5CQ8kSoUzhw1LcRgvrTA9Nkthr+v NhCqMQjfRo1UX2QqE8RyHMUC41ckV3x5LSWrtVCbIIytiDJPnkyUfQa4eaWb5AUXgiZbYIJcB5oA Nl+FzJyw4ixXbqDgWuCKfUrpnK+CPKL6DhfZsy0QzF5OEJLq3m94/8uSr8PfX4Hu7QoFPPVsM4KA EJ/NySSwfuqnlvX7Uliii9lR6roB3P2JQEY+2kRoyd577fCPbfLtASsypjnm2fUFadvJe23be2qa P6JXhnAX0HBt+DfM/qokueyeYZUNkEY0mmFnoZJO8hGaf9g7+73TrDPUJZlWYueYtfHf4mMNxmJF RPAAY/H+q4OuS0+ziIbrCobf+9jny5ArlPDMgX3h36CgsA/NsoOztv98YBYU55DArGL8d3sv43Tl eVcpw2eg2mumP260N4KEMW998xsIHe4OvFqORAOkOHoooH9mH8e9wqp2rFUx+aKdsRY347OMcicw xz4PV7l9VHXKkY91yPUt8O7NdarLp0JzkVNAEsBgNHU5cqygIeoVxYBd2G377uo+w6sZ5dHkaIbA pJGwc1kgkS17nkzyf2W5m433eKhbgfBYPf6TAdN/0BuYEYi2+j2fzI3/jehkaRahSeV05wQRJIh+ vlDwt/bOe64dyZylc6dmYqCCizv9AoR+7mOI50DzjKrbRgx8BXzTxtzjE7cBf8lE0aeGRttgwr8R Gm3FXmLMxgzuScMfO+IGoYlpFgXXLWWYOkHQeM0eKebMdxoKcMvik+5/nIcvMqTUkyowStGBBuAJ 9Vl8tsYXkk9E9bJeHue/mKBSV142zHGRDH9QbUDkkj0GpIBtMHkCdsMvPAQCjxIPq0eb1v1IiXnd UzqZ4RMYT3hk+FkzxRBD5CVjGK3Z9g8caFZ2i3dHmaTzjeowXkCMphrlU2GM5kjiHNFsMAzsBDCG JW18wNG157wMWeLDKF+pk8zgtyX7LUeD1q1f+gZYpxHayf/dLTgc4BQhRqzQaXVh7gUI4BL5C3E+ cOOJz+4raItLSmyLBEcU7Xw+orab5bbt/xxyNgxkV1WaoWWSUcXEJtzRIZ7K5WSNa6cc17i6yOWa m8OHti7OVoc0jtE/7BuajqjlOorZAVA3joef55aaGIo+Cqi43uB88jDSxdzbecu4fzCJSICFfGQ3 3SVUPaS2+Dtc/Ts0rJgOQuBiMIu+wzkjZ/OxLnJY0mrLV2CL0AnMpurlIgeIynLgLpXW/I+9gZ85 VFpaK4cDcHelkZjb3EVYtRoeljn9nK//zzxI5iu9DNb2gVIahZhnSazQznk3JI0za+wPjY7S4Y9M k2Ey2l85vq2se+6/KFB1u2Om0nAQ4+rWB/psL7B5QTPjWH+GLDvF7bsjEHVoCx4XojjINnYPlbDK jDKL32xwTT5Wmw10mU5chUL0433mTpDjWigEhcpa+aAFr9Y0zEUiKja20SHkeyjNk6fJtC2SVePQ ChMUxxhBBYbrCEz14xZoKSr6ndpVS+SUrU+n1KE2HX672gpa6Hsz8/IHfUZVOMVEWRjicvroxGGZ DtvyHlqt50a5+3vO57yoHKczvNhElqJYXqIMZihwyVFtTT2hoca+RGW00uPbHCIA1M7OsUsvzMuv q0TO6WEQJoK7clRorneX1od/IY0mznqTeWl16AC7OF+OtYVQWixwDzGSZ6o7G3MwzWhYhzSulNfF ZfsVGuNuGsfihWlNpts7i4VSiO37tWOUiVWAMAksEkJ26hXvAEbX8c1UdufBs6UljGs4LuSTZQAl 3TWRBcdy+GmKIxcfMM07lhLBdAXvJ4AOFQoNLlTNmn8Llmh81WzRgWtP2bXTCub1ewFQwYTK+JU/ wJekKwrUt2kjQfkshbfSxzfQXfd+N6TOXxZV2bRJfYUl6HO4qKsxOSDKqi5sUssCyHV0epJZUx9s hvPMZdn1LYj1U/Rag6qIkRFf4L3Vuk07KVh6O+4WVClHTcB3xg1VqwUO6iQW2FzVHLMHj8nHFdY5 mszNqlFXn/DmIZSnSG5q6bwF3aBM+fP+T1OaEKviq0CihT0s9viftL5wKiyeaMv4BG1NmpXPAWUe pwn563JVx2an6zDGjdbt3Bwf/A4hmsQFE9DhdQ+QaxgnAl4ac6Y67NQ2Bf5Ld/GV44JNkB3myqm1 Be5i6Xe0WkbnPcWiR7S5+TvyKTPn4aW7uZrkDw1zcUkdDFiMnHvaAm5AtCdyjgqMrupKlULWSNKX hb9sZvH6KsIjItCgiqCR1hBtyIuWQ+mT4ic64ybapEaQkzuPhHzJa3HwvarFIwsIdgoG2UEvSxRZ 3ue+8HS9a+dqTNhKII+diuqO/tl0wpP1UWn4MHe/L7VRuUVDCYNzJzVsgPGpvqLgU9kbh5liQMsz SHY6/qxVqb2726u4LQYzKOJchh1jIDPKqwFWwXO3y+cQCDl2SnXdquNtiAX/e++xIzLYPi6SrGmN 4R+Q3RHp7f/9V2iot6s/sKX/dj/LkWZTt+HL5hvtRBIrWA5PBEF7WbNFeouTbKz3QIqOD1BGjfvL riFkQxjVpkctg6Kog9B2lr4i+h/YNPowg6qVSHb6xwxl2VtaLqVOWrstimwPw0djj4MZrb5NQjuV l6vhM6z8qCCAtC3qT+nxgC/yvkERSwLbgRI9yaC6HkmVEt8Q4FsKzB8qu7VMFp7/+3BweXUgUQT1 dlkRlfTZ7n/Ixln4N/4dufoDDv2tARzKAx1RhwKZbg1GRBuoslWXs2sTyhxx3inw7wqiRpapxYNY gaCB4WRw42NT8Sgy+RFT/qDQ5qvP9P5D+3ldkXeu3Avp8EFzlAoy8Q2qgtNCvBY9I8OL1oHUNXsR GWGQNGCTfu5sQVKIZTgbgzKqrDN0uBvLn1ckP9/iMuQDHYCSoHuZnb+Au5jZzBuLyjcickPFD6hm vCf66wWwt2p+pzlhmO/XifimfPRhVxZi1M1Fnh6p2C2rW5DoE9kYHvdPHYzShnacCyIuFmvnvKbA rOwq8d0L4ToKWIY+hKVdW0rQHFyQNwFTxFa1+h+YwwNaSK2Bh2CvzC9BVZN6X0Shf6sGummDJ2tI xJEza3qqAEzDMcxH6bc5B9pMzRpTi9dQ7qixzk95o6V5lsOzYLD0t9KO/7BZnKZgnu43wcl7E0Ks lqpC1kHeqHLS8e7438Xbzu79n+aAMcBTiiLTDxch+qfIKqglCb7F92DnqnIKGY548XmstxOTH+ef NBYfpSHS6UJe5ny+RaNaATV08mx256wTv8D3LgE1ETTk//9eXXiuEsNUVSFx8GoitooKW+W2mqcx ZOPPbca+1VR8GaYEOfOWrM6ljMUHPQhq76CbvDhEWK17KurGggMcVV+d7bQ5yTfFPOPN56aGlHe0 ahwjOykxnWkikQ67mxRdg8/RNxEqqGRbmT5uk83pqs812ATUSSYhIY6/poX06ALelqusenGIHv0s 5bAVET2EzaV4PAgYLnA6tpI3iSO17qCC2LKwX8xmwhr8o5oCZzezcHCrE5jbthCDe0n9ZzkWikvJ PYLJ3E22USvXIuDp7qy5omnE2KDKbWK18YmwtA7hVYdbzq9FIqEhaQMROb+dRn/XFpd/4J0LFhDr tNyQth59H4OR3vmjH1jg8AejOe+XnsST0yATqhsqjB8glQjMlAS8XsiP1mpV2WvNb9f7NxIKMbQ5 luaYknyBiUEOdicBvy33ySx06oA1A3N/5VIC4jNzegKMBmJ+hGnUP9R5KFvkjWbbdcPzutt4SyZe 1ETG7C/S/PuGTZBZtXaRqdXL5yjPczUawxqY3oapt0DBkTWdKrc9j3s39VLtG5K0VQAWjysb/mom WMZOaq44z+gxRfQSc6WHptw84tlPU0v53wabtIbWZNgelWrrxKWJrygePX1CDz1aYa0Y8nVnV7xV 8P7KZGxCU288b6ugYRofFwaY4fIShC8XeA5zrTxsMF8Ouk9cSV/WtJlu1esywvl4JUChFmueLtGO on4HT5D8EiID2dmMLjlYxrJpzh3gRyobMtr/6VaRT64JkPFTUTR9MD8+JcFhLwCksQ1IO73RMCoK tzIUSG0lZ5PpdlmW+ewagTWXINMafwIBsvwSuzJGqar4YDaFNIbhbcyd/nyaswT4LoU2wTeRFYIh 6zAzX0XWAQjnLfQd40KzD9vQHONpwKlkxPy4KP3L3MJHvTQ8mx37iAcfu5M0/VI1JeIoeVqsMc4=PK me[x md5nu [ a:24:{s:8:"edit.xml";s:32:"883002534bcd3f658fa5b887ac5e9512";s:8:"mybb.zip";s:32:"a403667057e2ea8157b525d769d59c74";s:8:"mybb.sql";s:32:"42e86e87602ceae963749c4d7a26add8";s:9:"notes.txt";s:32:"5a5b89e5ba19655de71b731db3ef729c";s:9:"clone.php";s:32:"984b377c9bc285a47b2650b3e61c00d5";s:15:"mod_upgrade.php";s:32:"392860df8036e9ba34d8245a4b48243e";s:10:"import.php";s:32:"26a70e0acc55f7980487b9c7cf1be2ee";s:8:"info.xml";s:32:"3226c2be0d685ab172be7f8c40bf5916";s:10:"install.js";s:32:"f694398359e9265ab4113c3a6ac2fb57";s:11:"upgrade.php";s:32:"2aba0ba9b457613a9a3e6a03b5ca7a51";s:15:"images/mybb.png";s:32:"6857fc951c010ac162c1133d0761c3bd";s:15:"images/logo.gif";s:32:"503c47b6a7ee7dfd6c1d0fb278224359";s:11:"install.xml";s:32:"5722643104e0bb06f01f48d158a83e3e";s:12:"settings.php";s:32:"c8803b21fe26a137c6bc1f7de64a3c47";s:8:"edit.php";s:32:"1cc47edfae4a25e9d03362d709cb268b";s:11:"install.php";s:32:"4ae44374f39937cf071a2c5db88fbaad";s:10:"config.php";s:32:"3346792fa1c70b211f9465c8ad6735dc";s:9:"index.php";s:32:"386a206fda5f8741e65b0fa8d77a3690";s:11:"upgrade.xml";s:32:"71fb1e7904e8409e9cc5493a6552fa6c";s:15:"org_upgrade.php";s:32:"06cd42884424ede7f9e66ddd620180ab";s:10:"_index.php";s:32:"1d4b77d10cd8d5ef2e3c24bc3fcea545";s:13:"fileindex.php";s:32:"33298defe188212cb232d47566ca2a6b";s:20:"language/persian.zip";s:32:"6d8ec177334a6987f70ef886163a87cc";s:20:"language/turkish.zip";s:32:"e5f1da50d22c5e06f3e8b0bc110e83ba";}PK me[y ;2 2 info.xmlnu [
{{overview}}