Il mio problema è il seguente. Dopo che la password viene riconosciuta valida ho bisogno di reindirizzare a main.cgi
ma sto ottenendo il messaggio come:Come posso reindirizzare il client da una pagina CGI a un'altra utilizzando Perl?
Status: 302 Found
Location: http://localhost/cgi-bin/Main.cgi
So che la ragione di questo è che sto scrivendo questa dichiarazione dopo Content-Type
quindi sta prendendo questo come HTML e stampandolo sullo schermo. Sono un principiante di Perl. Qualcuno può aiutarmi a trovare la soluzione per questo e far funzionare il mio codice nel modo in cui lo voglio? O per favore suggeriscimi qualche codice alternativo per questo, o qualsiasi link che potrebbe aiutarmi.
#!C:\perl\bin\perl.exe
use strict;
use CGI qw(:standard);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
use DBI;
my $q = new CGI;
print "Content-Type: text/html\n\n";
if ($q->param("Login")) {
my $Password = param('Password');
if (!$Password) {
print "Please Enter the Password";
} else {
my $dbh = DBI->connect(
"dbi:SQLite:DEVICE.db",
"", "",
{
RaiseError => 1,
AutoCommit => 1
}
);
my $sth = $dbh->prepare("select * from Settings where Password = ?");
$sth->execute($Password);
if (my $pass = $sth->fetchrow_hashref) {
print redirect(-url => 'http://localhost/cgi-bin/Main.cgi');
} else {
print "Invalid Password";
}
$dbh->disconnect;
}
}
print <<END1;
<HTML>
<HEAD>
<TITLE> </TITLE>
</HEAD>
<body>
<form NAME="login" METHOD="POST">
<input type="hidden" name="submit" value="Submit">
<TABLE align="center" bgcolor=#B0C4DE>
<TR>
<TD> Enter The Password And Click Login</TD>
</TR>
<TR></TR>
<TR></TR>
<TR></TR>
<TR></TR>
<TR></TR>
<TR>
<TD><b>PASSWORD</b> :<input type="password" name="Password" size="20" maxlength="15" /></TD>
</TR>
<TR></TR>
<TR></TR>
<TR></TR>
<TR></TR>
<TR></TR>
<TR>
<TR>
<TD align="center" colspan="2">
<input type="submit" name="Login" value="Login">
<input type="reset" name="submit" value="Cancel">
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
END1
Non ho davvero guardato a questo, come hai detto, sei nuovo e questo ha molti problemi ben formati, ma stampi il tipo di contenuto più tardi, se sai che è il caso. – vol7ron
HEY RINGRAZIAMO MOLTO ... l'ho messo jst sopra la stampa << END1 ... funziona perfettamente navigando verso la pagina desiderata..bt se inserisco la password sbagliata, invece di visualizzare la "password non valida" .. la pagina si sta rinfrescando ...ho provato a scrivere la frase "password non valida", bt dando un ERRORE: ERRORE SERVER INTERNO ,,,,,, quando ho controllato i log degli errori, poi ho scoperto che ... "header malformato da script. Bad header = : Login.cgi ", .. QUESTO È UN NUOVO NUMERO ORA ... per favore aiutami a risolverlo, se viene risolto allora ogni problema nel mio programma è risolto ... – sonya
possibile duplicato di [Reindirizzamento da una pagina CGI a un'altra] (http://stackoverflow.com/questions/3649762/redirecting-from-one-cgi-page-to-another) – daxim