Exemplo n.º 1
0
function TPLAddErrorHelp($actionData)
{
    //only error will come
    $noMoreString = false;
    if ($actionData['microtimeInitiated'] + 35 * 60 > time() && ($actionData['type'] == 'backup' && $actionData['action'] == 'now' || $actionData['type'] == 'scheduleBackup' && $actionData['action'] == 'runTask' || $actionData['type'] == 'installClone' && $actionData['action'] == 'installCloneBackupNow') && ($actionData['status'] == 'netError' && in_array($actionData['error'], array('28', '52', '500', '502', '504', 'timeoutClear')) || $actionData['status'] == 'error' && $actionData['error'] == 'main_plugin_connection_error')) {
        $actionData['errorMsg'] .= ' <br><span class="droid700 loading_3dot">Checking backup. Please wait<span class="dot">.</span><span class="dot">.</span><span class="dot">.</span></span>';
        $noMoreString = true;
    }
    if (stripos($actionData['errorMsg'], 'please add FTP details') !== false) {
        $actionData['errorMsg'] .= ' <a href="' . SUPPORT_URL . 'solution/articles/212271-plugin-theme-update-fails-add-ftp-details-to-wp-config-php/' . GA_HELP_TRACKING . '" target="_blank">How?</a>';
    } elseif ($actionData['error'] == 'fsock_error') {
        $actionData['errorMsg'] .= ' Kindly contact your host.';
    } elseif ($actionData['error'] == 'timeoutClear' && !$noMoreString) {
        if (Reg::get('settings.executeUsingBrowser') != 1) {
            $fsockSameURLConnectCheckCache = manageCookies::cookieGet('fsockSameURLConnectCheckCache');
            if (empty($fsockSameURLConnectCheckCache)) {
                $fsockSameURLConnectCheckCache = fsockSameURLConnectCheck(APP_URL . 'execute.php');
                manageCookies::cookieSet('fsockSameURLConnectCheckCache', $fsockSameURLConnectCheckCache, array('expire' => 0));
            }
            if (empty($fsockSameURLConnectCheckCache['status'])) {
                $actionData['errorMsg'] .= ' Fsock Error: ' . $fsockSameURLConnectCheckCache['error'];
                if ($fsockSameURLConnectCheckCache['errorNo'] != 'authentication_required') {
                    $actionData['errorMsg'] .= ' Kindly contact your host.';
                }
            }
        }
    } elseif ($actionData['error'] == 'unknown') {
        //for update
        if ($actionData['detailedAction'] == 'plugin' || $actionData['detailedAction'] == 'theme') {
            //for update
            $actionData['errorMsg'] .= ' Please <a onclick="$(\'#clearPluginCache\').addClass(\'active\');$(\'#reloadStats\').click();">Clear cache and Reload Data</a> and try again. <a href="' . SUPPORT_URL . 'solution/articles/212259-unknown-error-occurred-during-update-process?' . GA_HELP_TRACKING . '" target="_blank">See recommendations</a>.';
        }
    }
    /* elseif(!$noMoreString && (($actionData['type'] == 'backup' && $actionData['action'] == 'now') || ($actionData['type'] == 'scheduleBackup' && $actionData['action'] == 'runTask'))){
    		$actionData['errorMsg'] = rtrim($actionData['errorMsg'], '. ').'.';//'. ' => this will remove "." and space " "
    		$actionData['errorMsg'] .= ' Please try the multi-call backup method. <a href="'.SUPPORT_URL.'/solution/articles/212262-backup-methods/'.GA_HELP_TRACKING." target="_blank">See how it works</a>.';
    	} */
    return $actionData['errorMsg'];
}
Exemplo n.º 2
0
 //======================================================================>
 $check['available']['PHP_VERSION'] = phpversion();
 $phpSafeMode = ini_get('safe_mode');
 $check['available']['PHP_SAFE_MODE'] = !empty($phpSafeMode);
 $check['available']['PHP_WITH_MYSQL'] = (class_exists('mysqli') or function_exists('mysql_connect'));
 $check['available']['PHP_WITH_OPEN_SSL'] = function_exists('openssl_verify');
 $check['available']['PHP_WITH_CURL'] = function_exists('curl_exec');
 $check['available']['PHP_FILE_UPLOAD'] = ini_get('file_uploads') == 1 ? true : false;
 //checking PHP_MAX_EXECUTION_TIME_CONFIGURABLE
 $check['available']['PHP_MAX_EXECUTION_TIME_CONFIGURABLE'] = 0;
 if ($maximumExecutionTime == ini_get('max_execution_time')) {
     $check['available']['PHP_MAX_EXECUTION_TIME_CONFIGURABLE'] = 1;
 }
 $appFullURL = APP_URL;
 $fURL = $appFullURL . "/execute.php";
 $fsockSameURLConnectCheckResult = fsockSameURLConnectCheck($fURL);
 $check['available']['FSOCK_SAME_URL_CONNECT_CHECK'] = $fsockSameURLConnectCheckResult['status'];
 //======================================================================>
 $check['final']['PHP_VERSION'] = version_compare($check['available']['PHP_VERSION'], $check['required']['PHP_VERSION']) >= 0 ? true : false;
 $check['final']['PHP_SAFE_MODE'] = $check['required']['PHP_SAFE_MODE'] == $check['available']['PHP_SAFE_MODE'] ? true : false;
 $check['final']['PHP_WITH_MYSQL'] = $check['required']['PHP_WITH_MYSQL'] == $check['available']['PHP_WITH_MYSQL'] ? true : false;
 $check['final']['PHP_WITH_OPEN_SSL'] = $check['required']['PHP_WITH_OPEN_SSL'] == $check['available']['PHP_WITH_OPEN_SSL'] ? true : 1;
 //1 = optional
 $check['final']['PHP_WITH_CURL'] = $check['required']['PHP_WITH_CURL'] == $check['available']['PHP_WITH_CURL'] ? true : false;
 $check['final']['PHP_FILE_UPLOAD'] = $check['required']['PHP_FILE_UPLOAD'] == $check['available']['PHP_FILE_UPLOAD'] ? true : false;
 $check['final']['PHP_MAX_EXECUTION_TIME_CONFIGURABLE'] = $check['required']['PHP_MAX_EXECUTION_TIME_CONFIGURABLE'] == $check['available']['PHP_MAX_EXECUTION_TIME_CONFIGURABLE'] ? true : false;
 $check['final']['FSOCK_SAME_URL_CONNECT_CHECK'] = $check['required']['FSOCK_SAME_URL_CONNECT_CHECK'] == $check['available']['FSOCK_SAME_URL_CONNECT_CHECK'] ? true : false;
 //======================================================================>
 $check['other']['PHPDisabledFunctions'] = explode(',', ini_get('disable_functions'));
 array_walk($check['other']['PHPDisabledFunctions'], 'trimValue');
 $check['other']['PHPDisabledClasses'] = explode(',', ini_get('disable_classes'));
