Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: flock
Forum PHP.pl > Forum > PHP
SonGoace
Mam problem z blokowaniem pliku licznika !

oto kod:
[php:1:0b435e2f2e]
<?php
$plik = 'obrazy.txt';
$o = $_GET['num'];

$f = file($plik);
$f[$o] += 1;
$f[$o] = $f[$o]."n";

$fp = fopen($plik, 'w');
flock($fp, 10000);
fputs($fp, str_replace("r", '', implode('', $f)));
flock($fp, 30000);
fclose($fp);
?>[/php:1:0b435e2f2e]

Licznik działa ale jak ktoś za szybko odświeża stronę to skrypt kasuje zawartość licznika i zaczyna zaliczać od nowa !!!

Macie moze na to jakąś rade ?
KaMeLeOn
Hmm...
Skąd ty wziąłeś te wartości w flock()...
Poczytaj tutaj: http://www.php.net/manual/pl/function.flock.php
Jabol
polecam to zrobić tak.[php:1:7af33a3a1d]
<?php
$plik = "obrazy.txt";
while( file_exists( $plik.'.inuse' ) )
{
}
fclose( fopen( $plik.'.inuse', 'w' ) );
$f=explode( "n", file_get_contens( $plik ) );
$f[$_GET['num']]++;
$fp = fopen( $plik, 'w' );
flock( $fp, 2 );
fputs( $fp, implode( "n", $f ) );
flock( $fp, 3 );
fclose( $fp );
unlink( $plik.'.inuse' );
?>[/php:1:7af33a3a1d]
Modest
wlasnie...
moze flock($fp, 2);
i flock($fp, 3);
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.