Как исправить 500 преждевременный конец заголовка скрипта: CGI написано на C - PullRequest
0 голосов
/ 05 апреля 2019

Я использую ini.c, который является функцией, которая читает файлы .ini. Я компилирую файл .c в .cgi и запускаю его на своем сервере (я использую сервер Apache XAMPP), я получаю сообщение об ошибке «Преждевременно».конец заголовка скрипта: '.

Я исследовал это и не могу найти решение, которое я также добавил в мой файл httpd.conf

' AddHandler cgi-script .cgi .pl.asp .c .h '

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "ini.h"
#include "ini.c"

typedef struct
{
    int version;
    const char* name;
    const char* email;
} configuration;

static int handler(void* user, const char* section, const char* name,
                   const char* value)
{
    configuration* pconfig = (configuration*)user;

    #define MATCH(s, n) strcmp(section, s) == 0 && strcmp(name, n) == 0
    if (MATCH("protocol", "version")) {
        pconfig->version = atoi(value);
    } else if (MATCH("user", "name")) {
        pconfig->name = strdup(value);
    } else if (MATCH("user", "email")) {
        pconfig->email = strdup(value);
    } else {
        return 0;  /* unknown section/name, error */
    }
    return 1;
}

int main(int argc, char* argv[])
{
    configuration config;

    if (ini_parse("config.ini", handler, &config) < 0) {
        printf("Can't load 'config.ini'\n");
        return 1;
    }
    printf("Config loaded from 'config.ini': version=%d, name=%s, email=%s\n",
        config.version, config.name, config.email);
    return 0;
}
...