Exemplo n.º 3
0
function autoSelectConnectionMethod()
{
    $settings = Reg::get('settings');
    if ($settings['autoSelectConnectionMethod'] == 1) {
        $result = fsockSameURLConnectCheck(APP_URL . 'execute.php');
        if ($result['status'] && $settings['executeUsingBrowser'] == 1) {
            $settings['executeUsingBrowser'] = 0;
            DB::update("?:settings", array('general' => serialize($settings)), "1");
            addNotification($type = 'N', $title = 'FSOCK HAS BEEN ENABLED', $message = 'Your server supports fsock and has been enabled.', $state = 'U', $callbackOnClose = '', $callbackReference = '');
        } elseif ($result['status'] == false && $result['errorNo'] != 'authentication_required' && $settings['executeUsingBrowser'] == 0) {
            $settings['executeUsingBrowser'] = 1;
            DB::update("?:settings", array('general' => serialize($settings)), "1");
            addNotification($type = 'N', $title = 'FSOCK HAS BEEN DISABLED', $message = 'Your server doesn\'t support fsock. An alternative method is being used.', $state = 'U', $callbackOnClose = '', $callbackReference = '');
        }
    }
}
Exemplo n.º 4
0
function fsockSameURLConnectCheck($url, $fget = true)
{
    if ($fget) {
        $params = array('check' => 'sameURL');
    } else {
        $fsockSameURLCheckUsingDBValue = uniqid('fsock_', true);
        $params = array('check' => 'sameURLUsingDB', 'fsockSameURLCheckUsingDBValue' => $fsockSameURLCheckUsingDBValue);
    }
    $post_params = array();
    foreach ($params as $key => &$val) {
        if (is_array($val)) {
            $val = implode(',', $val);
        }
        $post_params[] = $key . '=' . urlencode($val);
    }
    $post_string = implode('&', $post_params);
    $parts = parse_url($url);
    $host = $parts['host'];
    if (($parts['scheme'] == 'ssl' || $parts['scheme'] == 'https') && extension_loaded('openssl')) {
        $parts['host'] = "ssl://" . $parts['host'];
        $parts['port'] = 443;
        error_reporting(0);
    } elseif ($parts['port'] == '') {
        $parts['port'] = 80;
    }
    $fp = @fsockopen($parts['host'], $parts['port'], $errno, $errstr, 30);
    if (!$fp) {
        return array('status' => false, 'resource' => !empty($fp) ? true : false, 'errorNo' => 'unable_to_intiate_fsock', 'error' => 'Unable to initiate FsockOpen');
    }
    if ($errno > 0) {
        return array('status' => false, 'errorNo' => $errno, 'error' => $errno . ':' . $errstr);
    }
    $settings = Reg::get('settings');
    $out = "POST " . $parts['path'] . " HTTP/1.0\r\n";
    $out .= "Host: " . $host . "\r\n";
    if (!empty($settings['httpAuth']['username'])) {
        $out .= "Authorization: Basic " . base64_encode($settings['httpAuth']['username'] . ':' . $settings['httpAuth']['password']) . "\r\n";
    }
    $out .= "User-agent: " . "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko Firefox/16.0" . "\r\n";
    $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $out .= "Content-Length: " . strlen($post_string) . "\r\n";
    $out .= "Connection: Close\r\n\r\n";
    if (isset($post_string)) {
        $out .= $post_string;
    }
    $is_written = fwrite($fp, $out);
    if (!$is_written) {
        return array('status' => false, 'writable' => false, 'errorNo' => 'unable_to_write_request', 'error' => 'Unable to write request');
    }
    $temp = '';
    if ($fget) {
        while (!feof($fp)) {
            $temp .= fgets($fp, 128);
        }
    }
    fclose($fp);
    if ($fget) {
        if (strpos($temp, 'WWW-Authenticate:') !== false) {
            return array('status' => false, 'errorNo' => 'authentication_required', 'error' => 'Your IWP Admin Panel has folder protection.<br><a onclick="$(\'#settings_btn\').click();$(\'#authUsername\').focus();">Set the credentials</a> in settings -> Folder protection.');
        } else {
            return fsockSameURLConnectCheck($url, false);
        }
    } else {
        sleep(7);
        //due to fsock non-blocking mode we have to wait
        if (!empty($fsockSameURLCheckUsingDBValue) && $fsockSameURLCheckUsingDBValue == getOption('fsockSameURLCheckUsingDBValue')) {
            return array('status' => true);
        } else {
            return array('status' => false, 'errorNo' => 'unable_to_verify', 'error' => 'Unable to verify content(method using DB)');
        }
    }
}