當前位置: 首頁>>代碼示例>>PHP>>正文


PHP ITSEC_Core::get_core_dir方法代碼示例

本文整理匯總了PHP中ITSEC_Core::get_core_dir方法的典型用法代碼示例。如果您正苦於以下問題:PHP ITSEC_Core::get_core_dir方法的具體用法?PHP ITSEC_Core::get_core_dir怎麽用?PHP ITSEC_Core::get_core_dir使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在ITSEC_Core的用法示例。


在下文中一共展示了ITSEC_Core::get_core_dir方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: sanitize_settings

 protected function sanitize_settings()
 {
     $this->sanitize_setting('bool', 'default', __('Default Blacklist', 'better-wp-security'));
     $this->sanitize_setting('bool', 'enable_ban_lists', __('Ban Lists', 'better-wp-security'));
     $this->sanitize_setting('newline-separated-ips', 'host_list', __('Ban Hosts', 'better-wp-security'));
     if (is_array($this->settings['host_list'])) {
         require_once ITSEC_Core::get_core_dir() . '/lib/class-itsec-lib-ip-tools.php';
         $whitelisted_hosts = array();
         $current_ip = ITSEC_Lib::get_ip();
         foreach ($this->settings['host_list'] as $host) {
             if (is_user_logged_in() && ITSEC_Lib_IP_Tools::intersect($current_ip, ITSEC_Lib_IP_Tools::ip_wild_to_ip_cidr($host))) {
                 $this->set_can_save(false);
                 /* translators: 1: input name, 2: invalid host */
                 $this->add_error(sprintf(__('The following host in %1$s matches your current IP and cannot be banned: %2$s', 'better-wp-security'), __('Ban Hosts', 'better-wp-security'), $host));
                 continue;
             }
             if (ITSEC_Lib::is_ip_whitelisted($host)) {
                 $whitelisted_hosts[] = $host;
             }
         }
         if (!empty($whitelisted_hosts)) {
             $this->set_can_save(false);
             /* translators: 1: input name, 2: invalid host list */
             $this->add_error(wp_sprintf(_n('The following IP in %1$s is whitelisted and cannot be banned: %2$l', 'The following IPs in %1$s are whitelisted and cannot be banned: %2$l', count($whitelisted_hosts), 'better-wp-security'), __('Ban Hosts', 'better-wp-security'), $whitelisted_hosts));
         }
     }
     $this->sanitize_setting(array($this, 'sanitize_agent_list_entry'), 'agent_list', __('Ban User Agents', 'better-wp-security'));
 }
開發者ID:Garth619,項目名稱:Femi9,代碼行數:28,代碼來源:validator.php

示例2: add_network_brute_force_signup

 private static function add_network_brute_force_signup()
 {
     if (!in_array('network-brute-force', self::$available_modules)) {
         return;
     }
     $settings = ITSEC_Modules::get_settings('network-brute-force');
     if (!empty($settings['api_key']) && !empty($settings['api_secret'])) {
         self::enforce_activation('network-brute-force', __('Network Brute Force Protection', 'better-wp-security'));
         return;
     }
     require_once ITSEC_Core::get_core_dir() . '/lib/form.php';
     $form = new ITSEC_Form();
     $form->add_input_group('security-check');
     ob_start();
     self::open_container('incomplete', 'itsec-security-check-network-brute-force-container');
     echo '<p>' . __('With Network Brute Force Protection, your site is protected against attackers found by other sites running iThemes Security. If your site identifies a new attacker, it automatically notifies the network so that other sites are protected as well. To join this site to the network and enable the protection, click the button below.', 'better-wp-security') . '</p>';
     ob_start();
     $form->add_text('email', array('class' => 'regular-text', 'value' => get_option('admin_email')));
     $email_input = ob_get_clean();
     /* translators: 1: email text input */
     echo '<p><label for="itsec-security-check-email">' . sprintf(__('Email Address: %1$s', 'better-wp-security'), $email_input) . '</p>';
     ob_start();
     $form->add_select('updates_optin', array('true' => __('Yes', 'better-wp-security'), 'false' => __('No', 'better-wp-security')));
     $optin_input = ob_get_clean();
     /* translators: 1: opt-in input */
     echo '<p><label for="itsec-security-check-updates_optin">' . sprintf(__('Receive email updates about WordPress Security from iThemes: %1$s', 'better-wp-security'), $optin_input) . '</p>';
     ob_start();
     $form->add_button('enable_network_brute_force', array('class' => 'button-primary', 'value' => __('Activate Network Brute Force Protection', 'better-wp-security')));
     echo '<p>' . ob_get_clean() . '</p>';
     echo '<div id="itsec-security-check-network-brute-force-errors"></div>';
     echo '</div>';
     self::$calls_to_action[] = ob_get_clean();
 }
