There are different technologies used for server-side processing software, but they all do basically the same thing. One difference is between template-based and code-based technologies.
Code-based systems
Code-based systems require you to develop a piece of software. The software accepts some input (the form data) and must produce some output (the form result page).
Some code-based technologies are:
- CGI (normally uses the Perl programming language; free, very widely supported)
- Java Servlets (uses the Java programming language; free, not widely supported)
Template-based systems
Template-based systems require you to create a template for your output result page. This template is standard HTML, but includes portions of programming code where the HTML needs to be generated dynamically. For example, a search results template would begin with standard HTML, but would have sections of code to report the number of results and then to report the results themselves. So the code is interpersed with the HTML.
Some template-based technologies are:
- ASP (normally uses Visual Basic, but you can also use real programming languages; widely supported, but mainly on Microsoft servers; included with server)
- PHP (similar to ASP, but uses a language a bit like Perl; fairly widely supported; free)
- JSP (similar to ASP, but uses Java; not widely supported; free)
- ColdFusion (similar to ASP, but uses a slightly simpler tag-based programming language; reasonably supported; CF servers cost money)
No real difference
In practice, there is little real difference between the two categories of software; when creating code-based software, you normally pull the 'standard' bits of the output from template files.
Beginners might find the template-based systems easier to use, provided that they are experienced in HTML markup - but programming isn't a spectacularly easy task, and learning to program in any mode is going to require a degree of effort and dedication.
Tried and tested
If you have no specific preferences, the most popular options are as follows:
- CGI with Perl (when you want it to work nearly everywhere)
- PHP with MySQL (a modern free option, preferred by computer geeks)
- ASP (the Microsoft option, when you are running an MS server and need to integrate with other MS solutions)
Using pre-built software
Pre-built software is available in all these languages, but is of varying quality.
You should not use pre-built software unless you understand it enough to be sure there is no security risk, or you have it checked over by somebody else, or you are certain it is from a reputable company who make security their top priority and you know that this particular piece of software has a good reputation among the user community. Installing unsafe software on your site could have serious consequences, especially if it deals with security-critical information.