Reading and Wirelessly Sending EEG Signals Using Arduinos ...
Sending Data Using a Hyperlink
-
Upload
reece-bruce -
Category
Documents
-
view
22 -
download
0
description
Transcript of Sending Data Using a Hyperlink
2
1
Sending Data Using a Hyperlink
CGI/Perl Programming
By Diane Zak
2
2
Objectives
• In this chapter, you will:
• Create a hyperlink to a CGI script• Append data to a URL• Use the CGI.pm module to parse data• Access data using the param function
2
3
Introduction
• Changes to static web pages can only be made when the page is updated on the server– Requires human intervention
• Changes to dynamic web pages can be made in response to information sent through a hyperlink or form
2
4
Creating a Link to a Script
• Most web pages contain text, images and hyperlinks– Hyperlinks or links appear as different colored text,
underlined text, or clickable images– The HTML anchor tag <A> with the HREF property is
used to create a link• HREF = Hypertext Reference• Syntax: <A HREF=URL>hyperlinktext</A>• hyperlinktext is the clickable text• <A HREF=URL><IMG SRC=imageFile></A> is the
syntax for a clickable image
2
5
Creating a Link to a Script
2
6
Creating a Link to a Script
• When creating a script, remember to:– Enter the shebang line (required for
UNIX)– Enter a comment that includes the
name of the script and the script’s purpose
– Enter the Content-type line:• print “Content-type: text/html\n\n”;
2
7
print Function• Perl can generate HTML output in various
ways:– print– printf– “here” documents
• Syntax for print:– print output;
• Output can be strings, functions, variables• Output can be an expression or a list of
expressions, separated by commas
2
8
print Function• Using the newline character (\n) can
make HTML code easier to read when viewing the HTML source in a browser– Without \n, the HTML code appears all on
one line, and is difficult to read
• It is good practice to include all of the HTML tags - HTML, HEAD, and BODY
2
9
Completing a Script
• Remember that the following needs to be done for each Perl/CGI script that is created:1. Save the document2. cd path
If UNIX - chmod 755 filename3. perl -c filename4. perl -w filename5. Open the script in a web browser
2
10
Sending One Item of Data Using a Link
• Append the data to the URL– Use a question mark (?) to separate the URL from
the data– Use an equal sign (=) to separate the key from
the value– Syntax:
<A HREF=URL?key=value>hyperlinkText</A>– key is the variable name
• One-word name
– value is the value that is assigned to the key
2
11
Sending One Item of Data Using a Link
• When you have clicked on a link that is sending data, the data is viewable in the browser’s address box
2
12
Parsing Data
• Data can be sent through a URL, but the script has to be able to separate the key from the value
• This ability is part of the CGI.pm module– module = collection of prewritten code
stored in a file– Most modules use the file extension .pm,
which stands for perl module
2
13
Parsing Data
• Can find if you have cgi.pm by:– whereis cgi.pm (UNIX)– Start --> Search --> cgi.pm (Windows)– If not, can download from:
• http://www.genome.wi.mit.edu/ftp/pub/software/WWW/cgi_docs.html
2
14
Parsing Data• To use CGI.pm, you need to include the
statement:– use CGI qw(:standard);
• qw = quote words• Same as the statement -
use CGI(‘:standard’);• :standard is an import tag
– Tells the Perl interpreter to allow the use of the standard features of the CGI.pm module
• Can find out more about CGI.pm, by typing:– perldoc CGI.pm
2
15
Parsing Data
• The param function accesses the value associated with a key– param is part of the standard features
of CGI.pm– Syntax:
• param(key) where key is in single or double quotation marks
• Example:– param(‘state’);– param(“state”);
2
16
Parsing Data• When checking for errors, using
perl -w scriptname, you can:– Type key=value after the scriptname– Example:
• perl -w jackson.cgi state=Alabama
2
17
Parsing Data• You can also type in key=value on
a separate line– Example:
• perl -w jackson.cgi• “(offline mode: enter name=value pairs
on standard input)” message should appear
• Type in key=value pairs• Type Ctrl+d (UNIX) or Ctrl+z (Windows)
when done
2
18
Parsing Data
• If the offline mode message does not appear, the use CGI statement needs to be changed:– use CGI qw(:standard -debug);– This is including the -debug pragma,
and tells CGI.pm to pause to let you type in the data• pragma = special type of Perl module.
2
19
Parsing Data
2
20
Parsing Data
2
21
Sending Multiple Items of Data Using a Link
• When sending more than 1 item of data through a link, use the following syntax:<A HREF=URL?key1=value1&key2=value2...&keyN=valueN>hyperlinkText</A>– An ampersand (&) is used to separate each
key and value pair– Some browsers limit the amount of
information that can be attached to a URL
2
22
Sending Multiple Items of Data Using a Link
• When sending a value that contains more than one word, substitute a plus sign (+) for a space– Example:
• <A HREF=“http://yourservername/cgi-bin/chap02/jackson.cgi?state=Arkansas&cap=Little+Rock”>Arkansas</A>
• The jackson.cgi script, when sent that data can get the values of the state and cap keys using param
– print “The capital of “, param(‘state’), “ is “, param(‘cap’), “.\n”;– The capital of Arkansas is Little Rock.
2
23
Sending Multiple Items of Data Using a Link
2
24
Summary• The syntax for creating a hyperlink is:
<A HREF=URL>hyperlinkText</A>– hyperlinkText is the clickable link
• The syntax for creating an image link is:<A HREF=URL><IMG SRC=imageFile></A>– imagefile contains the path and name of the image file
• print output; can be used to generate HTML instructions.– output is an expression or list of expressions separated by
commas
2
25
Summary• To pass one item of data to a script, using a hyperlink, use the
syntax:<A HREF=URL?key=value>hyperlinkText</A>– key is the variable name associated with the value
• To pass more than one item of data to a script, using a hyperlink, separate the key and value pairs with a &, with the syntax:<A HREF=URL?key1=value1&key2=value2...&keyN=valueN>hyperlinkText</A>
• To pass a value that has a space in it, replace the space with a plus sign (+)
2
26
Summary• The CGI.pm module can be used to parse data
– use CGI qw(:standard);
• When testing the script from the command line, with perl -w, you can either:– Enter the data on the same line as the command– Enter each item of data on a separate line– You may need to use the -debug pragma
• You can use CGI.pm’s param function to access the value of a key that was passed to the script