開發者ID:Garth619,項目名稱:Femi9,代碼行數:33,代碼來源:scanner.php

示例3: generate_new_salts

 public function generate_new_salts()
 {
     if (!ITSEC_Modules::get_setting('global', 'write_files')) {
         return new WP_Error('itsec-wordpress-salts-utilities-write-files-disabled', __('The "Write to Files" setting is disabled in Global Settings. In order to use this feature, you must enable the "Write to Files" setting.', 'better-wp-security'));
     }
     require_once ITSEC_Core::get_core_dir() . '/lib/class-itsec-lib-config-file.php';
     require_once ITSEC_Core::get_core_dir() . '/lib/class-itsec-lib-file.php';
     $config_file_path = ITSEC_Lib_Config_File::get_wp_config_file_path();
     $config = ITSEC_Lib_File::read($config_file_path);
     if (is_wp_error($config)) {
         return new WP_Error('itsec-wordpress-salts-utilities-cannot-read-wp-config.php', sprintf(__('Unable to read the <code>wp-config.php</code> file in order to update the salts. You will need to manually update the file. Error details as follows: %1$s (%2$s)', 'better-wp-security'), $config->get_error_message(), $config->get_error_code()));
     }
     $defines = array('AUTH_KEY', 'SECURE_AUTH_KEY', 'LOGGED_IN_KEY', 'NONCE_KEY', 'AUTH_SALT', 'SECURE_AUTH_SALT', 'LOGGED_IN_SALT', 'NONCE_SALT');
     foreach ($defines as $define) {
         if (empty($salts)) {
             $salts = self::get_new_salts();
         }
         $salt = array_pop($salts);
         if (empty($salt)) {
             $salt = wp_generate_password(64, true, true);
         }
         $salt = str_replace('$', '\\$', $salt);
         $regex = "/(define\\s*\\(\\s*(['\"]){$define}\\2\\s*,\\s*)(['\"]).+?\\3(\\s*\\)\\s*;)/";
         $config = preg_replace($regex, "\${1}'{$salt}'\${4}", $config);
     }
     $write_result = ITSEC_Lib_File::write($config_file_path, $config);
     if (is_wp_error($write_result)) {
         return new WP_Error('itsec-wordpress-salts-utilities-cannot-save-wp-config.php', sprintf(__('Unable to update the <code>wp-config.php</code> file in order to update the salts. You will need to manually update the file. Error details as follows: %1$s (%2$s)', 'better-wp-security'), $config->get_error_message(), $config->get_error_code()));
     }
     return true;
 }
開發者ID:Garth619,項目名稱:Femi9,代碼行數:31,代碼來源:utilities.php

示例4: validate_settings

 protected function validate_settings()
 {
     if (!$this->can_save()) {
         return;
     }
     $previous_settings = ITSEC_Modules::get_settings($this->get_id());
     $diff = array_diff_assoc($this->settings, $previous_settings);
     if (!empty($diff)) {
         ITSEC_Response::regenerate_server_config();
     }
     if ($this->settings['write_permissions']) {
         // Always set permissions to 0444 when saving the settings.
         // This ensures that the file permissions are fixed each time the settings are saved.
         $new_permissions = 0444;
     } else {
         if ($this->settings['write_permissions'] !== $previous_settings['write_permissions']) {
             // Only revert the settings to the defaults when disabling the setting.
             // This avoids changing the file permissions when the setting has yet to be enabled and disabled.
             $new_permissions = 0664;
         }
     }
     if (isset($new_permissions)) {
         // Only change the permissions when needed.
         require_once ITSEC_Core::get_core_dir() . 'lib/class-itsec-lib-config-file.php';
         require_once ITSEC_Core::get_core_dir() . 'lib/class-itsec-lib-file.php';
         $server_config_file = ITSEC_Lib_Config_File::get_server_config_file_path();
         $wp_config_file = ITSEC_Lib_Config_File::get_wp_config_file_path();
         ITSEC_Lib_File::chmod($server_config_file, $new_permissions);
         ITSEC_Lib_File::chmod($wp_config_file, $new_permissions);
         ITSEC_Response::reload_module('file-permissions');
     }
 }
