Beispiel #1
0
function InstallationAborted($msg = '', $action = '')
{
    global $TMP_FOLDER;
    switch ($action) {
        case 'patch':
            nc_print_status(($msg ? $msg . "<br>" : "") . TOOLS_PATCH_ERR_CANTINSTALL, "error");
            PatchForm();
            PatchList();
            break;
        case 'module':
            nc_print_status(($msg ? $msg . "<br>" : "") . TOOLS_MODULES_ERR_INSTALL, "error");
            break;
        case 'activation':
            nc_print_status($msg ? $msg : TOOLS_PATCH_ERROR, "error");
            nc_activation_show_form();
            break;
        default:
            nc_print_status($msg ? $msg : TOOLS_PATCH_ERROR, "error");
            break;
    }
    DeleteFilesInDirectory($TMP_FOLDER);
    EndHtml();
    exit;
}
Beispiel #2
0
}
switch ($phase) {
    # Форма ввода данных
    case 1:
        BeginHtml($Title2, $Title2, "http://" . $DOC_DOMAIN . "/settings/activation/");
        $perm->ExitIfNotAccess(NC_PERM_PATCH, 0, 0, 0, 0);
        nc_activation_show_form();
        break;
        # Сообственно, активация
    # Сообственно, активация
    case 2:
        BeginHtml($Title2, $Title2, "http://" . $DOC_DOMAIN . "/settings/activation/");
        $perm->ExitIfNotAccess(NC_PERM_PATCH, 0, 0, 0, 1);
        if (!$activation_code || !$license) {
            nc_print_status(TOOLS_ACTIVATION_INPUT_KEY_CODE, 'error');
            nc_activation_show_form();
            break;
        }
        $patch_file_data = nc_activation_get_files();
        // get gzip file
        $patch_file_tgz = !empty($patch_file_data) ? $patch_file_data['_FILE'] : "";
        if (!$patch_file_tgz) {
            break;
        }
        if (!file_exists($TMP_FOLDER . $patch_file_tgz)) {
            break;
        }
        if (!checkPermissions($HTTP_ROOT_PATH . "tmp/", $DOCUMENT_ROOT)) {
            break;
        }
        // this temporary file will be deleted in the end of this function or in InstallationAborted()
Beispiel #3
0
/**
 * Функция получает файл с активацией
 * потом копирует его в tmp-директорию
 *
 * @return array
 */
function nc_activation_get_files()
{
    global $nc_core;
    $db = $nc_core->db;
    $TMP_FOLDER = $nc_core->TMP_FOLDER;
    $url = "http://update.netcat.ru/";
    $data = nc_activation_requset_data();
    $result = array();
    $options = array("http" => array("method" => "POST", "header" => "Content-type: application/x-www-form-urlencoded\n" . "Content-Length: " . strlen($data) . "\n", "content" => $data));
    $context = stream_context_create($options);
    // get data from update server
    $request = @file_get_contents($url, false, $context);
    // parse requested data
    if ($request) {
        $parser = xml_parser_create();
        xml_parse_into_struct($parser, $request, $values, $indexes);
        xml_parser_free($parser);
    } else {
        nc_print_status(TOOLS_PATCH_ERROR_UPDATE_SERVER_NOT_AVAILABLE, "error");
        return "";
    }
    // check
    if (empty($values)) {
        return "";
    }
    // result flat array
    foreach ($values as $value) {
        if ($value['type'] != "complete") {
            continue;
        }
        $result[$value['tag']] = $value['value'];
    }
    if ($result['OPERATION'] != "success") {
        nc_print_status(TOOLS_ACTIVATION_INVALID_KEY_CODE, 'error');
        nc_activation_show_form();
        return "";
    }
    // get patch file data
    if ($result['LINK']) {
        $update_file = @file_get_contents($result['LINK']);
    }
    // write file on disk
    if ($update_file) {
        // set patch file temp name
        $patch_file_name = "update_" . md5(microtime()) . ".tgz";
        // write data into the file
        if (!is_writable($TMP_FOLDER)) {
            nc_print_status(sprintf(TOOLS_PATCH_ERROR_TMP_FOLDER_NOT_WRITABLE, $TMP_FOLDER), "error");
        } elseif (file_put_contents($TMP_FOLDER . $patch_file_name, $update_file)) {
            $result['_FILE'] = $patch_file_name;
            // return file name
            return $result;
        }
    } else {
        nc_print_status(TOOLS_PATCH_ERROR_UPDATE_FILE_NOT_AVAILABLE, "error");
    }
    return "";
}