| Server IP : 68.183.124.220 / Your IP : 216.73.217.137 Web Server : Apache/2.4.18 (Ubuntu) System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : gavin ( 1000) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/wp-content/plugins/wordpress-seo/admin/ |
Upload File : |
<?php
/**
* WPSEO plugin file.
*
* @package WPSEO\Admin\Links
*/
/**
* Represents the state of the table being accessible.
*/
class WPSEO_Meta_Table_Accessible {
/**
* Indicates that the table is accessible.
*
* @var string
*/
const ACCESSIBLE = '0';
/**
* Indicates that the table is inaccessible.
*
* @var string
*/
const INACCESSBILE = '1';
/**
* Checks if the given table name exists.
*
* @return bool True when table is accessible.
*/
public static function is_accessible() {
$value = get_transient( self::transient_name() );
// If the value is not set, check the table.
if ( false === $value ) {
return self::check_table();
}
return $value === self::ACCESSIBLE;
}
/**
* Sets the transient value to 1, to indicate the table is not accessible.
*
* @return void
*/
public static function set_inaccessible() {
set_transient( self::transient_name(), self::INACCESSBILE, HOUR_IN_SECONDS );
}
/**
* Removes the transient.
*
* @return void
*/
public static function cleanup() {
delete_transient( self::transient_name() );
}
/**
* Sets the transient value to 0, to indicate the table is accessible.
*
* @return void
*/
protected static function set_accessible() {
/*
* Prefer to set a 0 timeout, but if the timeout was set before WordPress will not delete the transient
* correctly when overridden with a zero value.
*
* Setting a YEAR_IN_SECONDS instead.
*/
set_transient( self::transient_name(), self::ACCESSIBLE, YEAR_IN_SECONDS );
}
/**
* Checks if the table exists if not, set the transient to indicate the inaccessible table.
*
* @return bool True if table is accessible.
*/
protected static function check_table() {
global $wpdb;
$storage = new WPSEO_Meta_Storage();
$query = $wpdb->prepare( 'SHOW TABLES LIKE %s', $storage->get_table_name() );
if ( $wpdb->get_var( $query ) !== $storage->get_table_name() ) {
self::set_inaccessible();
return false;
}
self::set_accessible();
return true;
}
/**
* Returns the name of the transient.
*
* @return string The name of the transient to use.
*/
protected static function transient_name() {
return 'wpseo_meta_table_inaccessible';
}
}