ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/staticperl/perl/lib/CGI/eg/customize.cgi
Revision: 1.1
Committed: Thu Jun 30 14:27:09 2005 UTC (21 years, 3 months ago) by root
Branch: MAIN
CVS Tags: PERL-5-8-7, HEAD
Branch point for: PERL
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 #!/usr/local/bin/perl
2    
3     use 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.
15     foreach ('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');
28     print 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.
38     print start_html(-title=>$title,
39     -bgcolor=>$preferences{'background'},
40     -text=>$preferences{'text'}
41     );
42    
43     print basefont({SIZE=>$preferences{size}}) if $preferences{'size'} > 0;
44    
45     print h1($title),<<END;
46     You can change the appearance of this page by submitting
47     the fill-out form below. If you return to this page any time
48     within 30 days, your preferences will be restored.
49     END
50     ;
51    
52     # Create the form
53     print 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    
91     print a({HREF=>"/"},'Go to the home page');
92     print end_html;