Kann mal einer gucken, ob ich das flock richtig gesetzt hab?
Matthias
- cgi
hi! ich habe ein skript verändert: Ich wollte das die dateien mit file locking geöffnet werden. kann man einer gucken, im folgenden code, ob ich das richtig gemacht hab?? ich kenn mich nämlich überhaupt nicht aus! :-)
Hoffe mir kann einer helfen!
Ciao
Hier der Codeauszug:
sub poll_it {
my @lines ;
my @datalines ;
my @poll_set ;
my $line ;
my $dataline ;
my $ip ;
my $counter ;
my %FM=&parse_form() ;
if($FM{'poll'}) {
if (!(-e "$ip\_file")) {
flock(DAT,2) if ($lock==1) ;
open (DAT , "> $ip_file") ;
close(DAT) ;
}
open (DAT , "< $ip\_file") die "Kann Datenfile ($dat\_file) nicht zum Lesen öffnen" ;
flock(DAT,2) if ($lock==1) ;
while($ip=<DAT>) {
chop($ip) ;
if ($ip eq "$ENV{'REMOTE_ADDR'}"){
$ip_vorhanden=1 ;
last ;
}
}
close(DAT) ;
if ($ip\_vorhanden==0) {
open (DATA , "< $dat_file") die "Kann Datenfile ($dat_file) nicht zum Lesen öffnen" ;
flock(DATA,2) if ($lock==1) ;
@datalines = <DATA> ;
close(DATA) ;
open (DATA , "> $dat_file") die "Kann Datenfile ($dat_file) nicht zum Schreiben öffnen" ;
flock(DATA,2) if ($lock==1) ;
foreach $dataline (@datalines) {
@poll_set = split(// , $dataline) ;
$poll_set[0]++ if ($poll_set[1] eq $FM{'poll'}) ;
print DATA "$poll_set[0]$poll_set[1]\n" ;
}
close(DATA) ;
open (DAT , "< $ip_file") die "Kann Datenfile ($dat_file) nicht zum Lesen öffnen" ;
flock(DAT,2) if ($lock==1) ;
@lines = <DAT> ;
close(DAT) ;
while ($#lines >= 99){
shift @lines;
}
push (@lines,"$ENV{'REMOTE_ADDR'}\n");
open(DAT,">$ip_file");
flock(DAT,2) if ($lock==1) ;
print (DAT @lines);
close(DAT);