Click on the headings to open them. They will open on this page. Open the following link for further information about these headings if required.
Your browser does not support these headings. To ensure that the contents remain accessible, they have been automatically opened so that all the information on the page is displayed.
However, to take advantage of the headings and to ensure that the layout and design of this site are displayed correctly, you are recommended to upgrade to a current version of one of the following standards compliant browsers:
- Internet Explorer (http://www.microsoft.com/ windows/ie/downloads/ default.mspx)
- Mozilla Firefox (http://www.mozilla.org/ products/firefox/)
- Opera (http://www.opera.com/download/)
Glossary links are included within this page. If a word appears as a link, clicking on this link will show the definition of the word in a 'pop-up window'. Select the following link for information about these glossary links if required.
- Select the links see the definitions in a pop-up window.
- NB. If you use pop-up window blocking software, you will need to deactivate it for pop-ups on this site to use the glossary links. Alternatively, all glossary definitions can be seen on the 'Glossary' page in the 'Resources' section.
Once a questionnaire has been designed and created, it is necessary to make it available online and add a means of collecting and processing the results. Doing this successfully requires the addition of server-side processes.
This page is designed to provide you with an overview of server-side processing technologies. It will explain what server-side processing is and how it can be used to collect data from questionnaires. It will cover the following areas:
- The nature of server-side processing and how it differs from client-side processing;
- How server-side and client side processing interact when a questionnaire is requested and submitted;
- An overview of the options for hosting the questionnaire on a server, which will be needed to make the questionnaire available online;
- An introduction to some of the key technologies required and
the options available:
- Server software: Apache and Microsoft;
- Server-side processing software: CGI, ASP.NET, PHP, ColdFusion and JSP;
- Database software: MySQL and SQL Server;
- How to set up a test-server on a personal computer to use when developing using these technologies;
- An overview of how WYSIWYG web editors and other software can be used to help with the development;
- An outline of common server-side processing tasks that are carried out to process a questionnaire;
- Links to key resources on each of the server-side processing technologies.
To understand how server-side processing works and how it differs from client-side processing, it is useful to firstly consider what happens when a user successfully calls a web page. The main steps can be seen as follows:
- The user types the URL of the webpage into the browser's location bar or clicks on a link. This URL acts as a reference to the computer on which the webpage is held (the server) and the location of the file (its name and position inside the file tree).
- The browser sends a message over the internet to the server computer requesting the webpage.
- Server software (e.g. Apache) on the server computer receives the message.
- The URL is correct and up-to-date, and there are no problems with the server computer, so the software is able to locate the file in the computer's hard drive.
- The software sends a copy of the file back to the browser on the requesting computer (the client).
- The browser displays the page according to the HTML and CSS instructions it contains.
- Alternatively, if there is a problem with the server or the URL is incorrect, an error message is displayed by the browser on the client machine.
This can be shown diagrammatically as follows:
The interaction between the client and the server when a user requests a web page
The files held on the server are 'static' which means that all users who request the webpage will be delivered exactly the same content from the hard drive. It cannot be altered unless the developer makes a change to the files and saves them again.
The way that client-side and server-side processing works inside the interaction between client and server can be seen below. This is followed by an overview of the advantages and disadvantages of each.
The interaction between the client and the server when a user requests a web page containing client-side processing
The interaction between the client and the server when a user requests a web page containing server-side processing
Server-side processing also has related security advantages in that it occurs before the page is delivered and is thus not 'visible' to the end-user, who is only given the results of the processing. Providing security measures are followed to prevent hacking of the server, these processes cannot be accessed. However, client-side processes must be delivered to the user along with the CSS and/or HTML , images and other files that make up the web page. They can thus be accessed by the user (and potentially misused or manipulated) simply by viewing the source code. Where password control is required, for example, server-side processing is the only viable option as the list of acceptable passwords and the process of checking that a valid password has been entered occurs on the server. If the process was carried out client-side, viewing the source code would immediately reveal this to the user.
The main disadvantage of server-side processing is that it has the potential to reduce the speed and efficiency of a webpage. Every time a process needs to be carried out based on user input or actions, a call must be made to the server and the results delivered back to the client. In cases where the functionalities provided by processing are not essential and where there are no security implications, client-side processing can provide a faster and more seamless experience for the user. Thus, for example, the drop-down headings used by this site are activated client-side which adds an 'extra' functionality to the site but which is not essential to accessing the information the headings contain. Using server-side processing for such features would be impractical and slow, and if the user does not have a browser with client-side functionalities this will not affect accessibility.
Server-side processing also obviously requires access to a server which can deal with the processing technology chosen, along with adequate permissions to add scripts and/or databases to this server. Where this is not available, it may be necessary to use client-side processing, or to rethink whether the functionality should be added.
The main steps in delivering, receiving and processing a questionnaire
- The browser on the client computer requests the webpage containing the questionnaire from the server, receives the questionnaire and displays it on the page (see details in stages 1-6 above).
- Extra information such as the date and time, and details about the participant's computer are collected and placed in hidden form fields using client-side and/or server-side processes (see 'collecting participant information'.
- Server-side validation routines are carried out to check for problems with the form.
- If the answers have been entered correctly, a thank-you message is displayed and server-side processes are carried out to add the answers to a database or text-file, and/or include them in an email to be sent to the researcher.
- If the server-side validation reveals a problem with the form, it is returned to the participant with the answers preserved and messages to highlight what the problems were. The participant corrects the problems (if so inclined) and resubmits (return to step 3).
The following learning activities will allow you to examine this process of delivering, receiving and processing a questionnaire in more detail:
A number of technologies are available to add server-side processing functionalities to web pages, but whichever technology is chosen, the questionnaire will need to be uploaded to a server along with the required databases and/or scripts. The choice of which technology to use is likely to depend primarily on the type of server and software available and the level of access the researcher has to this server.
The following three hosting options are likely to be available to researchers who wish to create and upload their own questionnaires:
For researchers working within an institution such as a university, a government department, an NHS trust, or a charitable organisation, it may be possible to upload the questionnaire to the institution's server. In this case it will be necessary to find out what type of processing and database software can be used, and whether there are any limitations or conditions on how they can be used. It may be that certain types of scripts are not allowed or that time is needed for computer services to check any scripts before they are uploaded. In some cases, access to the server may only be possible if standard procedures for implementing web forms are followed. For a questionnaire with 'standard' requirements, this should not be a problem but it may be necessary to check issues such as whether the results can be accessed in the required format or whether they can be emailed, automatically added to a database, or both.
If a researcher does not have access to a server or if the level of control over what can be done and how is not adequate, it may be necessary to use a commercial hosting service. There is a huge range of options available at a range of prices. There are many free services available, but access to server-side processing capabilities and a database is likely to only be available through services which charge. If a free service is found that seems to offer the required functionalities it is also important to check whether advertisements are included and, if so, whether this is acceptable.
Services that charge can range from relatively inexpensive options which run a number of websites on a single server, to more expensive options with servers dedicated to a particular customer and frequently targeted at the business world. When choosing a provider, it is important to be clear on what the requirements are in terms of file space and available features to make comparison easier and to find a good value provider. It is also important to be aware that there may be limits of the capabilities that are offered and that, for example, some services may only allow standard scripts to be used, rather than allowing users to upload their own scripts. Depending on what is required, this may not be a problem, but it important to check when deciding which service to use. Asking for recommendations from friends and colleagues who use a hosting service, or checking review sites on the internet may help in finding a suitable service.
If the researcher has a broadband-connected computer which has a permanent IP address and which is permanently connected to the internet, it may be possible to use the computer as a server on which to host the questionnaire. This will allow complete freedom over the technologies used and the server-side processing added and may prove to be a suitable solution for researchers with high-level system administration and scripting skills who wish to create a questionnaire with advanced functionalities. However, for most questionnaires, this is unlikely to be needed. Running a pubic website from a personal server is also a difficult task and is not recommended for those without the knowledge and experience to ensure that the server is set-up properly, has adequate disc-space to deal with the traffic received, and is secure. For a questionnaire hosted in this way, it will also be necessary to ensure that the data collected is archived regularly and held securely. If hackers find a way to access the server, not only will the questionnaire data be potentially compromised, but the server could then also be used to attack other servers over the internet.
When choosing a hosting option, it is important to consider the URL the questionnaire will have when it is made publicly available. It may be necessary to choose and acquire a specific domain name for the questionnaire. Information about domain names is provided below.
If an institution's server is used, the URL of the questionnaire is likely to be within the file tree of the institution and/or department's website. Thus, it will have a URL which automatically includes a reference to the institution, such as the following:
This is likely to enhance participants' view of the legitimacy of the research.
If a commercial internet hosting service is used, many hosting services offer the possibility of having a site name as a sub site within the host's own domain name. In this case, the URL would be something like:
In either case, if the researcher wishes to have a specific URL for the questionnaire, it will be necessary to pay for a domain name under which the questionnaire can be made available. It will also be necessary to acquire a domain name if a personal server is used so that the questionnaire can be made available online through its own URL.
Typically domain names are registered for 1-2 years for a registration fee which gives the holder sole rights to use the name. This is done through registry services, such as Nominet (http://www.nominet.org.uk/), which is the registry for UK domain names. The site includes a facility to search for 'unclaimed' domain names which can then be registered. Most hosting company sites also include this facility and offer to register domain names on their clients' behalf either as part of a hosting package or as a stand-alone service.
Once the domain name has been acquired, it is possible for the hosting server to be set to deliver the questionnaire in response to requests to this domain over the internet. This will make it possible for the questionnaire to have a bespoke URL, e.g:
Where the researcher is affiliated to an institution but the questionnaire is not hosted on the institution's server, however, adding a link to the researcher's page on the institution's website and including a graphic of the institution logo is likely to be necessary for research legitimacy.
An informative, though perhaps not entirely impartial, introduction to hosting is available on the W3Schools website at the following address:
The server software handles requests for webpages from the server and also handles the interaction with server-side processing technologies and databases. In many cases, the choice of which server-side technology can be used depends on the server software that is installed. This, in turn, often depends on which operating system is in use on the computer (e.g. windows or linux). The most popular server software in use on the internet is Apache which is a free open-source option which can be used on both operating systems. Microsoft server software is also a commonly-used example, available for use on the Windows operating system and other server software is also available. Most hosts are likely to use one of these two options, though other server software is available. It is likely to be important to find out which operating system and server software are used, so that the researcher can set up a similar development environment on a personal computer to create and test the questionnaire before uploading it. Where a researcher wishes to use a particular type of software this will also be a key consideration when choosing a hosting service.
A number of technologies are available to allow server-side processing to be added to web pages. Some of the technologies are open-source and freely available for both development on a local computer and for use with servers to host public websites. The proprietary technologies are frequently also available free of charge as 'development' versions which can only be run on local machines. However, they can be expensive to buy where they are to be used with servers to host open websites. Where a researcher wishes to use this software, it will be necessary to check that it is available on the hosting server.
It is necessary to find out which operating system and server software is used by the host, and to find out which server-side processing technologies are supported. This will allow the decision on which technology to use to develop the questionnaire to be made. Where a researcher wishes to use a particular technology, it will also allow a hosting service offering this technology to be chosen. Commonly-used examples of server-side processing technologies are introduced below, and links to the official websites for each are also given.
CGI (Common Gateway Interface) is a set of rules for interaction between a server and a server-side program rather than a scripting language. Typically PERL is the language used to develop scripts for use with CGI. CGI is the oldest server-side processing technology available on the internet, and though it has largely been superceded by more efficient alternatives, it remains a popular choice. One of the key advantages of CGI is that ready-made scripts are often available online which may provide all the functionalities required to process a questionnaire without the need to develop programming skills.
A freely-available open-source server-side scripting language which can be downloaded and installed to allow the addition of server-side processing capabilities to web pages. Rather than existing separately from an HTML document, PHP scripts are embedded into web pages and are thus more efficient. PHP is designed to work simply and easily with database technologies, and it is frequently used in combination with the open-source database software MySQL. It is generally installed as an Apache module so that the Apache server software is effectively extended to include PHP functionality for the optimum performance. It can also be used with Microsoft servers.
ASP is a framework developed by Microsoft for providing server-side processing capabilities and database functionalities which has largely superceded by a more recent version, ASP.NET (though ASP remains widely used at the time of writing and a wide range of resources are still available on the internet to help developers who use ASP). ASP.NET makes use of ready-made web controls to allow functionalities such as straightforward database integration or standard form validation routines to be added to web pages. The use of ASP.NET typically requires the use of a Microsoft server and operating system. Free downloads of suitable server software to allow pages to be developed and tested on a local machine are usually available, along with free development tools such as a basic version of the Visual Web Developer or the free WYSIWYG Web Matrix software.
ColdFusion allows server-side processes to be added to webpages through the inclusion of ColdFusion Markup Language, a scripting language consisting of a range of tags. These tags effectively allow common server-side tasks such as sending emails or working with databases to be created through the addition of single tags, and it is often considered to be a relatively straightforward technology to learn for those with some understanding of HTML. ColdFusion can be used on a wide range of servers, but the software is less commonly used than some of the other server-side technologies. It is proprietary to Macromedia and is only available free of charge as a development version which can only be used on a local machine or for a limited trial period in the case of the full software.
Like PHP, ASP.NET and ColdFusion, JavaServer Pages consist of code added to the HTML document. In this case, Java code is embedded in the document which is activated when the page is requested. The use of JSP depends on downloading the appropriate software, namely the Java Development Kit and a JSP/Servlet engine such as Tomcat.
The 'Resources' section below contains references and links to introductory information and tutorials on the use of these technologies, and to resources on the use of these technologies to perform common questionnaire processing tasks.
Where the intention is to use server-side processing technology in combination with databases it will be necessary to choose an appropriate example of database software. As with the server-side technology, a major influence on this choice is likely to be the type of database available on the hosting server, though where a researcher wishes to use a particular type of software, this will be one of the key issues in selecting a service provider.
A wide range of database software is available that can be integrated with server-side processing. The high-end databases such as Oracle, Informix or Sybase may be a suitable solution for complex research projects with adequate funds available for the purchase. However, in most cases, the two most common options are likely to be Microsoft's SQL server for use with ASP.NET, or MySQL for use with the other server-side technologies and with PHP in particular.
Once it has been established what technologies are to be used, it is possible to download, install and configure the software needed to develop and test the questionnaire. This process will be different depending on the technologies chosen, but will typically involve the following stages:
- Download/purchase and install the server software, following the installation instructions provided.
- Test that the server is working correctly on the local machine. Some server software (e.g. Apache) will include a test page with the download. This will be saved in the root of the directory used by the server to hold the webpages which it will deliver. In the case of Apache, this will typically be the htdocs directory in the Apache program files on the hard drive (e.g. C:\Program Files\Apache Group\Apache2\htdocs). If no test page is available with a particular server, or if the researcher wishes to carry out a further test, an alternative test page (e.g. an HTML page with a name such as 'testing.html') can also be created and saved in this directory. The URL can then be typed into a web browser to view the page. This is typically 'http://localhost/'when the server is running on a local machine (e.g. 'http://localhost/testing.html'). If the installation has been successful, the test page will be displayed.
- Download/purchase the server-side processing and database technologies to a suitable directory (e.g. if installing PHP, this should be downloaded to a file called php on the root of the hard drive).
- Configure the server software, the server-side processing technology and the database software to allow them to work together. This can be quite a complex process requiring settings and/or configuration files to be altered, and it is important to refer to up-to-date guidance (see below).
- Create a test database and a test page including a connection to this database. Save this in the root directory used by the server and access it through the browser to check that the page is displayed successfully, indicating that the software is interacting correctly (see point 2).
When carrying out this process, it is important to refer to detailed and up-to-date guidance specific to the particular technologies used. Most training books on particular software will include a step-by-step guide to installation and configuration on different platforms (see the 'Resources' section below). When choosing a book, it is important to check that this information is provided for the software versions and platform you wish to use. Guides are also available on the internet.
A number of tools are available to assist in the development web pages with server-side processing capabilities. The use of WYSIWYG web editors can simplify and automate many of the common tasks involved in producing a questionnaire processed server-side, such as validation routines or connecting to databases, and other tools are available to help with the creation of scripts or the administration of databases.
Macromedia Dreamweaver is a commonly-used WYSIWYG editor which offers support to users who are developing server-processed webpages. Through Dreamweaver, it is possible to set up an environment for developing pages using all of the most common server-side technologies including those mentioned above. Once this is done, tools are available within the package to allow functionalities to be automatically added such as database connections, validation or password access. If the user has a knowledge of the chosen technology and wishes to create different functionalities, tools such as tag choosers can also provide assistance with coding in the chosen language.
Microsoft FrontPage is another WYSIWYG editor which allows the development of features such as validation of form data client and server-side, sending form results to an MS Access database or connecting to an alternative external database. This can be done with little or no knowledge of server-side processing using dialogue boxes within the editor. However, taking advantage of this requires that the server the questionnaire will be hosted on allows the use of FrontPage extensions, a proprietary Microsoft technology. If you have a knowledge of the editor and a server which allows this, however, it can dramatically simplify the process and reduce the need to spend time learning about new technologies or developing programming skills.
Where ASP.NET is the chosen technology for implementing the questionnaire, development tools such as the Microsoft Visual Web Developer are available to provide a drag-and-drop interface for page creation and to simplify the creation of code and integration with databases. The free WYSIWYG Web Matrix software is also available from Microsoft for the development of these pages.
Finally, a number of tools are available to make the production of PHP code and the creation and administration of MySQL databases easier and more intuitive. Like PHP and MySQL, these tools tend to be available open source and can be found by searching open-source repositories (See the 'Resources' section for example of these repositories).
Once the software and technologies used have been established, and the development environment has been set up accordingly, the pages and scripts can be developed to add server-side processing facilities to the questionnaire. In some cases, if a questionnaire has already been developed, it may be necessary to adapt the HTML to suit the server technology used. Thus, for example, if ASP.NET is used, the HTML form elements may need to be replaced with the ready-made web controls available with this technology.
Common server-side processing tasks are as follows:
- Validation, which should be added as a back-up to client-side validation. Facilities also need to be added to send a thank-you message on submission where no problems are found, or for the questionnaire to be redisplayed when errors are found (this should be done so that error messages highlight the problem, while the answers a participant has already entered are preserved);
- Emailing results, which may be the preferred method of processing the results as it is straightforward and easy to implement. The emails can also be encrypted to increase the security of sensitive data. Where a database is used, the researcher may also wish for the results to be emailed at the same time as they are added to the database.
- Automatically adding submitted data to a database, so that responses are added to the database on submission of the form;
- Adding a system of password access, so that only invited participants with access to a password can access the questionnaire and so that multiple submission using the same password is prevented;
- Working with multi-page forms, to pass the information gathered from page to page, or to submit each page when it is completed and then prevent participants going back and resubmitting these pages.
A wide range of books are available on the use of server-side processing technologies, along with websites offering tutorials and scripts. A number of suggestions for each of the main technologies is provided in the 'Resources' section below. This includes links to useful sources of information, tutorials and examples on how the common questionnaire processing tasks outlined above can be developed using these technologies.
A good source of information is through the websites of key publishers in the field of web development. These include the following publishers:
These sites offer facilities to search for titles related to particular technologies and also offer sample chapters and articles. They also offer access to Safari Bookshelf, which is one of the most convenient access points for books on these technologies online. It offers searchable access to the titles of these and other key publishers in the field for viewing onscreen or for downloading.
Other publishers which are not included in Safari Bookshop offer similar searchable websites and online access to their catalogues, e.g:
Provides information and tutorials on a range of server-side technologies including ASP, PHP, SQL, and ASP.NET.
General web-design resource. The programming section of the 'How-to library' includes tutorials on ASP, PHP, ColdFusion, and Perl/CGI.
Coggeshall, J. (2005) PHP Unleashed. Indianapolis. SAMS.
Kent, A., and Powers, D. (2004) PHP Web development with Macromedia Dreamweaver MX 2004. Berkeley, CA. Apress.
Naramore, E., Gerner, J., Le Scouarnec, Y., Stolz, J. and Glass, M. K. (2005) Beginning PHP5, Apache, and MySQL Web Development. Indianapolis. WROX.
Sklar, D. (2004) Learning PHP. Sebastapol, CA. O'Reilly.
Sklar, D. and Trachtenberg, A. (2003) PHP Cookbook. Sebastapol, CA. O'Reilly.
Ullman, L. (2005) PHP and MySQL for Dynamic Web Sites. Berkeley, CA. Peachpit Press.
Welling, L. and Thomson, L. (2004) PHP and MySQL Web Development. Indianapolis. SAMS.
Zandstra , M. (2005) Teach Yourself PHP in 24 Hours, 2nd Edition. Indianapolis. SAMS.
Offers a wide range of reources on PHP and MySQL including tutorials
An introduction to PHP from the official website which includes a very useful introductory tutorial.
A series of tutorials on how to use PHP and MySQL to create and administer databases.
The resources below refer to ASP.NET which has been designed to supercede ASP. However, at the time of writing ASP remains a commonly-used server-side technology and a wide range of resources are available offering information and tutorials in its use.
Duthie, G. A. and MacDonald, M. (2003) ASP.NET in a Nutshell. Sebastapol, CA. O'Reilly.
Hart, C., Kauffman, J., Sussman, D. and Ullman, C. (2005) Beginning ASP.NET 2.0. Indianapolis. WROX.
Kittel, M. A. and LeBlond, G. T. (2004) ASP.NET Cookbook. Sebastapol, CA. O'Reilly.
Martinez, J. and Parnell, R. (2003) ASP.NET Development with Dreamweaver MX. Berkeley, CA. Peachpit Press.
Mitchell, S. (2003) Teach yourself ASP.NET. Indianapolis. SAMS.
Walther, S. (2003) ASP.NET. Unleashed. Indianapolis. SAMS.
ASP.NET Quickstart Tutorial
http://www.asp.net/ QuickStart/aspnet/ Default.aspx
Detailed tutorials on using ASP.NET including information on how ASP.NET controls are used with code examples.
4 Guys from Rolla
Searchable resource with articles and tutorials on specific aspects of ASP.NET.
Colburn, R. (2003) Teach yourself CGI. Indianapolis. SAMS.
Guelich, S., Gundavaram, S. and Birznieks, G. (2000) CGI Programming with Perl. Sebastapol, CA. O'Reilly.
CGI Programming 101
Tutorials aimed at beginners with information on how to set up a development environment using CGI/PERL and how to process forms and write data to files.
CGI Made Really Easy - or, Writing CGI scripts
to process Web forms
Basic introduction to collecting and formatting information from forms.
Tutorials covering a basic introduction to CGI programming with PERL along with issues such as validation and emailing.
Brooks-Bilson, R. (2003) Programming ColdFusion MX. Sebastapol, CA. O'Reilly.
Camden, R., Chalnick, L., Buraglia, A. C. and Forta, B. (2005) Macromedia ColdFusion MX 7 Web Application Construction Kit. Berkeley, CA. Macromedia Press.
DeHaan, J. (2004) ColdFusion Web Development with Macromedia Dreamweaver MX 2004. Berkeley, CA. Apress.
Mohnike, C. (2003) Teach Yourself Macromedia ColdFusion in 21 Days. Indianapolis. SAMS.
Macromedia's Support Centre for ColdFusion -
http://www.macromedia.com/ support/coldfusion/ tutorial_index.html
A wide range of tutorials. Part of the ColdFusion Support Center which includes resources, technical notes and a forum.
A comprehensive range of ColdFusion tutorials.
Bergsten, H. (2003) JavaServer Pages, Third Edition. Sebastapol, CA. O'Reilly.
Brunner, R. (2003) JSP: A Practical Guide for Programmers. San Fransisco, CA. Morgan Kaufmann Publishers.
Holzner, S. (2002) Teach Yourself JavaServer Pages in 21 Days. Indianapolis. SAMS.
Perry, B. W. (2004) Java Servlet & JSP Cookbook. Sebastapol, CA. O'Reilly.
Caucho JSP Tutorials
Covers topics including form processing and emailing form contents.
Series of tutorials covering the basics of JSP and dealing with forms processing, databases and emailing. States that users should have a knowledge of HTML and Java.