開發者ID:Garth619,項目名稱:Femi9,代碼行數:32,代碼來源:validator.php

示例5: render_description

 protected function render_description($form)
 {
     require_once ITSEC_Core::get_core_dir() . '/lib/class-itsec-lib-config-file.php';
     $config = ITSEC_Lib_Config_File::get_wp_config();
     if (empty($config)) {
         _e('There is nothing that needs to be written to your <code>wp-config.php</code> file.', 'better-wp-security');
     } else {
         echo '<p>' . __("The following rules need to be written to your <code>wp-config.php</code> file. Please make sure to keep the comments in place.") . '</p>';
         echo '<div class="itsec_rewrite_rules"><pre>' . esc_html($config) . '</pre></div>';
     }
 }
開發者ID:Garth619,項目名稱:Femi9,代碼行數:11,代碼來源:settings-page.php

示例6: column_host

 /**
  * Define host column
  *
  * @param array $item array of row data
  *
  * @return string formatted output
  *
  **/
 function column_host($item)
 {
     require_once ITSEC_Core::get_core_dir() . '/lib/class-itsec-lib-ip-tools.php';
     $r = array();
     if (!is_array($item['host'])) {
         $item['host'] = array($item['host']);
     }
     foreach ($item['host'] as $host) {
         if (ITSEC_Lib_IP_Tools::validate($host)) {
             $r[] = '<a href="http://www.traceip.net/?query=' . urlencode($host) . '" target="_blank">' . esc_html($host) . '</a>';
         }
     }
     $return = implode('<br />', $r);
     return $return;
 }
開發者ID:Haydt45,項目名稱:justinhaydt.com,代碼行數:23,代碼來源:class-itsec-logger-all-logs.php

示例7: __construct

 public function __construct()
 {
     add_action('itsec-settings-page-register-module', array($this, 'register_module'));
     add_action('itsec-settings-page-register-widget', array($this, 'register_widget'));
     add_action('itsec-page-show', array($this, 'handle_page_load'));
     add_action('itsec-page-ajax', array($this, 'handle_ajax_request'));
     add_action('admin_print_scripts', array($this, 'add_scripts'));
     add_action('admin_print_styles', array($this, 'add_styles'));
     add_filter('admin_body_class', array($this, 'add_settings_classes'));
     $this->set_translation_strings();
     if (!empty($_GET['enable']) && !empty($_GET['itsec-enable-nonce']) && wp_verify_nonce($_GET['itsec-enable-nonce'], 'itsec-enable-' . $_GET['enable'])) {
         ITSEC_Modules::activate($_GET['enable']);
     }
     require dirname(__FILE__) . '/module-settings.php';
     require dirname(__FILE__) . '/sidebar-widget.php';
     require_once ITSEC_Core::get_core_dir() . '/lib/form.php';
     do_action('itsec-settings-page-init');
     do_action('itsec-settings-page-register-modules');
     do_action('itsec-settings-page-register-widgets');
     if (!empty($_POST) && (!defined('DOING_AJAX') || !DOING_AJAX)) {
         $this->handle_post();
     }
 }
開發者ID:AcademicTechnologyCenter,項目名稱:ATC-Quality-Tracking,代碼行數:23,代碼來源:page-settings.php

示例8: rewrite_metabox_contents

 /**
  * Echos rewrite metabox content.
  *
  * Echos the rewrite rules in the dashboard.
  *
  * @since 4.0.0
  *
  * @return void
  */
 public function rewrite_metabox_contents()
 {
     require_once ITSEC_Core::get_core_dir() . '/lib/class-itsec-lib-config-file.php';
     $config = ITSEC_Lib_Config_File::get_server_config();
     if (empty($config)) {
         _e('There are no rules to write.', 'better-wp-security');
     } else {
         echo '<div class="itsec_rewrite_rules">' . highlight_string($config, true) . '</div>';
     }
 }
開發者ID:AcademicTechnologyCenter,項目名稱:ATC-Quality-Tracking,代碼行數:19,代碼來源:class-itsec-files.php

