Hej!
Jeg er en total newbie i Perl og har et lille problem med et CGI
databaseprogram jeg har fået nørklet sammen. Jeg har nappet lidt hist
og pist og har fået det til at fungere rimeligt. Det vil sige, jeg kan
udskrive cellerne vandret; men ikke lodret! Det ville jeg gerne kunne
Min kode ser således ud:
#!C:/perl/bin/perl.exe
############################
# Get data from GET & POST #
############################
&parse_form;
#######################################
# Define the variables for the script #
#######################################
$database='stone_base.db';
##################################################
# Check to see if there was a database specified #
##################################################
if ($input{'database'} eq ''){
$db=$database;
}else{
$db=$input{'database'};
}
#################################################
# Get the origional database data & buffer data #
#################################################
open (ORGDB,"<$database");
@ODB=<ORGDB>;
close (ORGDB);
#################################################################
# Open the database to write data, changing the neccesary lines #
#################################################################
print "Content-type: text/html\n\n";
print "
<html>
<head><title>Database View [$database]</title>
<LINK REL=stylesheet TYPE=text/css HREF=an.css TITLE=anfont>
<STYLE TYPE=text/css>
A:link { text-decoration: none; color:#39CE00; font-face:arial}
A:visited { text-decoration: none; color:#39CE00 }
A:hover { color:red }
A:active { text-decoration: none; color:#39CE00 }
A:link IMG { text-decoration: none }
</STYLE>
</head>
<body bgcolor='#000000'>
<table width='65%' border='0' ALIGN='center' CELLPADDING='10'
CELLSPACING='5'>
<tr><td width='10%' ALIGN='center'><FONT
SIZE='2''18%'><U><B>Actions</B></U></FONT></td>
<td width='18%' ALIGN='center'><FONT
SIZE='2'><U><B>PC-Name</B></U></FONT></td>
<td width='18%' ALIGN='center'><FONT
SIZE='2'><U><B>MOBO</B></U></FONT></td>
<td width='18%' ALIGN='center'><FONT
SIZE='2'><U><B>Chipset</B></U></FONT></td>
<td width='18%' ALIGN='center'><FONT
SIZE='2'><U><B>CPU</B></U></FONT></td>
<td width='18%' ALIGN='center'><FONT
SIZE='2'><U><B>RAM</B></U></FONT></td>
</tr>
<tr><td colspan='6'><hr></td></tr>
";
foreach $rec (@ODB){
chomp($rec);
($data,$datb,$datc,$datd,$date)=split(/\|/,$rec);
print "
<tr><td width='10%'><font size='2'><a
href='/cgi-bin/stone/edit_record_base.cgi?data=$data&datb=$datb&datc=$datc&datd=$datd&date=$date'>Edit</a>
- <a
href='/cgi-bin/stone/edit_base.cgi?action=delete&data=$data&datb=$datb&datc=$datc&datd=$datd&date=$date'>Delete</a></font></td>
<td width='18%' ALIGN='center'><font size='1'>$data</font></td>
<td width='18%' ALIGN='center'><font size='1'>$datb</font></td>
<td width='18%' ALIGN='center'><font size='1'>$datc</font></td>
<td width='18%' ALIGN='center'><font size='1'>$datd</font></td>
<td width='18%' ALIGN='center'><font size='1'>$date</font></td>
</tr>\n";
}
print "
</table>
<DIV STYLE='text-align:center'><p><a
href='/cgi-bin/stone/add_base.cgi?database=$db'><FONT SIZE='2'><U>Add
Entry To Database</U></FONT></a></p></DIV>
</body>
</html>
";
########################################
# Code to get the data from GET & POST #
########################################
sub parse_form {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
if (length($buffer) < 5) {
$buffer = $ENV{QUERY_STRING};
}
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$input{$name} = $value;
}
}
Som I kan se udskriver scriptet databasen vandret i mit html-dokument
og jeg kunne immervæk godt bruge udskrivningen lodret.
Et godt tip/råd eller evt. vejleding modtages med glæde. TAK
Steen
Perl-Newbie