Ich kenn mich jetzt zwar mit Perl nicht so aus, aber ich hatte mal ein Problem mit IE mit dem logon im Intranet. Wenn die entsprechende Seite sich im Intranet, also auch auf deinem lokalen Testserver (wenn du sowas benutzt) oder auf localhost befindet, dann setzt IE bei der Anmeldung automisch den Usernamen und das Passwort vom Windows-Logon ein. Lässt sich in den Sicherheitseinstellungen von IE abstellen
Hallo zusammen!
Folgendes Script:
#!/usr/bin/perl
if (!($ENV{'QUERY_STRING'})) {&login;}
else {&goUrl;}
sub login {
print "Content-type: text/html\n\n";
print qq~
<form action="login.cgi" method="get">
Login: <input type="text" name="username"><br>
Password: <input type="password" name="passwort"><br>
<input type="submit" value="submit">
~;
}
sub goUrl {
@info = split(/&/,$ENV{'QUERY_STRING'});
foreach $key (@info) {
($name,$value) = split(/=/,$key);
$moreinfo{"$name"} = $value;
}
print "Location:http://$moreinfo{'username'}:$moreinfo{'passwort'}@www.meinedomain.de/$moreinfo{'username'}\n\n";
}
exit;
dient dazu, mich über ein Formular in einen mit .htaccess geschützten Bereich einzuloggen.
Das ganze geht mit Netscape wunderbar. Der IE will aber nicht, wie ich will. Wenn ich den "Submit-Button" klicke geht das normale ".htaccess-Fenster" auf. Jetzt trage ich Benutzername und Passwort ein, klicke "OK", dann geht es gleich in das Verzeichnis des jeweiligen Users. Das heist für mich, daß die Variablen (zumindest username) korrekt definiert sind und auch wieder sauber ausgelesen werden. Versuche ich den Login aber "normal", indem ich nämlich das ganze in die Adresszeile des IE eintrage (http://username:passwort@meinedomain.de/username) dann gehts problemlos. Mein JS-Script mit der selben simplen Funktion funktioniert sowohl mit Netscape als auch mit dem IE.
Wer weis warum?
Viel wichtiger - wer weis wie ich das Script auch mit dem IE zum Laufen kriege?
Schon mal Danke im Voraus.
Grüße
Stefan