示例9: execute_upgrade

 /**
  * Execute module upgrade
  *
  * @return void
  */
 public function execute_upgrade($itsec_old_version)
 {
     if ($itsec_old_version < 4000) {
         global $itsec_bwps_options;
         $current_options = get_site_option('itsec_ban_users');
         // Don't do anything if settings haven't already been set, defaults exist in the module system and we prefer to use those
         if (false !== $current_options) {
             $current_options['enabled'] = isset($itsec_bwps_options['bu_enabled']) && $itsec_bwps_options['bu_enabled'] == 1 ? true : false;
             $current_options['default'] = isset($itsec_bwps_options['bu_blacklist']) && $itsec_bwps_options['bu_blacklist'] == 1 ? true : false;
             if (isset($itsec_bwps_options['bu_banlist']) && !is_array($itsec_bwps_options['bu_banlist']) && strlen($itsec_bwps_options['bu_banlist']) > 1) {
                 $raw_hosts = explode(PHP_EOL, $itsec_bwps_options['bu_banlist']);
                 foreach ($raw_hosts as $host) {
                     if (strlen($host) > 1) {
                         $current_options['host_list'][] = $host;
                     }
                 }
             }
             if (isset($itsec_bwps_options['bu_banagent']) && !is_array($itsec_bwps_options['bu_banagent']) && strlen($itsec_bwps_options['bu_banagent']) > 1) {
                 $current_options['agent_list'] = explode(PHP_EOL, $itsec_bwps_options['bu_banagent']);
                 $raw_agents = explode(PHP_EOL, $itsec_bwps_options['bu_banagent']);
                 foreach ($raw_agents as $agent) {
                     if (strlen($agent) > 1) {
                         $current_options['agent_list'][] = $agent;
                     }
                 }
             }
             update_site_option('itsec_ban_users', $current_options);
             ITSEC_Response::regenerate_server_config();
         }
     }
     if ($itsec_old_version < 4027) {
         ITSEC_Response::regenerate_server_config();
     }
     if ($itsec_old_version < 4041) {
         $current_options = get_site_option('itsec_ban_users');
         // If there are no current options, go with the new defaults by not saving anything
         if (is_array($current_options)) {
             $itsec_modules = ITSEC_Modules::get_instance();
             // 'enable_ban_lists' was previously just 'enabled'
             // Make sure the new module is properly activated or deactivated
             if ($current_options['enabled']) {
                 ITSEC_Modules::activate('backup');
                 $current_options['enable_ban_lists'] = true;
             } else {
                 ITSEC_Modules::deactivate('backup');
                 $current_options['enable_ban_lists'] = false;
             }
             unset($current_options['enabled']);
             // Filter out invalid IPs
             $current_options['host_list'] = array_map('trim', $current_options['host_list']);
             if (!class_exists('ITSEC_Lib_IP_Tools')) {
                 require_once ITSEC_Core::get_core_dir() . '/lib/class-itsec-lib-ip-tools.php';
             }
             foreach ($current_options['host_list'] as $index => $ip) {
                 if ('' === $ip || false === ITSEC_Lib_IP_Tools::ip_wild_to_ip_cidr($ip)) {
                     unset($current_options['host_list'][$index]);
                 }
             }
             $itsec_modules->set_settings('ban-users', $current_options);
         }
     }
 }
開發者ID:Garth619,項目名稱:Femi9,代碼行數:67,代碼來源:setup.php

