source: for-distributions/trunk/bin/windows/perl/lib/CGI/eg/customize.cgi@ 14489

Last change on this file since 14489 was 14489, checked in by oranfry, 17 years ago

upgrading to perl 5.8

File size: 2.4 KB
Line 
1#!/usr/local/bin/perl
2
3use CGI qw(:standard :html3);
4
5# Some constants to use in our form.
6@colors=qw/aqua black blue fuschia gray green lime maroon navy olive
7 purple red silver teal white yellow/;
8@sizes=("<default>",1..7);
9
10# recover the "preferences" cookie.
11%preferences = cookie('preferences');
12
13# If the user wants to change the background color or her
14# name, they will appear among our CGI parameters.
15foreach ('text','background','name','size') {
16 $preferences{$_} = param($_) || $preferences{$_};
17}
18
19# Set some defaults
20$preferences{'background'} = $preferences{'background'} || 'silver';
21$preferences{'text'} = $preferences{'text'} || 'black';
22
23# Refresh the cookie so that it doesn't expire. This also
24# makes any changes the user made permanent.
25$the_cookie = cookie(-name=>'preferences',
26 -value=>\%preferences,
27 -expires=>'+30d');
28print header(-cookie=>$the_cookie);
29
30# Adjust the title to incorporate the user's name, if provided.
31$title = $preferences{'name'} ?
32 "Welcome back, $preferences{name}!" : "Customizable Page";
33
34# Create the HTML page. We use several of Netscape's
35# extended tags to control the background color and the
36# font size. It's safe to use Netscape features here because
37# cookies don't work anywhere else anyway.
38print start_html(-title=>$title,
39 -bgcolor=>$preferences{'background'},
40 -text=>$preferences{'text'}
41 );
42
43print basefont({SIZE=>$preferences{size}}) if $preferences{'size'} > 0;
44
45print h1($title),<<END;
46You can change the appearance of this page by submitting
47the fill-out form below. If you return to this page any time
48within 30 days, your preferences will be restored.
49END
50 ;
51
52# Create the form
53print hr(),
54 start_form,
55
56 "Your first name: ",
57 textfield(-name=>'name',
58 -default=>$preferences{'name'},
59 -size=>30),br,
60
61 table(
62 TR(
63 td("Preferred"),
64 td("Page color:"),
65 td(popup_menu(-name=>'background',
66 -values=>\@colors,
67 -default=>$preferences{'background'})
68 ),
69 ),
70 TR(
71 td(''),
72 td("Text color:"),
73 td(popup_menu(-name=>'text',
74 -values=>\@colors,
75 -default=>$preferences{'text'})
76 )
77 ),
78 TR(
79 td(''),
80 td("Font size:"),
81 td(popup_menu(-name=>'size',
82 -values=>\@sizes,
83 -default=>$preferences{'size'})
84 )
85 )
86 ),
87
88 submit(-label=>'Set preferences'),
89 hr;
90
91print a({HREF=>"/"},'Go to the home page');
92print end_html;
Note: See TracBrowser for help on using the repository browser.