0
除了最後一個CGI中HTML頁面的背景顏色以外,一切都可以使用。有人可以幫我嗎?我很困難。我不知道爲什麼背景顏色不會改變。(作業)如何使用用戶的輸入和cookie更改HTML背景(使用Perl CGI)?
下面是HTML:
<table border="2" cellspacing="5" cellpadding="5">
<tr>
<td align="center">Name</td>
<td><input type="text" name="customer" size="15"></td>
</tr>
<tr>
<td align="center">Select Membership Type</td>
<td>
<input type="radio" name="membership" value="0">Life
<input type="radio" name="membership" value="1">Annual
<input type="radio" name="membership" value="2">Free Trial
</td>
</tr>
<tr>
<td align="center">Choose Background Color</td>
<td>
<select name="color">
<option value="ye">Yellow
<option value="cy">Cyan
<option value="ma">Magenta
<option value="wh">White
<option value="pi">Pink
<option value="go">Gold
<option value="pa">PapayaWhip
</select>
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Sign Up and Set Options"></td>
</tr>
</table>
</form>
CGI從HTML上面節省了用戶的Cookie:
我使用一個數組來保存會員類型,和一個散列 使用選項標籤屬性值作爲全色名稱的鍵
my $customer = param('customer');
my $chosen_membership = param('membership');
my $color = param('color');
my @membership_type = ("Life", "Annual", "Free Trial");
my %colors = ("ye" => 'Yellow',
"cy" => 'Cyan',
"ma" => 'Magenta',
"wh" => 'White',
"pi" => 'Pink',
"go" => 'Gold',
"pa" => 'Papayawhip');
my $chosen_color = $colors{$color};
my $mycookie1 = cookie(-name=>'membership',
-value=>$membership_type[$chosen_membership],
-path=>'/',
-expires=>'+7d');
my $mycookie2 = cookie(-name=>'customer',
-value=>$customer,
-path=>'/',
-expires=>'+7d');
my $mycookie3 = cookie(-name=>"color",
-value=>$chosen_color,
-path=>'/',
-expires=>'+7d');
print header(-cookie => [$mycookie1, $mycookie2, $mycookie3]);
print start_html (-title => 'Assignment 7');
print "Thank you. Your data has been recorded</br>";
print "<a href='test3.cgi'>See member page</a>";
print end_html;
讀取cookie的,並使用從HTML作爲背景色選擇的顏色的頁面
my $membership_name = cookie("membership");
my $customer_name = cookie("customer");
my $color_name = cookie("color");
print header, start_html;
#what the hell, how to change background color??
<body bgcolor="$color_name">;
print "<h2>Welcome back, $membership_name Member $customer_name.</h2>";
print "<h4>Site rather poor, huh? Sorry. We are working on it.</h4>";
print end_html;
我忘了補充一些信息。我很困難。一切正常,但背景顏色不會改變。 –
那麼你到底想做什麼?你試過的結果是什麼?你期望會發生什麼? –
@JTaylor成員陣列和客戶名稱正在成功保存。背景顏色不保存。我使用了'my $ chosen_color = $ colors {$ color};'來保存所選的顏色,並將其保存到我的$ mycookie3 = cookie(-name =>「color」, -value => $ chosen_color,'變量在Cookie中 –