示例10: execute_backup

 /**
  * Executes backup function.
  *
  * Handles the execution of database backups.
  *
  * @since 4.0.0
  *
  * @param bool $one_time whether this is a one-time backup
  *
  * @return void
  */
 private function execute_backup($one_time = false)
 {
     global $wpdb, $itsec_globals, $itsec_logger;
     //get all of the tables
     if (isset($this->settings['all_sites']) && true === $this->settings['all_sites']) {
         $tables = $wpdb->get_results('SHOW TABLES', ARRAY_N);
         //retrieve a list of all tables in the DB
     } else {
         $tables = $wpdb->get_results('SHOW TABLES LIKE "' . $wpdb->base_prefix . '%"', ARRAY_N);
         //retrieve a list of all tables for this WordPress installation
     }
     $return = '';
     //cycle through each table
     foreach ($tables as $table) {
         $num_fields = sizeof($wpdb->get_results('DESCRIBE `' . $table[0] . '`;'));
         $return .= 'DROP TABLE IF EXISTS `' . $table[0] . '`;';
         $row2 = $wpdb->get_row('SHOW CREATE TABLE `' . $table[0] . '`;', ARRAY_N);
         $return .= PHP_EOL . PHP_EOL . $row2[1] . ";" . PHP_EOL . PHP_EOL;
         if (!in_array(substr($table[0], strlen($wpdb->prefix)), $this->settings['exclude'])) {
             $result = $wpdb->get_results('SELECT * FROM `' . $table[0] . '`;', ARRAY_N);
             foreach ($result as $row) {
                 $return .= 'INSERT INTO `' . $table[0] . '` VALUES(';
                 for ($j = 0; $j < $num_fields; $j++) {
                     $row[$j] = addslashes($row[$j]);
                     $row[$j] = preg_replace('#' . PHP_EOL . '#', "\n", $row[$j]);
                     if (isset($row[$j])) {
                         $return .= '"' . $row[$j] . '"';
                     } else {
                         $return .= '""';
                     }
                     if ($j < $num_fields - 1) {
                         $return .= ',';
                     }
                 }
                 $return .= ");" . PHP_EOL;
             }
         }
         $return .= PHP_EOL . PHP_EOL;
     }
     $return .= PHP_EOL . PHP_EOL;
     //save file
     $file = 'backup-' . substr(sanitize_title(get_bloginfo('name')), 0, 20) . '-' . current_time('Ymd-His') . '-' . wp_generate_password(30, false);
     require_once ITSEC_Core::get_core_dir() . 'lib/class-itsec-lib-directory.php';
     $dir = $this->settings['location'];
     ITSEC_Lib_Directory::create($dir);
     $fileext = '.sql';
     $handle = @fopen($dir . '/' . $file . '.sql', 'w+');
     @fwrite($handle, $return);
     @fclose($handle);
     //zip the file
     if (true === $this->settings['zip']) {
         if (!class_exists('PclZip')) {
             require ABSPATH . 'wp-admin/includes/class-pclzip.php';
         }
         $zip = new PclZip($dir . '/' . $file . '.zip');
         if (0 != $zip->create($dir . '/' . $file . '.sql', PCLZIP_OPT_REMOVE_PATH, $dir)) {
             //delete .sql and keep zip
             @unlink($dir . '/' . $file . '.sql');
             $fileext = '.zip';
         }
     }
     if (2 !== $this->settings['method'] || true === $one_time) {
         require_once ITSEC_Core::get_core_dir() . 'lib/class-itsec-mailer.php';
         $mail = new ITSEC_Mail();
         $mail->add_header(esc_html__('Database Backup', 'better-wp-security'), sprintf(wp_kses(__('Site Database Backup for <b>%s</b>', 'better-wp-security'), array('b' => array())), date_i18n(get_option('date_format'))));
         $mail->add_info_box(esc_html__('Attached is the database backup file for your site.', 'better-wp-security'), 'attachment');
         $mail->add_section_heading(esc_html__('Website', 'better-wp-security'));
         $mail->add_text(esc_html(network_home_url()));
         $mail->add_section_heading(esc_html__('Date', 'better-wp-security'));
         $mail->add_text(esc_html(date_i18n(get_option('date_format'))));
         $mail->add_footer();
         $raw_recipients = ITSEC_Modules::get_setting('global', 'backup_email');
         $recipients = array();
         foreach ($raw_recipients as $recipient) {
             $recipient = trim($recipient);
             if (is_email($recipient)) {
                 $recipients[] = $recipient;
             }
         }
         $subject = sprintf(esc_html__('[%s] Database Backup', 'better-wp-security'), esc_url(network_home_url()));
         $subject = apply_filters('itsec_backup_email_subject', $subject);
         $attachment = array("{$dir}/{$file}{$fileext}");
         $mail_success = $mail->send($recipients, $subject, $attachment);
     }
     if (1 === $this->settings['method']) {
         @unlink($dir . '/' . $file . $fileext);
     } else {
         $retain = isset($this->settings['retain']) ? absint($this->settings['retain']) : 0;
         //delete extra files
//.........這裏部分代碼省略.........
開發者ID:Haydt45,項目名稱:justinhaydt.com,代碼行數:101,代碼來源:class-itsec-backup.php

示例11: add_notice

 public static function add_notice($callback)
 {
     $self = self::get_instance();
     if (!$self->notices_loaded) {
         wp_enqueue_style('itsec-notice', plugins_url('core/css/itsec_notice.css', ITSEC_Core::get_core_dir()), array(), '20160609');
         wp_enqueue_script('itsec-notice', plugins_url('core/js/itsec-notice.js', ITSEC_Core::get_core_dir()), array(), '20160512');
         $self->notices_loaded = true;
     }
     if (is_multisite()) {
         add_action('network_admin_notices', $callback);
     } else {
         add_action('admin_notices', $callback);
     }
 }
開發者ID:AcademicTechnologyCenter,項目名稱:ATC-Quality-Tracking,代碼行數:14,代碼來源:class-itsec-core.php

示例12: all_logs_content

    /**
     * Displays all logs content
     *
     * @since 4.3
     *
     * @return void
     */
    public function all_logs_content()
    {
        global $wpdb;
        require_once ITSEC_Core::get_core_dir() . '/class-itsec-logger-all-logs.php';
        $log_display = new ITSEC_Logger_All_Logs();
        $log_display->prepare_items();
        $log_display->display();
        $log_count = $wpdb->get_var("SELECT COUNT(*) FROM `" . $wpdb->base_prefix . "itsec_log`;");
        ?>
		<form method="post" action="">
			<?php 
        wp_nonce_field('itsec_clear_logs', 'wp_nonce');
        ?>
			<input type="hidden" name="itsec_clear_logs" value="clear_logs"/>
			<table class="form-table">
				<tr valign="top">
					<th scope="row" class="settinglabel">
						<?php 
        _e('Log Summary', 'better-wp-security');
        ?>
					</th>
					<td class="settingfield">

						<p><?php 
        _e('Your database contains', 'better-wp-security');
        ?>
							<strong><?php 
        echo $log_count;
        ?>
</strong> <?php 
        _e('log entries.', 'better-wp-security');
        ?>
						</p>

						<p><?php 
        _e('Use the button below to purge the log table in your database. Please note this will purge all log entries in the database including 404s.', 'better-wp-security');
        ?>
</p>

						<p class="submit"><input type="submit" class="button-primary"
						                         value="<?php 
        _e('Clear Logs', 'better-wp-security');
        ?>
"/></p>
					</td>
				</tr>
			</table>
		</form>
	<?php 
    }
開發者ID:Garth619,項目名稱:Femi9,代碼行數:57,代碼來源:page-logs.php

示例13: add_notice

 public static function add_notice($callback, $all_pages = false)
 {
     global $pagenow, $plugin_page;
     if (!$all_pages && !in_array($pagenow, array('plugins.php', 'update-core.php')) && (!isset($plugin_page) || !in_array($plugin_page, array('itsec', 'itsec-logs')))) {
         return;
     }
     $self = self::get_instance();
     if (!$self->notices_loaded) {
         wp_enqueue_style('itsec-notice', plugins_url('core/css/itsec_notice.css', ITSEC_Core::get_core_dir()), array(), '20160609');
         wp_enqueue_script('itsec-notice', plugins_url('core/js/itsec-notice.js', ITSEC_Core::get_core_dir()), array(), '20160512');
         $self->notices_loaded = true;
     }
     if (is_multisite()) {
         add_action('network_admin_notices', $callback);
     } else {
         add_action('admin_notices', $callback);
     }
 }
開發者ID:Haydt45,項目名稱:justinhaydt.com,代碼行數:18,代碼來源:class-itsec-core.php

示例14: execute_backup

 /**
  * Executes backup function.
  *
  * Handles the execution of database backups.
  *
  * @since 4.0.0
  *
  * @param bool $one_time whether this is a one-time backup
  *
  * @return void
  */
 private function execute_backup($one_time = false)
 {
     global $wpdb, $itsec_globals, $itsec_logger;
     //get all of the tables
     if (isset($this->settings['all_sites']) && true === $this->settings['all_sites']) {
         $tables = $wpdb->get_results('SHOW TABLES', ARRAY_N);
         //retrieve a list of all tables in the DB
     } else {
         $tables = $wpdb->get_results('SHOW TABLES LIKE "' . $wpdb->base_prefix . '%"', ARRAY_N);
         //retrieve a list of all tables for this WordPress installation
     }
     $return = '';
     //cycle through each table
     foreach ($tables as $table) {
         $num_fields = sizeof($wpdb->get_results('DESCRIBE `' . $table[0] . '`;'));
         $return .= 'DROP TABLE IF EXISTS `' . $table[0] . '`;';
         $row2 = $wpdb->get_row('SHOW CREATE TABLE `' . $table[0] . '`;', ARRAY_N);
         $return .= PHP_EOL . PHP_EOL . $row2[1] . ";" . PHP_EOL . PHP_EOL;
         if (!in_array(substr($table[0], strlen($wpdb->prefix)), $this->settings['exclude'])) {
             $result = $wpdb->get_results('SELECT * FROM `' . $table[0] . '`;', ARRAY_N);
             foreach ($result as $row) {
                 $return .= 'INSERT INTO `' . $table[0] . '` VALUES(';
                 for ($j = 0; $j < $num_fields; $j++) {
                     $row[$j] = addslashes($row[$j]);
                     $row[$j] = preg_replace('#' . PHP_EOL . '#', "\n", $row[$j]);
                     if (isset($row[$j])) {
                         $return .= '"' . $row[$j] . '"';
                     } else {
                         $return .= '""';
                     }
                     if ($j < $num_fields - 1) {
                         $return .= ',';
                     }
                 }
                 $return .= ");" . PHP_EOL;
             }
         }
         $return .= PHP_EOL . PHP_EOL;
     }
     $return .= PHP_EOL . PHP_EOL;
     //save file
     $file = 'backup-' . substr(sanitize_title(get_bloginfo('name')), 0, 20) . '-' . current_time('Ymd-His') . '-' . wp_generate_password(30, false);
     require_once ITSEC_Core::get_core_dir() . 'lib/class-itsec-lib-directory.php';
     $dir = $this->settings['location'];
     ITSEC_Lib_Directory::create($dir);
     $fileext = '.sql';
     $handle = @fopen($dir . '/' . $file . '.sql', 'w+');
     @fwrite($handle, $return);
     @fclose($handle);
     //zip the file
     if (true === $this->settings['zip']) {
         if (!class_exists('PclZip')) {
             require ABSPATH . 'wp-admin/includes/class-pclzip.php';
         }
         $zip = new PclZip($dir . '/' . $file . '.zip');
         if (0 != $zip->create($dir . '/' . $file . '.sql', PCLZIP_OPT_REMOVE_PATH, $dir)) {
             //delete .sql and keep zip
             @unlink($dir . '/' . $file . '.sql');
             $fileext = '.zip';
         }
     }
     if (2 !== $this->settings['method'] || true === $one_time) {
         $attachment = array($dir . '/' . $file . $fileext);
         $body = __('Attached is the backup file for the database powering', 'better-wp-security') . ' ' . get_option('siteurl') . __(' taken', 'better-wp-security') . ' ' . date('l, F jS, Y \\a\\t g:i a', $itsec_globals['current_time']);
         //Setup the remainder of the email
         $recipients = ITSEC_Modules::get_setting('global', 'backup_email');
         $subject = __('Site Database Backup', 'better-wp-security') . ' ' . date('l, F jS, Y \\a\\t g:i a', $itsec_globals['current_time']);
         $subject = apply_filters('itsec_backup_email_subject', $subject);
         $headers = 'From: ' . get_bloginfo('name') . ' <' . get_option('admin_email') . '>' . "\r\n";
         $mail_success = false;
         //Use HTML Content type
         add_filter('wp_mail_content_type', array($this, 'set_html_content_type'));
         //Send emails to all recipients
         foreach ($recipients as $recipient) {
             if (is_email(trim($recipient))) {
                 if (defined('ITSEC_DEBUG') && true === ITSEC_DEBUG) {
                     $body .= '<p>' . __('Debug info (source page): ' . esc_url($_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"])) . '</p>';
                 }
                 $mail_success = wp_mail(trim($recipient), $subject, '<html>' . $body . '</html>', $headers, $attachment);
             }
         }
         //Remove HTML Content type
         remove_filter('wp_mail_content_type', array($this, 'set_html_content_type'));
     }
     if (1 === $this->settings['method']) {
         @unlink($dir . '/' . $file . $fileext);
     } else {
         $retain = isset($this->settings['retain']) ? absint($this->settings['retain']) : 0;
         //delete extra files
//.........這裏部分代碼省略.........
開發者ID:Garth619,項目名稱:Femi9,代碼行數:101,代碼來源:class-itsec-backup.php

示例15: sanitize_setting

 protected final function sanitize_setting($type, $var, $name, $prevent_save_on_error = true, $trim_value = true)
 {
     $id = $this->get_id();
     if (!isset($this->settings[$var])) {
         $this->add_error(new WP_Error("itsec-validator-missing-var-{$id}-{$var}", sprintf(__('A validation check for %1$s failed. The %2$s value is missing. This could be due to a problem with the iThemes Security installation or an invalid modification. Please reinstall iThemes Security and try again.', 'better-wp-security'), $id, $name)));
         return false;
     }
     if ($trim_value && is_string($this->settings[$var])) {
         $this->settings[$var] = trim($this->settings[$var]);
     }
     $error = false;
     if ('string' === $type) {
         $this->settings[$var] = (string) $this->settings[$var];
     } else {
         if ('non-empty-string' === $type) {
             $this->settings[$var] = (string) $this->settings[$var];
             if (empty($this->settings[$var])) {
                 $error = sprintf(__('The %1$s value cannot be empty.', 'better-wp-security'), $name);
             }
         } else {
             if ('title' === $type) {
                 $this->settings[$var] = sanitize_title($this->settings[$var]);
             } else {
                 if ('non-empty-title' === $type) {
                     $this->settings[$var] = sanitize_title($this->settings[$var]);
                     if (empty($this->settings[$var])) {
                         $error = sprintf(__('The %1$s value cannot be empty.', 'better-wp-security'), $name);
                     }
                 } else {
                     if ('array' === $type) {
                         if (!is_array($this->settings[$var])) {
                             if (empty($this->settings[$var])) {
                                 $this->settings[$var] = array();
                             } else {
                                 $this->settings[$var] = array($this->settings[$var]);
                             }
                         }
                     } else {
                         if ('bool' === $type) {
                             if ('false' === $this->settings[$var]) {
                                 $this->settings[$var] = false;
                             } else {
                                 if ('true' === $this->settings[$var]) {
                                     $this->settings[$var] = true;
                                 } else {
                                     $this->settings[$var] = (bool) $this->settings[$var];
                                 }
                             }
                         } else {
                             if ('int' === $type) {
                                 $test_val = intval($this->settings[$var]);
                                 if ((string) $test_val === (string) $this->settings[$var]) {
                                     $this->settings[$var] = $test_val;
                                 } else {
                                     $error = sprintf(__('The %1$s value must be an integer.', 'better-wp-security'), $name);
                                 }
                             } else {
                                 if ('positive-int' === $type) {
                                     $test_val = intval($this->settings[$var]);
                                     if ((string) $test_val === (string) $this->settings[$var] && $test_val >= 0) {
                                         $this->settings[$var] = $test_val;
                                     } else {
                                         $error = sprintf(__('The %1$s value must be a positive integer.', 'better-wp-security'), $name);
                                     }
                                 } else {
                                     if ('email' === $type) {
                                         $this->settings[$var] = sanitize_text_field($this->settings[$var]);
                                         if (empty($this->settings[$var]) || !is_email($this->settings[$var])) {
                                             $error = sprintf(__('The %1$s value must be a valid email address.', 'better-wp-security'), $name);
                                         }
                                     } else {
                                         if ('valid-username' === $type) {
                                             $this->settings[$var] = sanitize_text_field($this->settings[$var]);
                                             if (!empty($this->settings[$var]) && !validate_username($this->settings[$var])) {
                                                 $error = sprintf(__('The %1$s value is not a valid username.', 'better-wp-security'), $name);
                                             }
                                         } else {
                                             if ('date' === $type) {
                                                 $val = $this->settings[$var];
                                                 $separator = '[\\-/\\. ]';
                                                 if (preg_match("|^(\\d\\d\\d\\d){$separator}(\\d\\d?){$separator}(\\d\\d?)\$|", $val, $match)) {
                                                     $year = intval($match[1]);
                                                     $month = intval($match[2]);
                                                     $day = intval($match[3]);
                                                     if (!checkdate($month, $day, $year)) {
                                                         $error = sprintf(__('The %1$s value must be a valid date.', 'better-wp-security'), $name);
                                                     }
                                                 } else {
                                                     $error = sprintf(__('The %1$s value must be a valid date in the format of YYYY-MM-DD.', 'better-wp-security'), $name);
                                                 }
                                             } else {
                                                 if ('writable-directory' === $type) {
                                                     if (!is_string($this->settings[$var])) {
                                                         $error = sprintf(__('The %1$s value must be a string.', 'better-wp-security'), $name);
                                                     } else {
                                                         require_once ITSEC_Core::get_core_dir() . 'lib/class-itsec-lib-directory.php';
                                                         $this->settings[$var] = rtrim($this->settings[$var], DIRECTORY_SEPARATOR);
                                                         if (!ITSEC_Lib_Directory::is_dir($this->settings[$var])) {
                                                             $result = ITSEC_Lib_Directory::create($this->settings[$var]);
                                                             if (is_wp_error($result)) {
//.........這裏部分代碼省略.........
開發者ID:Garth619,項目名稱:Femi9,代碼行數:101,代碼來源:validator.php


注:本文中的ITSEC_Core::get_core_dir方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。