- Moved unused argc, temp variable into small scope.
[dragonfly.git] / contrib / perl5 / eg / cgi / customize.cgi
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;