93 lines
2.4 KiB
Perl
93 lines
2.4 KiB
Perl
#!/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;
|