Anja Bibi: Redirect, brauche Hilfe

Hallo,

ich kenne mich mit PERL null aus, daher brauche ich euere Hilfe.
Die PERL muss ein Redirect durchführen, wenn eine WhitePage verursacht wird, aber irgendwie wird kein Redirect durchgeführt, sollte aber laut diversen Foren/Anleitungen/Tuts.

#!/opt/gnu/bin/perl  
  
use Crypt::CBC;  
use Exception::Class::TryCatch;  
  
print "Content-Type: text/html;charset=iso-8859-1\n\n";  
  
sub login  
{  
 use CGI;  
 use LWP;  
 use HTTP::Message;  
 use LWP::Simple;  
  
 $Abfrage = LWP::Simple;  
 $url = "http://www.example.com/cgi-bin/Login.exe/Login?$Daten&Land=USA&Sprache=EN";  
 $Abfrage = get($url);  
  
 if($Abfrage ne '') { print "$Abfrage"; }  
 else {  
   print "Location: http://www.google.com\n\n";  
   exit;  
 }  
}

Kurzfassung:
Sollte die EXE nix liefern, leite ich auf google um (statt google kommt später ne richtige Seite).
Aber leider gibt mir der Browser die zeile aus, statt Weiterzuleiten.
Was mache ich Falsch?

  1. Hallo,

    ich kenne mich mit PERL null aus, daher brauche ich euere Hilfe.

    Perl hab' ich schon gesehen, PERL noch nie, aber das da unten sieht sehr nach Perl aus ;-) [1]

    Die PERL muss ein Redirect durchführen, wenn eine WhitePage verursacht wird,

    was ist eine WhitePage?

    $url = "http://www.example.com/cgi-bin/Login.exe/Login?$Daten&Land=USA&Sprache=EN";
    $Abfrage = get($url);

    if($Abfrage ne '') { print "$Abfrage"; }

    Du möchtest hier eher auf defined abfragen, siehe Doku, möglicherweise möchtest Du statt LWP::Simple LWP::UserAgent verwenden, sagt Siechfred.

    Freundliche Grüße

    Vinzenz

    [1] die Themenbereichen sind alle in Versalien gehalten, daraus darf
        man daraus nicht die Schreibweise des Themenbereichs oder der
        Programmiersprache im Fließtext ableiten.

  2. #!/opt/gnu/bin/perl

    use Crypt::CBC;
    use Exception::Class::TryCatch;

    use warnings;
    use strict;

    print "Content-Type: text/html;charset=iso-8859-1\n\n";

    An diesem Punkt hast du dir die Chance vertan, einen HTTP Header rauszuschicken.
    Verzögere diese Ausgabe, bis du weisst, ob du einen Location header oder normalen Inhalt senden willst.

    sub login
    {
    use CGI;
    use LWP;
    use HTTP::Message;
    use LWP::Simple;

    $Abfrage = LWP::Simple;

    my ...

    $url = "http://www.example.com/cgi-bin/Login.exe/Login?$Daten&Land=USA&Sprache=EN";

    my ...

    $Abfrage = get($url);

    if($Abfrage ne '') { print "$Abfrage"; }
    else {
       print "Location: http://www.google.com\n\n";
       exit;
    }
    }

      
    mfg Beat
    
    -- 
    
    ><o(((°>           ><o(((°>  
    
       <°)))o><                     ><o(((°>o  
    Der Valigator leibt diese Fische
    
    1. An diesem Punkt hast du dir die Chance vertan, einen HTTP Header rauszuschicken.
      Verzögere diese Ausgabe, bis du weisst, ob du einen Location header oder normalen Inhalt senden willst.

      Danke, das war's also...
      Nun funktioniert es wie gewollt.

  3. hi,

    print "Content-Type: text/html;charset=iso-8859-1\n\n";

    siehe Beat. Kleine Ergänzung meinerseits: Status nicht vergessen.

      
    sub redir{  
    	my $url = shift;  
    	print "Status: 302 Moved\n";  
    	print "location: $url\n\n";  
    	return;  
    }  
    
    

    Hotti