예제 #1
0
 /**
  * Send CloudFlare API request
  *
  * @return void
  */
 function action_cloudflare_api_request()
 {
     $result = false;
     $response = null;
     $actions = array('devmode', 'sec_lvl', 'fpurge_ts');
     w3_require_once(W3TC_LIB_W3_DIR . '/Request.php');
     $email = W3_Request::get_string('email');
     $key = W3_Request::get_string('key');
     $zone = W3_Request::get_string('zone');
     $action = W3_Request::get_string('command');
     $value = W3_Request::get_string('value');
     $nonce = W3_Request::get_string('_wpnonce');
     if (!wp_verify_nonce($nonce, 'w3tc')) {
         $error = 'Access denied.';
     } elseif (!$email) {
         $error = 'Empty email.';
     } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
         $error = 'Invalid email.';
     } elseif (!$key) {
         $error = 'Empty key.';
     } elseif (!$zone) {
         $error = 'Empty zone.';
     } elseif (strpos($zone, '.') === false) {
         $error = 'Invalid domain.';
     } elseif (!in_array($action, $actions)) {
         $error = 'Invalid action.';
     } else {
         $config = array('email' => $email, 'key' => $key, 'zone' => $zone);
         w3_require_once(W3TC_LIB_W3_DIR . '/CloudFlare.php');
         @($w3_cloudflare = new W3_CloudFlare($config));
         @set_time_limit($this->_config->get_integer('timelimit.cloudflare_api_request'));
         $response = $w3_cloudflare->api_request($action, $value);
         if ($response) {
             if ($response->result == 'success') {
                 $result = true;
                 $error = 'OK';
             } else {
                 $error = $response->msg;
             }
         } else {
             $error = 'Unable to make CloudFlare API request.';
         }
     }
     $return = array('result' => $result, 'error' => $error, 'response' => $response);
     echo json_encode($return);
     exit;
 }
 /**
  * Send CloudFlare API request
  *
  * @return void
  */
 function action_cloudflare_api_request()
 {
     $result = false;
     $response = null;
     $actions = array('devmode', 'sec_lvl', 'fpurge_ts');
     w3_require_once(W3TC_LIB_W3_DIR . '/Request.php');
     $email = W3_Request::get_string('email');
     $key = W3_Request::get_string('key');
     $zone = W3_Request::get_string('zone');
     $action = W3_Request::get_string('action');
     $value = W3_Request::get_string('value');
     if (!$email) {
         $error = 'Empty email.';
     } elseif (!$key) {
         $error = 'Empty key.';
     } elseif (!$zone) {
         $error = 'Empty zone.';
     } elseif (!in_array($action, $actions)) {
         $error = 'Invalid action.';
     } else {
         $config = array('email' => $email, 'key' => $key, 'zone' => $zone);
         w3_require_once(W3TC_LIB_W3_DIR . '/CloudFlare.php');
         @($w3_cloudflare = new W3_CloudFlare($config));
         @set_time_limit($this->_config->get_integer('timelimit.cloudflare_api_request'));
         $response = $w3_cloudflare->api_request($action, $value);
         if ($response) {
             if ($response->result == 'success') {
                 $result = true;
                 $error = 'OK';
             } else {
                 $error = $response->msg;
             }
         } else {
             $error = 'Unable to make CloudFlare API request.';
         }
     }
     $return = array('result' => $result, 'error' => $error, 'response' => $response);
     echo json_encode($return);
 }