Пример #1
0
 function validatelicensedata()
 {
     global $mainframe;
     preg_match('/http(s)*:\\/\\/(.*?)\\//i', $mainframe->getSiteURL(), $matches);
     $database = JFactory::getDBO();
     $query = "SELECT * FROM `#__components` WHERE `option` = 'com_chronoforms' AND parent='0' AND admin_menu_link='option=com_chronoforms'";
     $database->setQuery($query);
     $result = $database->loadObject();
     //$configs = JComponentHelper::getParams('com_chronoforms');
     $configs = new JParameter($result->params);
     $postfields = array();
     if (isset($_POST['licensecode']) && !empty($_POST['licensecode'])) {
         $configs->set('licensecode', $_POST['licensecode']);
     }
     $postfields['license_key'] = $configs->get('licensecode', '');
     $postfields['domain_name'] = $matches[2];
     $postfields['pid'] = $_POST['pid'];
     $validstatus = false;
     if (empty($postfields['license_key'])) {
         $mainframe->redirect("index.php?option=com_chronoforms&task=validatelicense", 'You didn\'t enter your validation key.');
     }
     if (trim(JRequest::getVar('instantcode')) && $configs->get('licensecode', '')) {
         $step1 = base64_decode(trim(JRequest::getVar('instantcode')));
         $step2 = str_replace(substr(md5(str_replace('www.', '', strtolower($matches[2]))), 0, 7), '', $step1);
         $step3 = str_replace(substr(md5(str_replace('www.', '', strtolower($matches[2]))), -strlen(md5(str_replace('www.', '', strtolower($matches[2])))) + 7), '', $step2);
         $step4 = str_replace(substr($configs->get('licensecode', ''), 0, 10), '', $step3);
         $step5 = str_replace(substr($configs->get('licensecode', ''), -strlen($configs->get('licensecode', '')) + 10), '', $step4);
         //echo (int)$step5;return;
         //if((((int)$step5 + (24 * 60 * 60)) > strtotime(date('d-m-Y H:i:s')))||(((int)$step5 - (24 * 60 * 60)) < strtotime(date('d-m-Y H:i:s')))){
         if ((int) $step5 < strtotime("now") + 24 * 60 * 60 && (int) $step5 > strtotime("now") - 24 * 60 * 60) {
             $query = "SELECT * FROM `#__components` WHERE `option` = 'com_chronoforms' AND parent='0' AND admin_menu_link='option=com_chronoforms'";
             $database->setQuery($query);
             $result = $database->loadObject();
             $newline = "\n";
             if ($result) {
                 $newparams = 'showtipoftheday=' . $configs->get('showtipoftheday', 1) . $newline . 'licensecode=' . $configs->get('licensecode', '') . $newline . 'licensevalid=1';
                 $database->setQuery("UPDATE `#__components` SET params='" . $newparams . "' WHERE id='" . $result->id . "'");
                 if (!$database->query()) {
                     JError::raiseWarning(100, $database->getErrorMsg());
                     $mainframe->redirect("index.php?option=com_chronoforms");
                 }
             }
             $mainframe->redirect("index.php?option=com_chronoforms", 'Your key was validated successfully');
         } else {
             //$mainframe->redirect( "index.php?option=com_chronoforms", 'Invalid instant code' );
         }
     }
     if (function_exists('fsockopen')) {
         $validstatus = ChronoFormsAdmin::validationconnect('http', 'www.chronoengine.com', $port = '80', $path = '/index.php?option=com_chronocontact&task=extra&chronoformname=validateLicense', $postfields);
     }
     if (!$validstatus || $validstatus == 'error' || !function_exists('fsockopen')) {
         if (!function_exists('curl_init')) {
             $validstatus = false;
         } else {
             $fields = '';
             $ch = curl_init();
             //$postfields = array();
             foreach ($postfields as $key => $value) {
                 $fields .= "{$key}=" . urlencode($value) . "&";
             }
             curl_setopt($ch, CURLOPT_URL, 'http://www.chronoengine.com/index.php?option=com_chronocontact&task=extra&chronoformname=validateLicense');
             curl_setopt($ch, CURLOPT_HEADER, 0);
             curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
             curl_setopt($ch, CURLOPT_TIMEOUT, 10);
             curl_setopt($ch, CURLOPT_POSTFIELDS, rtrim($fields, "& "));
             if ($configs->get('curlproxy', '')) {
                 curl_setopt($ch, CURLOPT_PROXY, $configs->get('curlproxy'));
             }
             $output = curl_exec($ch);
             curl_close($ch);
             $validstatus = $output;
         }
     }
     //return $validstatus;
     if ($validstatus == 'valid') {
         if ($configs->get('licensecode', '')) {
             //if(!$configs->get('licensevalid', '')){
             $query = "SELECT * FROM `#__components` WHERE `option` = 'com_chronoforms' AND parent='0' AND admin_menu_link='option=com_chronoforms'";
             $database->setQuery($query);
             $result = $database->loadObject();
             $newline = "\n";
             if ($result) {
                 $newparams = 'showtipoftheday=' . $configs->get('showtipoftheday', 1) . $newline . 'licensecode=' . $configs->get('licensecode', '') . $newline . 'licensevalid=1';
                 $database->setQuery("UPDATE `#__components` SET params='" . $newparams . "' WHERE id='" . $result->id . "'");
                 if (!$database->query()) {
                     JError::raiseWarning(100, $database->getErrorMsg());
                     $mainframe->redirect("index.php?option=com_chronoforms");
                 }
             }
             //}
         }
         $mainframe->redirect("index.php?option=com_chronoforms", 'Your Install was validated successfully');
     } else {
         if ($validstatus == 'invalid') {
             $query = "SELECT * FROM `#__components` WHERE `option` = 'com_chronoforms' AND parent='0' AND admin_menu_link='option=com_chronoforms'";
             $database->setQuery($query);
             $result = $database->loadObject();
             $newline = "\n";
             if ($result) {
                 $newparams = 'showtipoftheday=' . $configs->get('showtipoftheday', 1) . $newline . 'licensecode=' . $configs->get('licensecode', '') . $newline . 'licensevalid=0';
                 $database->setQuery("UPDATE `#__components` SET params='" . $newparams . "' WHERE id='" . $result->id . "'");
                 if (!$database->query()) {
                     JError::raiseWarning(100, $database->getErrorMsg());
                     $mainframe->redirect("index.php?option=com_chronoforms");
                 }
             }
             $mainframe->redirect("index.php?option=com_chronoforms", 'We couldn\'t validate your key because of some wrong data used');
         } else {
             if (trim(JRequest::getVar('instantcode'))) {
                 $step1 = base64_decode(trim(JRequest::getVar('instantcode')));
                 $step2 = str_replace(substr(md5(str_replace('www.', '', strtolower($matches[2]))), 0, 7), '', $step1);
                 $step3 = str_replace(substr(md5(str_replace('www.', '', strtolower($matches[2]))), -strlen(md5(str_replace('www.', '', strtolower($matches[2])))) + 7), '', $step2);
                 $step4 = str_replace(substr($configs->get('licensecode', ''), 0, 10), '', $step3);
                 $step5 = str_replace(substr($configs->get('licensecode', ''), -strlen($configs->get('licensecode', '')) + 10), '', $step4);
                 //echo (int)$step5;return;
                 //if((((int)$step5 + (24 * 60 * 60)) > strtotime(date('d-m-Y H:i:s')))||(((int)$step5 - (24 * 60 * 60)) < strtotime(date('d-m-Y H:i:s')))){
                 if ((int) $step5 < strtotime("now") + 24 * 60 * 60 && (int) $step5 > strtotime("now") - 24 * 60 * 60) {
                     $query = "SELECT * FROM `#__components` WHERE `option` = 'com_chronoforms' AND parent='0' AND admin_menu_link='option=com_chronoforms'";
                     $database->setQuery($query);
                     $result = $database->loadObject();
                     $newline = "\n";
                     if ($result) {
                         $newparams = 'showtipoftheday=' . $configs->get('showtipoftheday', 1) . $newline . 'licensecode=' . $configs->get('licensecode', '') . $newline . 'licensevalid=1';
                         $database->setQuery("UPDATE `#__components` SET params='" . $newparams . "' WHERE id='" . $result->id . "'");
                         if (!$database->query()) {
                             JError::raiseWarning(100, $database->getErrorMsg());
                             $mainframe->redirect("index.php?option=com_chronoforms");
                         }
                     }
                     $mainframe->redirect("index.php?option=com_chronoforms", 'Your key was validated successfully');
                 } else {
                     $mainframe->redirect("index.php?option=com_chronoforms", 'Invalid instant code');
                 }
             } else {
                 $query = "SELECT * FROM `#__components` WHERE `option` = 'com_chronoforms' AND parent='0' AND admin_menu_link='option=com_chronoforms'";
                 $database->setQuery($query);
                 $result = $database->loadObject();
                 $newline = "\n";
                 if ($result) {
                     $newparams = 'showtipoftheday=' . $configs->get('showtipoftheday', 1) . $newline . 'licensecode=' . $configs->get('licensecode', '') . $newline . 'licensevalid=0';
                     $database->setQuery("UPDATE `#__components` SET params='" . $newparams . "' WHERE id='" . $result->id . "'");
                     if (!$database->query()) {
                         JError::raiseWarning(100, $database->getErrorMsg());
                         $mainframe->redirect("index.php?option=com_chronoforms");
                     }
                 }
                 $mainframe->redirect("index.php?option=com_chronoforms", 'We couldn\'t validate your key because your hosting server doesn\'t have neither the CURL library nor the fsockopen functions or they may exist but don\'t function properly, please contact your host admin to fix them or contact us <a href="http://www.chronoengine.com/contactus.html">here</a> Or at this email address : webmaster@chronoengine.com');
             }
         }
     }
 }