#!D:\Perl\bin\perl.exe use CGI qw(:standard); use CGI::Cookie; |
# winesearch.pl # # Sample code used to generate a wine search. Note that it # does not actually conduct any sort of search. It just # enters the search into the user's preferences. # # The search itself is conducted by the realsearch.pl # script. |
srand; |
%cookies = fetch CGI::Cookie; |
if ($cookies{'findagoodwineID'} ) {
$myID = $cookies{'findagoodwineID'}->value;
} else {
$myID = getrandomID();
} |
# We create the cookie, with a name, ID, and expires time # of 10 years. |
$winecookie = new CGI::Cookie(-name=>'findagoodwineID',
-value=>$myID,-expires=>'+10y'); |
# We get the query string and append it on to the # _real_ cgi-bin script |
$searchURL = '/cgi-bin/findagoodwine/realsearch.pl?'.
$ENV{'QUERY_STRING'}; |
# and we get the time and use that as our search # description |
$searchDesc = "Search submitted ". localtime(); $bigstring = $searchURL. '~::~'. $searchDesc; |
dbmopen(%history, "winehistory", 0644) || die "cannot open DBM $!"; |
@lastsearch = split(/~:~/, $history{$myID}); |
$lastsearch[2] = $lastsearch[1]; $lastsearch[1] = $lastsearch[0]; $lastsearch[0] = $bigstring; |
$finallist = join("~:~", @lastsearch); |
$history{$myID} = $finallist; |
dbmclose(%history); |
print "Content-type: text/html\n"; print "Set-Cookie: $winecookie\n"; print "Cache-Control: private\n"; |
print <<"End_of_Page"; |
<HTML>
<HEAD>
<META name="HandheldFriendly" content="True">
<TITLE>Search has been entered</TITLE>
</head>
<BODY> |
Thanks for your search. Go back and reload the
<a href="/cgi-bin/findagoodwine/frontpage.pl">Front page</a>
to see the results of your new search. |
<p>
More debug info:
<p> |
searchURL = $searchURL <br>
searchDesc = $searchDesc <br>
lastsearch2 = $lastsearch[2] <br>
lastsearch1 = $lastsearch[1] <br>
lastsearch0 = $lastsearch[0] <br>
<p>
finallist = $finallist
</body> |
</html> |
End_of_Page |
sub getrandomID {
return (time(). sprintf("%07d",(int(rand(5000000)))));
}
|
# # Copyright (c) 2007, iAnywhere Solutions, Inc., # all rights reserved. # # IANYWHERE MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT # THE SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR # PURPOSE, OR NON-INFRINGEMENT. IANYWHERE SHALL NOT BE # LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT # OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR # ITS DERIVATIVES. |
| Send feedback about this page using email. | Copyright © 2008, iAnywhere Solutions, Inc. |