Wie kann ich die Umleitung der client von einem CGI-Seite zu einer anderen, mit Hilfe von Perl?

Mein problem ist Folgendes. Nachdem das Passwort als gültig anerkannt, muss ich umleiten, um main.cgi aber ich erhalte die Meldung:

Status: 302 Found
Location: http://localhost/cgi-bin/Main.cgi

Ich weiß, der Grund dafür ist, dass ich Schreibe diese Anweisung nach Content-Type so ist es auch mit der Einnahme dieses als HTML und drucken Sie es auf dem Bildschirm. Ich bin ein Neuling auf Perl. Kann jemand bitte helfen Sie mir, finden Sie die Lösung für dieses und dass mein code so funktioniert wie ich es will? Oder Sie schlagen mir einen alternativen code für diese oder irgendwelche Links, die mir dabei helfen können.

#!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
Habe nicht wirklich gesehen, wie du gesagt hast, du neu bist und dies hat viele wohlgeformte Probleme, aber print " content-type später auf, wenn Sie wissen, dass das der Fall ist.
HEY vielen DANK... ich hatte es jst vor dem drucken<<END1...es funktioniert perfekt navigieren, um die intendented Seite..bt, wenn ich ein Falsches Kennwort eingeben dann statt dispalying "Passwort ungültig"..die Seite wird immer aktualisiert htep al..ich habe versucht, puttin es jst abve die Anweisung print "ungültiges Passwort";,,bt seine Angabe ein FEHLER : INTERNAL SERVER ERROR,,,,,,wen ich überprüft, der Fehler meldet, dann ths s wat fand ich heraus,.."malformed header from script. Bad header=<HTML>: - Login.cgi -",..DAS IST EIN NEUES PROBLEM JETZT...bitte helft mir es zu lösen, wenn es gelöst bekommt dann jedes problem in meinem Programm ist aussortiert...
mögliche Duplikate von Umleitung von einem CGI-Seite zu einer anderen

InformationsquelleAutor sonya | 2010-09-06

Schreibe einen Kommentar