Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 *Copyright © 2002 Pearson Education, Inc.. 2 Chapter 4 Working with the Web.

Similar presentations


Presentation on theme: "1 *Copyright © 2002 Pearson Education, Inc.. 2 Chapter 4 Working with the Web."— Presentation transcript:

1 1 *Copyright © 2002 Pearson Education, Inc.

2 2 Chapter 4 Working with the Web

3 3 *Copyright © 2002 Pearson Education, Inc. Chapter Objectives l Describe some basic Perl Functions Describe the basic functions within the CGI.pm library that can generate HTML tags »Learn the different formats of the CGI.pm function syntax l Understand how to use forms to send data and receive data to/in CGI/Perl programs

4 4 *Copyright © 2002 Pearson Education, Inc. Chapter Objectives l Describe some basic Perl Functions Describe the basic functions within the CGI.pm library that can generate HTML tags »Learn the different formats of the CGI.pm function syntax l Understand how to use forms to send data and receive data to/in CGI/Perl programs

5 5 *Copyright © 2002 Pearson Education, Inc. Will Cover 3 Sets of Functions l Will discuss several functions » Some basic Perl functions—the square root, absolute value, string, and random number generation functions. » The print function —more details about the capabilities of the print function. » The param function—use of this function to receive input into your programs.

6 6 *Copyright © 2002 Pearson Education, Inc. Using Perl Functions l Perl includes built-in functions that provide powerful additional capabilities to enhance your programs. » Work much like operators, except that most (but not all) accept one or more arguments (I.e., input values into functions).

7 7 *Copyright © 2002 Pearson Education, Inc. Will Cover 3 Sets of Functions l Will discuss several functions » Some basic Perl functions—the square root, absolute value, string functions, and random number generation functions » The print function—more details about the capabilities of the print function. » The param function—use of this function to receive input into your programs.

8 8 *Copyright © 2002 Pearson Education, Inc. S ome Basic Perl Functions l Here are a few functions within Perl » sqrt() –a single numerical argument as input & returns the square root of the argument passed in. For example, $x=25; $y=sqrt($x); print “x=$x y=$y and finally ”, sqrt(144); would output the following: x=25 y=5 and finally 12

9 9 *Copyright © 2002 Pearson Education, Inc. S ome Basic Perl Functions - abs() l Absolute Value - » abs() – accepts a single numerical argument & returns the absolute value of this argument. For example, $x=-5; $y=42; print abs($x), “ “, abs($y); » would output the following output: 5 42 » The extra space in the print line (“ ”) provides a space between the output values.

10 10 *Copyright © 2002 Pearson Education, Inc. S ome Basic Perl Functions -rand() l rand() – generates a random number from 0 to the number passed into it. » Example use: simulating a roll of a die or displaying a random image in a document. » When int() is used with rand(), it forces rand() to return whole numbers instead of its default fractional numbers. – For example, $numb = int( rand(3) ); – returns a random number that is either a 0, 1, or 2.

11 11 *Copyright © 2002 Pearson Education, Inc. S ome Basic Perl Functions - rand() » Here is another example of the rand() function: $dice=int(rand(6))+1; print "Your random dice toss is $dice"; » The random number that is generated in this case can be a 1, 2, 3, 4, 5, or 6. Thus one possible output of this code is Your random dice toss is 6

12 12 *Copyright © 2002 Pearson Education, Inc. S ome Basic Perl Functions - rand() » length() – The length function is used to work with string variables. It returns the number of characters in the string argument. For example, » $name = “smith”; $title = “Domestic Engineer”; print “name is ”, length($name), “ title is ”, length($title), “ characters long”; » returns the following output: name is 5 title is 17 characters long

13 13 *Copyright © 2002 Pearson Education, Inc. S ome Basic Perl Functions - rand() » localtime() – The localtime function is typically used with the time() function to determine the current date and time while your program is executing. – time returns the number of seconds since January 1, 1970. – When time() is used as an argument to the localtime() function, the output will be a set of scalar variables that provide the current date and time information. – For example,

