home *** CD-ROM | disk | FTP | other *** search
- #!/usr/local/bin/perl
-
- use CGI qw(:standard :html3);
-
- # Some constants to use in our form.
- @colors=qw/aqua black blue fuschia gray green lime maroon navy olive
- purple red silver teal white yellow/;
- @sizes=("<default>",1..7);
-
- # recover the "preferences" cookie.
- %preferences = cookie('preferences');
-
- # If the user wants to change the background color or her
- # name, they will appear among our CGI parameters.
- foreach ('text','background','name','size') {
- $preferences{$_} = param($_) || $preferences{$_};
- }
-
- # Set some defaults
- $preferences{'background'} = $preferences{'background'} || 'silver';
- $preferences{'text'} = $preferences{'text'} || 'black';
-
- # Refresh the cookie so that it doesn't expire. This also
- # makes any changes the user made permanent.
- $the_cookie = cookie(-name=>'preferences',
- -value=>\%preferences,
- -expires=>'+30d');
- print header(-cookie=>$the_cookie);
-
- # Adjust the title to incorporate the user's name, if provided.
- $title = $preferences{'name'} ?
- "Welcome back, $preferences{name}!" : "Customizable Page";
-
- # Create the HTML page. We use several of Netscape's
- # extended tags to control the background color and the
- # font size. It's safe to use Netscape features here because
- # cookies don't work anywhere else anyway.
- print start_html(-title=>$title,
- -bgcolor=>$preferences{'background'},
- -text=>$preferences{'text'}
- );
-
- print basefont({SIZE=>$preferences{size}}) if $preferences{'size'} > 0;
-
- print h1($title),<<END;
- You can change the appearance of this page by submitting
- the fill-out form below. If you return to this page any time
- within 30 days, your preferences will be restored.
- END
- ;
-
- # Create the form
- print hr(),
- start_form,
-
- "Your first name: ",
- textfield(-name=>'name',
- -default=>$preferences{'name'},
- -size=>30),br,
-
- table(
- TR(
- td("Preferred"),
- td("Page color:"),
- td(popup_menu(-name=>'background',
- -values=>\@colors,
- -default=>$preferences{'background'})
- ),
- ),
- TR(
- td(''),
- td("Text color:"),
- td(popup_menu(-name=>'text',
- -values=>\@colors,
- -default=>$preferences{'text'})
- )
- ),
- TR(
- td(''),
- td("Font size:"),
- td(popup_menu(-name=>'size',
- -values=>\@sizes,
- -default=>$preferences{'size'})
- )
- )
- ),
-
- submit(-label=>'Set preferences'),
- hr;
-
- print a({HREF=>"/"},'Go to the home page');
- print end_html;
-