Search code examples
htmlclinuxformsfastcgi

How to get a web client handling forms to send page ID info to server without client side scripting


I'm writing an application which will run on a microcontroller (arduino or Raspberry Zero) with wifi and a web server which will be configurable by a web browser without any client side scripts. This will use a string of HTML forms for the purpose of creating a number of small files on the microcontroller which will be interpreted by the microcontroller to perform its tasks. I'm writing it initially on a Slackware Linux system but when it gets close to completion, will move it all to a Raspberry Pi running a customised version of Ubuntu Linux for final tuning. I'm using lighttpd with mod_fastcgi and libfcgi and I am writing forms handler software in C. Now, ideally, the responses returned to the server by each form would be processed by its individual handler daemon started by mod_fcgi, however I have not been able to figure out how to configure fastcgi to load more than one handler daemon. My fcgi.conf file is pointed at by a link later in this missive.

I could live with this restriction but another problem arises. In using just one handler, the action="handlerProgram" field at the top of every form has to point at that one handler, each form is unique and must be handled differently so how do I tell the formsHandler program which form is being handled? I need to be able to embed another label into each HTML form somewhere so that the web client will send this back to the server which will pass its value to the forms handler via the environment - or some such mechanism. Any clues on how to do this? Pleaase? Peter. PS. Here's a link to the related config and html data. HTML Problem


Solution

  • Maybe one of these solutions may help :

    1. In the html code, add informations about the form to handle after the handler program name in the action tag, like :

      action="/cgi-bin/handlerProgram/id/of/form/to/handle"

    In your CGI handlerProgram you'll have the PATH_INFO environment variable valued to "/id/of/form/to/handle". Use it to know what form to handle.

    1. In the html code add a hidden input field to your form like :

      <input type="hidden" id="form_to_hanlde" value="form_id"/>

    Just use the form_to_handle field's value in you handlerProgram to know what form to handle.