Thread Perl/Tk mit Menü-Widget eine Passwortabfrage??? (4 answers)
Opened by renee at 2005-09-13 14:27

DocJunioR
 2005-09-15 16:46
#44609 #44609
User since
2005-08-29
53 Artikel
BenutzerIn
[default_avatar]
also ich hab mir da mals sowas gebastelt:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
use strict;
use warnings;

use Tk;
use Tk::DialogBox;
use Tk::LabEntry;

use prj::cfile;

package prj::login;

sub new
{
my $this = shift;
my $thisref = ref($this) || $this;
my $self;
$self->{'parent'} = $_[0];
$self->{'username'} = "";
$self->{'password'} = "";

# create Login-Dialog
$self->{'window'} = $self->{'parent'}->DialogBox(-title =>'Login', -default_button => 'OK', -buttons => ['OK', 'Abbrechen'] );

$self->{window}->add('LabEntry', -textvariable => \$self->{'username'}, -width => 20,


label => 'Benutzer')->pack(-side =>"top");


$self->{window}->add('LabEntry', -textvariable => \$self->{'password'}, -width => 20,


label => 'Passwort', -show =>'*')->pack(-side =>"top");

bless ($self, $thisref);
return $self;
}

sub getpass
{
my $self = shift;

my @heads = ('id', 'name', 'pass', 'grants', 'local', 'server');
my $userdb = prj::cfile->new(@heads, 'dat\\users.dat');

my $result = $self->{'window'}->Show();
$self->{'window'}->bind("<Return>", sub{$result = 'OK';});
$self->{'window'}->bind("<Escape>", sub{print "abbruch!\n"; $result = 'Abbrechen';});

if ('OK' eq $result)
{
my %find = ( 'name' => $self->{'username'}, 'pass' => $self->{'password'});

my @datarray = @{$userdb->get(\%find)};

my %data = %{$datarray[0]};

if (@datarray == 1)
{

return \%data;
}
}

return 0;
}
return 1;


die cfile ist eine Klasse, die mir den Datenzugriff erleichtert. Die kann ich leider nicht so ohne weiteres rausgeben :( Hier weiter zu arbeiten sollte aber kein problem sein

View full thread Perl/Tk mit Menü-Widget eine Passwortabfrage???