Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]5965[/thread]

Eingaben via <stdin>: PW von <stdin> lproduziert Crash



<< >> 5 Einträge, 1 Seite
Clemente
 2003-12-11 12:21
#75583 #75583
User since
2003-12-11
2 Artikel
BenutzerIn
[default_avatar]
Hallo Liste!

Ich bin in der Perl-Welt relativ neu und weiß keinen rechten Rat...
Wo ist der Unterschied zwischen:

my $pass = "secret";

und

print "Kennwort :"
my $pass = <stdin>;
... # Kennwort: secret
chomp($pass);

??

Ein print "*".$pass."*"; liefert in beiden Fällen: *secret*
ein Bind Befehl wie:
my $mesg = $ldap->bind ($dn, password => $oldpass );
läuft im ersten Fall wunderbar, im zweiten Fall dagegen resultiert eine Endlosschleife.

Weiß irgend jemand, was da passiert??

Vielen Dank,
Clemens

P.S: Das gleiche Script auf einer anderen Maschine ausgeführt läuft...
Crian
 2003-12-11 14:33
#75584 #75584
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Wenn die Ausgabe von print "*".$pass."*"; gleich ist, sollte das Verhalten auch gleich sein. Der Fehler liegt wohl wo anders, wie auch Dein p.s. vermuten lässt.

Tipp: Code kannst Du hier im Forum in [code]-Tags bzw. [perl]-Tags einschließen. Ist manchmal etwas tükisch, aber in der Regel besser lesbar.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Strat
 2003-12-11 14:52
#75585 #75585
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
1. es heisst <STDIN>, nicht <stdin>, und wenn du in Perl use warnings; und use strict; aktivierst, wuerdest Perl dir das auch sagen.
2. $pass weist du auf beiden Kisten $oldpass zu?
3. Kommst du mit einem LDAP-Browser von der Kiste aus, wo es nicht laeuft, an ds directory dran?
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Clemente
 2003-12-11 15:21
#75586 #75586
User since
2003-12-11
2 Artikel
BenutzerIn
[default_avatar]
Hallo Strat,
1) und 2) sind Schlampereien von mir: Im Script steht auch <STDIN>, und an Stelle von $oldpass als Parameter von bind() muß $pass stehen. Das ist ein Fehler im Posting, das Script ist hier korrekt.

Zu 3): Ja. An das Verzeichnis komme ich mit sämtlichen Tools heran. Der LDAP Server ist zu Debug-Zwecken global geöffnet (alle dürfen alles). Wenn die Credentials nicht ausreichen, würde ich einen Fehlerhaften bind()-Versuch erwarten - der abfragbar ist. Das Script hängt leider komplett...

Ich hatte gehofft, daß das ein bekannter Bug (vielleicht sogar mit fertigem workaround ;) o.ä. ist.

Hallo Crian,
genau das läßt mich ja so langsam auh verzweifeln. Das LDAP-Modul habe ich sicherheitshalber noch einmal neu installiert...
Und:

Code (perl): (dl )
print "Danke für den Tag-Tip!";


Clemens
Strat
 2003-12-11 15:27
#75587 #75587
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
da ist mir nichts bekannt.
1. Fragst du beim new einen eventuellen Fehler ab?
Code: (dl )
$ldap = Net::LDAP->new($server) or die "$@";

oder wie sieht dein connect aus?

2. Funktioniert ein anonymer bind? ( $ldap->bind() )
3. gib mal beim connect die version mit an: Net::LDAP->new($host, version => 3)
4. was passiert, wenn du bei Net::LDAP->new($host, debug => 3) mit angibst? blockiert es da auch, oder werden da noch daten ausgetauscht?\n\n

<!--EDIT|Strat|1071149307-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 5 Einträge, 1 Seite



View all threads created 2003-12-11 12:21.