use Mosche;
ich habe mir heute folgendes script runtergeladen und das geht aber nicht so ganz weil der ständig die seiten und alles im web sucht obwohl eigentlich kein befehl mehr auf die ursprungsseite zeigt.
könnt ihr mir das mal so ändern das es wieder geht?
Das Script ist an sich nicht unbedingt gut (was Programmierstil angeht, halte ich mich mal zurück). Auf jeden Fall scheint es veraltet zu sein.
#!/usr/local/bin/perl
use strict;
Change these variables with your own values
$correctpass = "passwort";
$correcturl = "correct.html";
$scriptlocation = "password.cgi";
in einer CGI Umgebung ist das aktuelle Verzeichnis undefiniert
Read in form data
&parse_form;
use CGI qw(param);
$password = $input{'password'};
$function = $input{'function'};
my $password = param('password';
my $function = param('function');
if ($function eq "post") {
if ($password eq $correctpass) {
Ist unnötig. Es reicht:
if ($password && $correctpass eq $password) {
...
}
Den gesamten function Mist kannst du dir dann sparen.
&goto_url;
goto_url(); # &... ist veraltet (Perl 4)
sub badpassword {
[viele einzelne print Befehle]
print <<EOF;
dein HTML-Code
EOF;
So, jetzt nochmal verbessert:
#!/usr/local/bin/perl
use CGI qw(param header);
Change these variables with your own values
$correctpass = "passwort";
$correcturl = "/correct.html"; # jeweils absolute Pfade angeben
$scriptlocation = "/cgi-bin/password.cgi";
$password = param('password');
if ($password) {
if ($password eq $correctpass) {
&goto_url;
} else {
&badpassword;
}
} else {
&ask_password;
}
sub badpassword {
print header; # deinen restlichen HTML-Müll räume ich _nicht_ auf
print <<EOF;
<HTML>
<HEAD><TITLE>Invalid Password</Title></HEAD>
<BODY BGCOLOR=#FFFFFF TEXT=#000000 LINK=#0000FF VLINK=#800040 ALINK=#800040>
<CENTER><H2>Invalid Password</H2></CENTER><BR>
</BODY>
</HTML>
EOF
exit;
}
sub ask_password {
print header; # deinen restlichen HTML-Müll räume ich _nicht_ auf
print <<EOF;
<html>
<head>
<title>Editor</title>
</head>
<BODY BGCOLOR=#FFFFFF TEXT=#000000 LINK=#0000FF VLINK=#800040 ALINK=#800040>
<Center><FONT SIZE=6 COLOR=0000A0><CODE>Please Enter Your Password</CODE></FONT>\n";
<BR><BR><BR><TABLE WIDTH=75% Border=10><TR><TD><CENTER><BR>
<FORM ACTION="$scriptlocation">
<INPUT TYPE=password NAME=password SIZE=15>
<INPUT TYPE=hidden NAME=function VALUE=post>
<INPUT TYPE=submit VALUE="Verify Me">
</FORM>
</CENTER></TD></TR></TABLE>
<FONT SIZE=2 COLOR=000080>Password Script - brought to you by The <A HREF="http://technotrade.com/cgi">Techno Trade CGI Archive</A></FONT>
</CENTER></BODY></HTML>
EOF
exit;
}
sub goto_url {
print "Location: $correcturl\n\n";
}
so sollte es jetzt funktionieren
use Tschoe qw(Matti);