SonGoace
21.06.2003, 16:15:20
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
21.06.2003, 16:29:45
Hmm...
Skąd ty wziąłeś te wartości w
flock()...
Poczytaj tutaj:
http://www.php.net/manual/pl/function.flock.php
Jabol
21.06.2003, 16:31:55
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
21.06.2003, 16:32:28
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.