Ciao
premetto che non conosco perl ho solamente dovuto spostare un sito da un server ad un altro ma questo script non funziona .... mi potete dire cosa ha di sbagliato?
codice:
#!/usr/bin/perl
$dberr="dberr.htm";
# Variabili per l'accesso al db
$NomeDB = "dbname";
$UserDB = "username";
$portDB = 5432;
use Pg qw(PGRES_EMPTY_QUERY
PGRES_COMMAND_OK
PGRES_CONNECTION_OK
PGRES_TUPLES_OK
PGRES_COPY_OUT
PGRES_COPY_IN
PGRES_BAD_RESPONSE
PGRES_NONFATAL_ERROR
PGRES_FATAL_ERROR);
use Pg;
sub DatiHTML
{ # Prendo i dati della richiesta
if ($ENV{"REQUEST_METHOD"} eq 'GET') { $buffer = $ENV{'QUERY_STRING'}; }
else { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); }
$buffer .= $ARGV[0];
@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;
$value =~ s/\n/ /g;
if ($name ne "immagine")
{
$value=uc($value);
}
$FORM{$name} = $value;
}
}
# Collega un DB
sub connect
{
($dbname, $pguser, $pgport) = @_;
$p = "password";
$dbc = Pg::connectdb("user=$pguser port=$pgport dbname=$dbname password=$p");
unless ($dbc->status eq PGRES_CONNECTION_OK) {
print("Impossibile collegarsi al DB $NomeDB\n");
}
if ($DEBUG) {
open(TRACE, ">> /tmp/trace.out") || die "can not open trace: $!";
$dbc->trace(*TRACE);
}
return $dbc;
}
&DatiHTML;
$coll = &connect($NomeDB, $UserDB, $portDB);
$sql="select autore, titolo from dati where genere='PUD' order by autore";
#print "Content-Type: text/html\n\n$sql";
$ris = $coll->exec($sql); # Esegue la SQL
if ($ris->resultStatus eq 2)
{
$num=$ris->ntuples;
if ($num>0)
{
# print "$num";
$domini="";
for ($i=0; $i<$num; $i++)
{
($autore, $titolo) = $ris->fetchrow();
$domini .=" <TR>
<TD height=30>
<P align=center><font face=\"Verdana, Arial\" size=\"2\" color=\"#fbdc04\">$autore</font></P></TD>
<TD height=30>
<P align=center><font face=\"Verdana, Arial\" size=\"2\" color=\"#fbdc04\">$titolo</font></P></TD>
</TR>
";
}
}
else
{
print "Content-Type: text/html\n\n";
print "<HTML>
<HEAD>
<TITLE>Visualizzazione degli prossime uscite discografiche</TITLE>
</HEAD>
<body topmargin=\"0\" leftmargin=\"0\" bgcolor=\"#000066\" text=\"#ffffff\" link=\"#ffffff\" vlink=\"#ffffff\" alink=\"#ffffff\">
<P align=center><FONT face=Arial size=5></FONT></P>
<P align=center></P>
<P align=center></P>
<P align=center><FONT face=Arial size=5>ATTUALMENTE NON E' PREVISTA </FONT><FONT
face=Arial size=5>NESSUNA
NUOVA USCITA DISCOGRAFICA!</FONT></P>
<P align=center><FONT face=Arial size=5>RIPROVATE PIU' TARDI!</FONT></P>
</body>
</html>";
exit(1);
}
}
else
{
# Problemi di connessione al database
print "Content-Type: text/html\n\n";
open (PAGE, "<$dberr") || die "Impossibile aprire il file $dberr!";
while (<PAGE>)
{
print "$_";
}
close PAGE;
exit(0);
}
print "Content-Type:text/html
<HTML>
<HEAD>
<TITLE>Le prossime uscite discografiche di Musical Box</TITLE>
</HEAD>
<body topmargin=\"0\" leftmargin=\"0\" bgcolor=\"#000066\" text=\"#ffffff\" link=\"#fbdc04\" vlink=\"#fbdc04\" alink=\"#fbdc04\">
<DIV align=center>
<P align=center><FONT face=Arial size=5 color=\"#fbdc04\">Le prossime uscite discografiche di Musical Box!</FONT></P>
<P align=center>
<table border=\"2\" align=\"center\" cellpadding=\"0\" cellspacing=\"2\" width=\"60%\">
<tr>
<td height=\"70\" align=\"center\" bgcolor=\"#041c81\"><font color=\"#ffffff\" face=\"Verdana, Arial\" size=\"2\">Autore</font></td>
<td align=\"center\" bgcolor=\"#041c81\"><font color=\"#ffffff\" face=\"Verdana, Arial\" size=\"2\">Titolo</font></td>
<tr>
$domini
</TABLE></font>
</P></DIV>
</body>
</html>
";
exit(0);
nel log del server mi da questo errore: Premature end of script headers
grazie