14 14 *Copyright © 2002 Pearson Education, Inc. locatltime(time) return values ($sec, $min, $hr, $day, $mon, $yr, $wkday, $DayNumOfYr, $TZ ) = localtime(time); Current second Current minute Current Hour Day Of Month (0 is Jan, 1 is Feb, etc) Number of years since 1900. Day of week (0 is Sun, 1 is Mon, since 1900. Day of year (0 is Jan1, 1 is Jan 2, etc.) Timezone 1 if local time is using Daylight Savings Time; 0 otherwise

15 15 *Copyright © 2002 Pearson Education, Inc. Using localtime(time) ($sec, $min, $hr, $day, $mon, $yr, $wkday, $DayNumOfYr, $TZ ) = localtime(time); print "Time is $hr:$min:$sec Date=$mon/$day/$yr ";\ print "Wkday=$wkday DayNumbOfYear=$DayNumOfYr $TZ=$TZ”; Would produce the following example output: » Time is 21:12:58 Date=7/15/101 Wkday=3 DayNumbOfYear=226 1=1

16 16 *Copyright © 2002 Pearson Education, Inc. More Common Localtime Use » The following code shows a common use of localtime() to get date information: ($sec, $min, $hr, $day, $mon, $yr, $wkday, $DayNumOfYr, $TZ ) = localtime(time); $yr=$yr+1900; $mon = $mon + 1; print "Time is $hr:$min:$sec Date=$mon/$day/$yr "; print "Wkday=$wkday DayNumbOfYear=$DayNumOfYr $TZ=$TZ"; The output would look like the following: Time is 21:29:58 Date=8/15/2001 Wkday=3 DayNumbOfYear=226 1=1

17 17 *Copyright © 2002 Pearson Education, Inc. Will Cover 3 Sets of Functions l Will discuss several functions » Some basic Perl functions—the square root, absolute value, string, and random number generation functions. » The print function —more details about the capabilities of the print function. » The param function—use of this function to receive input into your programs.

18 18 *Copyright © 2002 Pearson Education, Inc. The print Function l You can enclose output in parentheses or not. l When use double quotation marks, Perl outputs the value of any variables. For example, $x = 10; print ("Mom, please send $x dollars"); l Output the following message: Mom, please send 10 dollars

19 19 *Copyright © 2002 Pearson Education, Inc. More On print() l If want to output the actual variable name (and not its value), then use single quotation marks. $x = 10; print ( 'Mom, please send $x dollars'); l Would output the following message: Mom, please send $x dollars

20 20 *Copyright © 2002 Pearson Education, Inc. Still More On print() l Can also comma separate several arguments to print(). For example, $x=5; print ('Send $bucks', " need $x. No make that ", 5*$x); This print statement request would output the following message: Send $bucks need 5. No make that 25

21 21 *Copyright © 2002 Pearson Education, Inc. Generating HTML with print() l Can use single quotes when output some HTML tags: print ‘ ’; Can use backslash (“ \ ”) to signal that double quotation marks themselves should be output: $color=”BLUE”; print “ ”;

22 22 *Copyright © 2002 Pearson Education, Inc. Using CGI.pm to generate HTML The CGI.pm module provides several functions that can be used to concisely output HTML tags. For example, $mypage=‘It is a New Day’; print “ $mypage ”; l Can also be written as: $mypage=’It is a New Day’; print start_html(‘$mypage’); CGI.pm function

23 23 *Copyright © 2002 Pearson Education, Inc. 3 Basic CGI.pm Modules start_html —creates starting HTML tags header —creates the MIME Content-type line end_html — creates ending HTML tags 1. #!/usr/bin/perl 2. use CGI ':standard'; 3. print header; 4. print start_html; 5. print ' '; 6. print 'Welcome humans to my site '; 7. print end_html;

24 24 *Copyright © 2002 Pearson Education, Inc. Would output the following …

25 25 *Copyright © 2002 Pearson Education, Inc. Chapter Objectives l Describe some basic Perl Functions Describe the basic functions within the CGI.pm library that can generate HTML tags »Learn the different formats of the CGI.pm function syntax l Understand how to use forms to send data and receive data to/in CGI/Perl programs

26 26 *Copyright © 2002 Pearson Education, Inc. CGI.pm Basic Functions The various CGI/PM function accept 3 basic syntactic formats: » No argument format—functions that can be used without any arguments » Positional argument format—functions that can accept comma-separated arguments within parentheses » Name-value argument format—functions that accept parameters submitted as name-and-value pairs

27 27 *Copyright © 2002 Pearson Education, Inc. No Argument Format l The Previous Example shows the start_html, header, end_html functions » You can place the 1 or more functions directly within a print statement » Would output

28 28 *Copyright © 2002 Pearson Education, Inc. Some Single Argument Functions CGI.pm Function Example of UseExample Output Header - the MIME Content- type line print header;Content- type:text/html\n\n start_html — Tags to start an HTML document print start_html; br —output tag print br; hr —generate horizontal rule print hr; end_html —end an HTML document print end_html;

29 29 *Copyright © 2002 Pearson Education, Inc. Positional Argument Format l Specify multiple arguments based on the position of the argument l For example

30 30 *Copyright © 2002 Pearson Education, Inc. Some Positional Functions CGI.pm Functions Example of UseExample Output start_html() — tags needed to start an HTML document. start_html(‘My Page’); My Page h1() —header level 1 tags. (also h2(), h3(), and h4() ) print h1(‘Hello There’); Hello There strong() – output argument in strong. print strong('Now'); Now p() —creates a paragraph. print p(‘Time to move’); Time to move b() —prints the argument in bold. print b('Exit'); Exit i() —prints the argument in italics. print i('Quickly'); Quickly

31 31 *Copyright © 2002 Pearson Education, Inc. Operating on Variables Can concisely use functions with a single print statement: » print i('Please '),'come when I call you ', strong('immediately.'); l This code would output the following: » Please come when I call you immediately.

32 32 *Copyright © 2002 Pearson Education, Inc. Consider the following example: 1. # !/usr/bin/perl 2. use CGI ':standard'; 3. print header, start_html(‘Positional Example’), h1('Simple Math'); 4. print b('two times two='), 2*2; 5. print br, 'but ', b('four times four='), 4*4; 6. print br, 'Finally, ', b('eight times eight='), 8*8; 7. print end_html;

33 33 *Copyright © 2002 Pearson Education, Inc. Would output The following 1. # !/usr/bin/perl 2. use CGI ':standard'; 3. print header, start_html(‘Positional Example’), h1('Simple Math'); 4. print b('two times two='), 2*2; 5. print br, 'but ', b('four times four='), 4*4; 6. print br, 'Finally, ', b('eight times eight='), 8*8; 7. print end_html;

34 34 *Copyright © 2002 Pearson Education, Inc. Name-Value Argument Format My Title l Can specify names and values as follows: l Would output the following:

35 35 *Copyright © 2002 Pearson Education, Inc. Some name/value functions CGI.pm Function Example UsageExample Output start_html start HTML document print start_html({ -title=>‘my title’, –bgcolor=>’red’ }); my title img —inserts an image print img({- src=>'myfile.gif', -alt=>’picture’}); a — establishes links print a( { - href=>'http://www.mysite.com'}, 'Click Here'); Click Here font() — creates … tags print font( { -color=>‘BLUE’, – size=>’4’}, ‘Lean, and mean.’); Lean, and mean.

36 36 *Copyright © 2002 Pearson Education, Inc. Example Name/Value Program 1. #!/usr/bin/perl 2. use CGI ':standard'; 3. print header; 4. print start_html({-title=>'New Day ', -bgcolor=>'yellow'}); 5. print 'Welcome One And ', i('All'); 6. print end_html; Set background color and title

37 37 *Copyright © 2002 Pearson Education, Inc. Would Output The Following...

38 38 *Copyright © 2002 Pearson Education, Inc. Chapter Objectives Describe the basic functions within the CGI.pm library that can generate HTML tags »Learn the different formats of the CGI.pm function syntax l Understand how to use forms to send data and receive data to/in CGI/Perl programs

39 39 *Copyright © 2002 Pearson Education, Inc. Input Data from HTML Forms l A common method to start CGI/Perl programs and pass them arguments. » Use form elements such as: – text areas, – check boxes, – selection lists, and – radio buttons » There are CGI.pm functions for each of these will describe the long-hand (not using CGI.pm)

40 40 *Copyright © 2002 Pearson Education, Inc. Starting and Ending Forms HTML forms are created by using the HTML and tags. » Within these tags, you place various HTML form elements, such as text areas, check boxes, and radio buttons. » For example, »..  ---(Your FORM elements here).

41 41 *Copyright © 2002 Pearson Education, Inc. Two primary arguments l <FORM ACTION=”http://perl-pgm.com/cgi-bin/stuff.cgi” METHOD=”POST”> » get appends the form arguments to the end of the Web address. » post sends the data as part of the body of the HTML document. » Will use post since get method may limit the amount of data you can send. ACTION= - Specifies the URL of the CGI program to start when the form is submitted METHOD= - Defines the argument format that will be used to send data to the CGI/Perl program.

42 42 *Copyright © 2002 Pearson Education, Inc. Output Form Tags From Perl Example #!/usr/bin/perl use CGI ':standard'; print header, start_html(‘Sample Form’); print ‘ ’;..  ---- (Perl statements that output FORM. elements go here) print ‘ ’;

43 43 *Copyright © 2002 Pearson Education, Inc. Form Submit/Reset Buttons l 2 types of buttons: Submit form or erases input. »On submit, data is sent to the location specified in the ACTION= argument of the tag. » HTML for submit/reset l Output from Perl program as follows: print ‘ ’; Type of button Label on button

44 44 *Copyright © 2002 Pearson Education, Inc. Form Submit/Reset Buttons 1. #!/usr/bin/perl 2. use CGI ':standard'; 3. print header, start_html('A First Form'); 4. print '<FORM ACTION="http://65.108.8.8/cgi- bin/C4/first.cgi" METHOD=”POST”>'; 5. print br, ' '; 6. print ' '; 7. print ' ', end_html;

45 45 *Copyright © 2002 Pearson Education, Inc. Would output the following...

46 46 *Copyright © 2002 Pearson Education, Inc. Setting Up Input Text Areas l Input Text Areas creates text boxes on forms. l HTML for Input Text boxes <INPUT TEXT TYPE=”text” SIZE=”15” MAXLENGTH=”20” NAME=”color”> l Output from Perl program as follows: print ‘ ’; 15 character box 20 character max allowed sets a CGI variable called color

47 47 *Copyright © 2002 Pearson Education, Inc. Receiving HTML Form Arguments l Within the receiving program use param() » Make sure CGI variable name in NAME= argument from form matches argument in param() function. » See following example,

48 48 *Copyright © 2002 Pearson Education, Inc. Receiving HTML Form Arguments

49 49 *Copyright © 2002 Pearson Education, Inc. Example sending text box data Here is a calling form with a text box: 1.#!/usr/bin/perl 2. use CGI ':standard'; 3. print header, start_html; 4. print ' '; 5. print 'Enter A Color '; 6. print ' '; 7. print br, ' '; 8. print ' '; 9. print ‘ ’, end_html; Sets CGI variable ‘color’ Creates submit and reset buttons Program to start “On submit”

50 50 *Copyright © 2002 Pearson Education, Inc. Example sending text box data Here is a receiving CGI/Perl Program: 1. #!/usr/bin/perl 2. use CGI ':standard'; 3. print header; 4. print start_html("Color my Text"); 5. $userColor = param('color'); 6. print " "; 7. print 'Welcome to my World'; 8.print ‘ ’, end_html; Receives CGI variable ‘color’ Sets <font to $userColor

51 51 *Copyright © 2002 Pearson Education, Inc. Example Output

52 52 *Copyright © 2002 Pearson Education, Inc. Sending Passwords l Can create text boxes as password areas instead of viewable text. » Letters entered within a password box are viewed as asterisks (“*”). » To create a password box, you set TYPE=”password” with the INPUT form element tag. » Not a secure method for transmitting passwords. – Any data input is sent in clear text (non-encrypted). Anyone with network access could, potentially read the password being transferred. – If password protect one page can still get to other pages.

53 53 *Copyright © 2002 Pearson Education, Inc. Setting Up Input Text Areas l HTML for Input Text boxes <INPUT TYPE=”password” SIZE=”15” MAXLENGTH=”25” NAME=”pass”> l Output from Perl program as follows: print ‘ ’; 15 character box 20 character max allowed sets a CGI variable called pass Form element type

54 54 *Copyright © 2002 Pearson Education, Inc. Program that creates password box 1.#!/usr/bin/perl 2.use CGI ":standard"; 3.print header; 4.print start_html("Color my Text"); 5.print '<FORM ACTION="http://65.108.8.8/cgi-bin/C4/checkpass.cgi“ METHOD=”POST”>'; 6.print ' Enter password to see message '; 7.print '<INPUT TYPE="password" SIZE="15" NAME="passwd">'; 8.print br, '<INPUT TYPE=SUBMIT VALUE="Click To Submit">'; 9.print ’<INPUT TYPE=RESET VALUE="Erase and Restart">'; 10. print ‘ ’, end_html; Where to send input Passwd text box Submit & Reset buttons

55 55 *Copyright © 2002 Pearson Education, Inc. Receiving Perl Program 1. #!/usr/bin/perl 2. use CGI ":standard"; 3. print header; start_html('Check Pass'); 4. $password=param('passwd'); 5. if ( $password eq 'PerlOK' ) { 6. print 'You got the password do not tell anyone'; 7. } else { 8. print 'Sorry you do not know the password'; 9. print br, "You entered $password"; 10. } 11. print end_html; Get passwd CGI/variable

56 56 *Copyright © 2002 Pearson Education, Inc. Would output the following...

57 57 *Copyright © 2002 Pearson Education, Inc. Text Areas l Similar to text boxes, except you can create multicolumn and multirow input areas. Green Can output from CGI/Perl program as follows: print ‘ ’; print ‘Green ’ Number of rows Number of cols CGI variable name

58 58 *Copyright © 2002 Pearson Education, Inc. Check Boxes l Small boxes on a form that create a check mark when the user clicks them. Play Baseball? Fish? l Can output from CGI/Perl program as follows: print ‘ Play Baseball?’; print ‘ Fish?’; CGI Variable name CGI Variable value Label next to check box

59 59 *Copyright © 2002 Pearson Education, Inc. Coordinated Check Boxes l Creating check boxes that enable multiple boxes to be checked » Use a common NAME= CGI variable name. Play Baseball? Fish? Travel? If select multiple receive comma separate list. » E.g., “bball, travel” if 1rst and 3rd.

60 60 *Copyright © 2002 Pearson Education, Inc. Example Checkbox & Text Area Form 1. #!/usr/bin/perl 2. use CGI ':standard'; 3. print header, start_html('Checkbox and Textarea'); 4. print ' '; 5. print 'What do you eat? '; 6. print ' Vegetables?'; 7. print ' Meat?'; 8. print ' Anything not moving?'; 9. print ' Any comments? '; 10. print ' '; 11. print 'Put Comments Here '; 12. print br, br; 13. print br, ' '; 14. print ' '; 15. print ' ', end_html;

61 61 *Copyright © 2002 Pearson Education, Inc. Would Output The Following...

62 62 *Copyright © 2002 Pearson Education, Inc. Radio Buttons l Small circles that similarly to check boxes. » Only one button can be selected at any given time. » The NAME argument must be the same for all radio buttons group. Play Baseball? Fish? Travel? CGI Variable name CGI Variable value Label next to radio button

63 63 *Copyright © 2002 Pearson Education, Inc. Selection Lists l A box with a scrolling list of one or more items that can be highlighted and selected by the user » defines each option to display. » SIZE defines number to display w/o scrolling. » MULTIPLE allows > 1 one item to be selected A fine hotel A cheap motel! A tent in the parking lot Just give me a sleeping bag checked

64 64 *Copyright © 2002 Pearson Education, Inc. Radio and Selection Form 1. #!/usr /bin/perl 2. use CGI ':standard'; 3. print header, start_html; 4. print ' '; 5. print "What do you want to do this summer? "; 6. print ' Play Baseball?'; 7. print ' Fish?'; 8. print ' Travel? '; 9. print " Where would you like to stay? "; 10. print ' '; 11. print ' A fine hotel'; 12. print ' A cheap motel!'; 13. print ' A tent in the parking lot'; 14. print ' Just give me a sleeping bag checked'; 15. print ' '; 16. print br, br, ' '; 17. print ' '; 18. print ‘ ’, end_html;

65 65 *Copyright © 2002 Pearson Education, Inc. Would Output The Following...

66 66 *Copyright © 2002 Pearson Education, Inc. Hidden Fields l Not displayed on the form. » Typically used by form-processing applications that use multiple form screens to store values. » By storing values in hidden fields, your application can “remember” things between screens. (Will discuss more later.)

67 67 *Copyright © 2002 Pearson Education, Inc. Using CGI.pm Debug Mode l Can test your scripts before executing them with a browser. » If can use Telnet commands on the Web server (or have Perl installed on your PC), you » CGI.pm enables you to enter CGI variables and values from a command line. » Receive the output (usually HTML document)

68 68 *Copyright © 2002 Pearson Education, Inc. Using CGI.pm Debug Mode - II l To start and send an argument to the password program can execute the following: perl checkpass.cgi passwd=PerlOK l Enclose blank spaces in quotation marks: perl checkpass.cgi ‘passwd=Perl Not OK’

69 69 *Copyright © 2002 Pearson Education, Inc. Would output the following...

70 70 *Copyright © 2002 Pearson Education, Inc. Off-line Mode l If not specify any arguments will enter offline mode. For example, perl checkpass l After you enter each CGI variable and value, on a UNIX Web server, press Ctrl-D (that is, press both the Ctrl key and the D key simultaneously) to exit. l (On a Windows system, exit the input mode by pressing Ctrl-Z).

71 71 *Copyright © 2002 Pearson Education, Inc. Summary Several functions found in the CGI.pm library can be used to generate HTML tags. » You must explicitly connect to the CGI.pm library before you can use these functions. l HTML forms are the method most commonly used to start and pass data to CGI/Perl programs. » The ACTION argument within the tag indicates which CGI application to start when the form is submitted.

72 72 *Copyright © 2002 Pearson Education, Inc. Summary l Form elements set name-value pairs used to send parameters to the CGI/Perl application. » The NAME= attribute defines the CGI variable name. Possible form elements include text boxes, text fields, check boxes, radio buttons, and selection lists. » Use the param()CGI.pm function to receive arguments from forms. The variable name used as an argument to this function must match the NAME= attribute set in the form.


Download ppt "1 *Copyright © 2002 Pearson Education, Inc.. 2 Chapter 4 Working with the Web."

Similar presentations


Ads by Google