Передача данных формы HTML в скрипт C и стандартное поведение CGI - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь создать сценарий входа в C. Я хочу знать, как я могу передать данные формы HTML в свой внутренний сценарий c.Я новичок в C (из Perl)

Просто сделай это?

<form action="test.c"> or <form action="test.a"> 

Как скрипт может явно отличаться между именем пользователя и паролем?Ранее мне просто нужно было сделать это (в perl):

$username = $cgi->param("username");

Как я могу сделать это сейчас в C. Я вообще пытаюсь избежать использования CGI.

Редактировать 1:

  1. Кажется, мне также нужно знать, как в основном работает CGI (вкратце).Я предполагаю, что браузер является своего рода компилятором для CGI?если нет, то это apache?

  2. Поскольку C не является интерпретируемым языком, как CGI работает с C?В Perl я мог бы просто сделать:

    #!/usr/bin/perl
    print "Content-type: text/html\n\n";
    print "Hello, World.";
    

Как мне сделать это в C?

Edit2: Хорошо, я перешел к ранее отвеченным вопросам под тегом cgi здесь на stackoverflow.

Похоже, что этот голос пользуется наибольшим спросом: Что такое Common Gateway Interface (CGI)?

Но он все еще не проясняет некоторые вещи, которые я 'Я спрашиваю здесь.

Поскольку RFC3875 является только информационным документом, и окончательного стандарта не существует.

  1. Кто реализует протокол CGI?Кто определяет его «стандартное поведение» на таких серверах, как Apache.

  2. Как файлы C работают с CGI в современной среде.Пожалуйста, уточните, используя "Hello World!"в ответ на отправку формы.

1 Ответ

0 голосов
/ 06 июня 2018

Пытаться помочь вам немного сложно.Ваш вопрос, в частности утверждение «Я пытаюсь вообще избегать использования CGI», подразумевает, что вы упускаете концептуальный обзор.Чтобы «избежать CGI», вам необходимо заменить его механизмом получения, анализа и ответа на HTTP-запросы.Это будет означать (потенциально) написание HTTP-сервера.C это скомпилированный язык.Когда вы задаетесь вопросом, можете ли вы сделать action = "test.c", это показывает, что вы упускаете тот факт, что C не является интерпретируемым языком.

Вы можете использовать что-то вроде tiny httpd , чтобы начать работу.

Этот сайт о cgi с использованием C поможет вам.Как CGI реализован, в конечном итоге остается на усмотрение разработчика.Программа hello world так же проста, как скомпилированный исполняемый файл

#include <stdio.h>
int main(void) {
  printf("Content-Type: text/plain;charset=us-ascii\n\n");
  printf("Hello world\n\n");
  return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...