So hier mal der Codeschnipsel, den ich jetzt geproggt habe, doch leider hab ich ein Problem, wenn ich den Skript aufrufe, dann sollte er ja eigentlich die IP und die Zeit in die DB schreiben, doch wenn ich ihn in Binnen 20 sek wieder aufrufe, dann, funktioniert das ganze nicht so wie es soll!
Woran liegt es
#/usr/bin/perl
use DB_File;
use strict;
Lock_DB binden
my $dbfile = '/tmp/lockip.db';
my %lockip;
tie(%lockip, 'DB_File', $dbfile, O_RDWR|O_CREAT, 0777) or die "Can't tie %data with file $dbfile";
my $locktime = 20; # Sekunden
#pruefen ob eine IP Adresse gelockt ist und ggf. locken
my $cip = $ENV{'REMOTE_ADDR'};
my $ctime = time;
my $timediff = $ctime - $lockip{$cip};
if ($timediff > $locktime)
{
print "Du Hast die Erlaubniss wieder abzustimmen";
$lockip{'$cip'} = $ctime;
}
else
{
print "Du hast keine Erlaubniss noch einmal abzustimmen";
}
hash Bindung aufheben und exit
untie %lockip;
exit;